Linux|Linux网络 DNS域名解析服务

目录
1、 DNS域名解析服务
(1)DNS系统的作用及类型
(2)缓存域名服务器
(3)DNS系统类型
(4)BIND的安装和配置文件
(1)BIND软件安装
(2)DNS的分布式互联网解析库
(5)正向解析试验:
(6)反向解析示例
(7)主从DNS服务器示例:
(8)分离解析
总结
1、 DNS域名解析服务 (1)DNS系统的作用及类型 DNS系统的作用
■正向解析:根据域名查找对应的IP地址
■反向解析:根据IP地址查找对应的域名
■DNS系统的分布式数据结构
Linux|Linux网络 DNS域名解析服务
文章图片

现全球有13台DNS根域名服务器,名字分别为“A”至“M”,1个为主根服务器在美国,其余12个均为辅根服务器,其中9个在美国,欧洲2个,位于英国和瑞典,亚洲1个位于日本。
DNS是什么?
DNS域名系统( Domain Name System缩写DNS.DomainName被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联,而不用去记住能够被机器直接读取的IP数串。
正向解析:根据域名查找对应的IP地址
反向解析:根据IP地址查找对应的域名(域名的反向解析不是很常用,只在一些特殊场合才会用到,比如 用于反垃圾验证)
DNS使用的协i义及端
DNS的认端口为53 DNS端口分为TCP和IUDP .
一、TCP是用来做区域传送、多用于主从同步在一个区中主DNS服务器从自己本机的数据文件中读取该去的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息
二、UDP是用来做DNS解析的域名:通常有一个完全合格域名(FQDN)表示。FQDN 全程 Fully Qualified Domain Name,它能准确表示出其相对于DNS域树根的位置,也就是节点到DNS树根的完整表述方式,从节点到树根采用反向书写,并将每个节点用"."分隔,对于DNS域google来说,其完全正式域名(FQDN) 为google.com。
例如,google 为 com域的子域,其表示方法为google.com,而www 为google 域中的子域,可以使用www .google.com.”表示。

注意:通常,FQDN有严格的命名限制,长度不能超过256字节,只允许使用字符 a-z,0-9,A-Z和减号(-)。点号(.)只允许在域名标志之间(例如"google.com")或者FQDN的结尾使用。域名不区分大小,由最顶层到下层,可以分成:根域、顶级域、二级域、子域
即全域名:同时带有主机名和域名的名称
FQDN = Hostname + DomainName
如:www.baidu.com.
注意:最前面的一定是主机,最后一个点表示根域,通常是省略不写的,但实际上www.abc.com=www.abc.com.
域名结构:
http://www.sina.com.cn./
http://主机名.子域.二级域.顶级域 根域/
(2)缓存域名服务器 ■缓存域名服务器
●也成为DNS高速缓存服务器
●通过向其他域名服务器查询获得域名 -》 IP地址记录
●将域名查询结果缓存到本地,提高重复查询时的速度
Linux|Linux网络 DNS域名解析服务
文章图片


正向解析查询过程:
1、先查看本机的缓存记录
2、查询hosts文件
3、查询dns域名服务器,交给dns域名服务器处理
以上过程为递归查询:我要一个答案你直接给我结果
4、这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
5、求助根域服务器,根服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
6、求助顶级域服务器,顶级域服务器返回可能会知道结果的而基于服务器然他去找二级域服务器
7、求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
8、本地域服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
windows系统查询dns缓存命令:ipconfig /displaydns
windows系统清理dns缓存命令:ipconfig /flushdns
linux清dns缓存西药安装nscd软件,启动、执行nscd-i hosts
两种查询方式
(1)递归查询
递归查询是一种 DNS 服务器的查询模式,在该模式下 DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果 DNS 服务器本地没有存储查询 DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
总的一句话,就是客户机发送请求后自己只用等待结果即可,中间具体过程交给服务器实现。
Linux|Linux网络 DNS域名解析服务
文章图片

(2)迭代查询
DNS 服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台 DNS 服务器地址,客户机再向这台 DNS 服务器提交请求,依次循环直到返回查询的结果为止
总的一句话,客户机的请求需要自己挨个去查询才能得到结果,服务器没有结果时候只会给你提供其它服务器的地址,而不会帮你去请求查询,这与递归截然相反
Linux|Linux网络 DNS域名解析服务
文章图片


从递归和迭代查询可以看出:
客户端-本地DNS服务器:这部分属于递归查询
本地DNS服务端---外网:这部分属于迭代查询失败
迭代查询又称作重指引,返回的结果只有两种:返回的是最佳的查询点或者主机地址
(3)DNS系统类型 ■主域名服务器
●特定DNS区域的权威服务器,具有唯一性
●负责维护该区域的内所有域名-》IP地址的映射记录
●需要自己建立所负责区域的地址数据文件
■从域名服务器
●也成为辅助域名服务器,是对主域名服务器的热备份
●其维护的域名-》IP地址记录来源于主域名服务器
●需要从主域名服务器自动同步区域地质数据库
(4)BIND的安装和配置文件 (1)BIND软件安装
■BIND (Berkeley Internet Name Daemon)
●BIND是应用最广泛的DNS服务程序
●官方站点: https://www.isc.orgl
■相关软件包
bind-9.9.4-37.el7.x86_64.rpm
bind-utils-9.9.4-37.el7.x86_64.rpmo
bind-libs-9.9.4-37.el7.x86_64.rpmo
bind-chroot-9.9.4-37.el7.x86_64.rpm

(2)DNS的分布式互联网解析库
大型、分布式的互联网DNS解析库
根. 根域名DNS服务器:专门负责根域名
一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区)
.com(工商 企业)
.net(网络供应商)
.edu(教育机构)
.cn(中国国家域名)
.org(团体组织)
gov (政府部门)
二级DNS服务器:专门负责二级域名的解析
.net.cn
.edu.cn
.com.cn
子域名DNS服务器:专门负责子域名的解析 也称为三级域名
ina.com.cn
.pku.edu.cn
主机站点
tts9
tts6
mail
www
(3)DNS服务器系统类型
(1)主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
(2)从域名服务器:当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
(3)缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务
器作为解析来源。
(4)转发域名服务器:负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

(5)正向解析试验: 利用yum网络源安装bind
Linux|Linux网络 DNS域名解析服务
文章图片

[root@localhost /]# vim /etc/named.conf
Linux|Linux网络 DNS域名解析服务
文章图片

[root@localhost /]# cp -p /etc/named.conf /etc/named.conf.bak
Linux|Linux网络 DNS域名解析服务
文章图片

[root@localhost /]# ls /etc/named.conf.bak
/etc/named.conf.bak
[root@localhost /]# cat /etc/named.conf.bak
这 备份namedonfak
Linux|Linux网络 DNS域名解析服务
文章图片

修改主要配置文件
zone "." IN {#正向解析“."根区域
type hint; #类型为根区域
file "named.ca"; #区域数据文件为named.ca,#记录了13台根域服务器的域名和IP地址等信息
};
include "/etc/named. rfc1912. zones"; #包含区域配置文件里的所有配置
Linux|Linux网络 DNS域名解析服务
文章图片

修改区域配置文件,添加正向区域配置
vim /etc/named. rfc1912. zones
Linux|Linux网络 DNS域名解析服务
文章图片

文件里有模版,可复制粘贴后修改
zone "benet.com" IN{●正向解析"benet.com"区域
type master; #类型为主区域
file "benet.com.zone"; ●指定区域数据文件为benet.com.zone
allow-update { none; } ;
};
Linux|Linux网络 DNS域名解析服务
文章图片

cd /var/ named/
cp -p named.localhost benet.com.zone#保留源文件的权限和属主的属性复制
vim /var/named/benet.com.zone
Linux|Linux网络 DNS域名解析服务
文章图片

$TTL 1D#有效解析记录的生存周期
@in SOA benet.com. admin.benet.com. (#“@"符号表示当前的DNS区域名
0; serial#更新序列号,可以是10位以内的整数
1D; refresh#刷新时间,重新下载地址数据的间隔
1H; retry#重试延时,下载失败后的重试间隔
1W; expire#失效时间,超过该时间仍无法下载则放弃#
3H); minimum#无效解析记录的生存周期,
NSbenet.com.#记录当前区域的DNS服务器的名称
A192.168.86.128#记录主机IP地址
INMX 10mail.benet.com.#MX为邮件交换记录,数字越大优先级越低
wwwIN A192.168.86.128#记录正向解析www.benet.com对应的IP
mail IN A192.168.86.129#mail为邮件交换记录,数字越大优先级低
ftpIN CNAMEwww#CNAME使用别名,ftp 是www的别名
*IN A192.168.80.100#泛域名解析,“*"代表任意主机名
#“@”这里是一个变量,当前DNS区域名
#SOA记录中的更新序列号用于同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与
本地区域数据中的序列号相同,则不会进行下载。
# "benet.com. "此为完全合格域名(FQDN) ,后面有个“."不能漏掉
#“admin.benet.com.”表示管理员邮箱,这里的“@”符号已有其他含义,所以用“.”代替
#IN 表示internet
Linux|Linux网络 DNS域名解析服务
文章图片

在客户端的域名解析配置文件中添加DNS服务器地址
vi /etc/resolv .conf
#修改完后立即生效
nameserver 192.168.80.10

vi /etc/sysconfig/network-scripts/ifcfg-ens33
#修改完后需要重启网卡
DNS1=192.168.80.10
systemctl restart network
Linux|Linux网络 DNS域名解析服务
文章图片

Linux|Linux网络 DNS域名解析服务
文章图片

Linux|Linux网络 DNS域名解析服务
文章图片

Linux|Linux网络 DNS域名解析服务
文章图片

可解析
Linux|Linux网络 DNS域名解析服务
文章图片

要将客户端的dns1写成主客户端的ip地址 这样才能解析(且要关闭防火墙打开服务named
Linux|Linux网络 DNS域名解析服务
文章图片



(6)反向解析示例 vim /etc/named.rfc1912.zones
Linux|Linux网络 DNS域名解析服务
文章图片

// 192.168.82反向则是82.168.192
file "benet.com.zone.local"; //指定反向解析的数据文件,也可以跟正向解析的数据文件相同
Linux|Linux网络 DNS域名解析服务
文章图片
Linux|Linux网络 DNS域名解析服务
文章图片

cd /var/named/
cp -p benet.com.zone benet.com.zone.local
Linux|Linux网络 DNS域名解析服务
文章图片

Linux|Linux网络 DNS域名解析服务
文章图片

systemctl restart named//rndc reload也可以重载配置文件
host 192.168.10.20
// 将会反向解析出域名www.benet.com
Linux|Linux网络 DNS域名解析服务
文章图片


(7)主从DNS服务器示例: (1)配置主服务器192.168.86.128
vim /etc/named.conf
listen-on port 53{} 中值为any
allow-query{}中值改为any
Linux|Linux网络 DNS域名解析服务
文章图片

(2)进入vim /etc/named.rfc1912.zone
zone "benet.com" IN {
type master; //类型为主区域
file "benet.com.zone";
allow-transfer { 192.168.86.10; }; //设置从服务器地址
};
Linux|Linux网络 DNS域名解析服务
文章图片

设置反向解析
zone "10.168.192.in-addr.arpa" IN {
type master;
file "benet.com.zone.local";
allow-transfer{ 192.168.86.10; };
};
Linux|Linux网络 DNS域名解析服务
文章图片

(3)配置正向区域数据文件
cd /var/named
cp -p name.localhost benet.com.zone
vim /var/named/benet.com.zone
Linux|Linux网络 DNS域名解析服务
文章图片


Linux|Linux网络 DNS域名解析服务
文章图片

(4) 进入vim /etc/resolv.conf添加主从的ip
Linux|Linux网络 DNS域名解析服务
文章图片

进入 vim /var/named/benet.com.zone.local
Linux|Linux网络 DNS域名解析服务
文章图片

(5)配置从服务器
vim /etc/named.conf
listen-on port 53{} 中值为any
allow-query{}中值改为any
Linux|Linux网络 DNS域名解析服务
文章图片

进入 [root@localhost~]#vim /etc/named.rfc1912.zones
zone "benet.com" IN {
type slave; //类型为从区域
file "slaves/benet.com.zone"; //下载的区域数据文件保存到slaves/目录下
masters { 192.168.86.128; }; //设置主服务器地址
};
Linux|Linux网络 DNS域名解析服务
文章图片

当主中设置正向或者反向是从也需要设置相同的配置
Linux|Linux网络 DNS域名解析服务
文章图片

进入vim /etc/resolv.conf
Linux|Linux网络 DNS域名解析服务
文章图片

注释GATEWAY、DNS1、PREFIX
Linux|Linux网络 DNS域名解析服务
文章图片

在主中解析 查看从 是否能接受到主发送的数据
Linux|Linux网络 DNS域名解析服务
文章图片

Linux|Linux网络 DNS域名解析服务
文章图片

(8)分离解析 分离解析的域名服务器实际也是主域名服务器,这里主要是指根据不同的客户端提供不同的域名解析记录。比如来自内网和外网的不同网段地址区域的客户机请求解析同一域名时,为其提供不同的解析结果,得到不同的IP地址。
注:DNS分离解析即将内外网的相同域名解析为不同的IP地址。现实网络中一些电商网站为了让用户有更好的体验效果解析速度更快,就把来自不同运营商的用户解析到相对应的服务器这样就大大提升了访问速度

DNS分离解析示例:
(1)更改两个网络的网卡配置一个内网和一个外网
内网
Linux|Linux网络 DNS域名解析服务
文章图片

外网将ens33中的配置cp到ens37中 并更改
Linux|Linux网络 DNS域名解析服务
文章图片

Linux|Linux网络 DNS域名解析服务
文章图片

systemctl restart network重启网络
进入vim /etc/named.conf更改any
Linux|Linux网络 DNS域名解析服务
文章图片

进入 vim /etc/named.rfc1912.zones将所有删除 添加一下配置再将vim /etcnamed.conf中的 根域配置剪切到named.rfc1912.zones中
修改区域配置文件
vim /etc/named.rfc1912.zones
view "lan" {#定义内网view,view代表容器分割
match-clients { 192.168.20.0/24; } ; #匹配内网网段
zone "benet.com" IN {#设置要解析的区域
type master;
file "benet.com.zone.lan"; #数据配置文件
};
zone "." IN {#可将根域配置从主配置文件剪切过来,dd+p
type hint; #hint是根区域类型
file "named.ca";
};

view "wan" {#定义外网view .
match-clients { any; } ; #匹配除了内网网段以外的任意地址
zone "benet.com" IN {
type master;
file "benet.com.zone.wan";
};
};
#注意:一旦启用view,所有的zone必须都在view下,所以要把系统默认的自检用的zone也放在view下或者删55
Linux|Linux网络 DNS域名解析服务
文章图片

修改区域数据配置文件
cd /var/named
cp -p named.localhost benet.com.zone.lan
Linux|Linux网络 DNS域名解析服务
文章图片

cp -p named.localhost benet.com.zone.wan
Linux|Linux网络 DNS域名解析服务
文章图片

vim benet.com.zone.wan
Linux|Linux网络 DNS域名解析服务
文章图片

重启网卡 systemctl start named
外网服务器配置同网段、网卡
Linux|Linux网络 DNS域名解析服务
文章图片

要将httpd打开
Linux|Linux网络 DNS域名解析服务
文章图片

即可访问
Linux|Linux网络 DNS域名解析服务
文章图片

Linux|Linux网络 DNS域名解析服务
文章图片

总结 ■DNS系统的作用与常见类型
■BIND服务相关软件及其作用
■BIND服务的主配置文件与区域数据文件中重要配置项
■构建缓存域名服务器
■构建主域名服务器
【Linux|Linux网络 DNS域名解析服务】■构建从域名服务器

    推荐阅读