首页 > 其他 > 详细

DNS服务和BIND

时间:2019-11-08 00:36:54      阅读:87      评论:0      收藏:0      [点我收藏+]

今天我们来介绍一下DNS服务,在大家的印象中DNS可能只是将域名解析为IP地址,可能其他的暂时还不太了解,希望本篇内容能帮助大家。

1、什么是DNS?

        DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,使用的是UDP协议的53号端口,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。DNS就是这样的一位“翻译官”,它的基本工作原理可用下图来表示。

2、DNS服务基本概念

  在介绍DNS服务器工作原理之前我们先来了解几个DNS相关的概念:

  1、FQDN:Full Qualified Domain Name,完全限定域名,即每个域在全球网络都是唯一的;另外值得提到的一点是域并不是指诸如www.google.com这样的域名,而google.com才是域;

  2、域的分类

  (1)根域 :世界有13个ip地址管理,有10个在美国,1个在日本,3个在欧洲,荷兰,瑞典

  (2)顶级域:顶级域(Top Level Domain,简称TLD)分为三类

     1> 通用顶级域:诸如 .com(商业机构) .org(非营利性组织) .net(网络服务机构)等

     2> 国家顶级域:诸如 .cn(中国) .uk(英国) .us(美国) .jp(小日本)

     3> 反向域(基础建设顶级域):.arpa,即从IP到FQDN的反向解析

技术分享图片

  3、DNS服务器查询的类型:

   (1)递归查询:

        递归查询是最常见的查询方式,域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机,在域名服务器查询期间,客户机将完全处于等待状态。

   当收到DNS工作站的查询请求后,DNS服务器在自己的缓存或区域数据库中查找,如找到则返回结果,如找不到,返回错误结果。即DNS服务器只会向DNS工作站返回两种信息:要么是在该DNS服务器上查找到的结果,要么是查询失败。该DNS工作站自行向该DNS服务器询问。“递归”的意思是有来有往,并且来、往的次数是一致的。
一般由DNS工作站提出的查询请求便属于递归查询。

由于递归查询是两者之间的,所以通常查询起来高效快捷,能最快应答成功或失败的解析,然而无法成功解析所有域名。一般发生在客户端与服务器间,也特殊情况是dns服务器与dns服务器之间。同时与迭代查询相对.

   (2)迭代查询:

         迭代查询又称重指引,当服务器使用迭代查询时能使其他服务器返回一个最佳的查询点提示或主机地址,若此最佳的查询点中包含需要查询的主机地址,则返回主机地址信息,若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询,直到服务器给出的提示中包含所需要查询的主机地址为止,一般每次指引都会更靠近根服务器(向上),查寻到根域名服务器后,则会再次根据提示向下查找。B访问C、D、E、F、G,
都是迭代查询,首先B 访问C,得到了提示访问D的提示信息后,开始访问D,D又返回给B提示信息,告诉B应该访问E,依次类推。

 4、DNS名称解析方式:

   (1)正向解析:即将FQDN转化为IP。

   (2)反向解析:即将IP转化为FQDN。

  每台 DNS 服务器都负责管理一个有限范围(一个或几个域)内的主机域名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为“zone”(区域)。

  5、DNS服务器类型:

   (1)主DNS服务器:负责解析至少一个域。

   (2)辅助(从)DNS服务器:负责解析至少一个,是主DNS服务器的辅助。

   (3)缓存DNS服务器:不负责解析域,只是缓存域名解析结果。

  6、DNS返回的结果类型:

   (1)肯定答案:查询的域存在,会被缓存下来。

   (2)否定答案:不存在查询的域名,因此不存在与其查询的域名对应的IP;会被缓存下来。

   (3)权威答案:所查询的域名的结果是由负责解析这个域的DNS服务器所返回的答案。

   (4)非权威答案:在缓存中查询的结果。

  7、DNS的监听端口:tcp的53号端口,udp的53号端口。

3、DNS解析原理

(1)当用户在浏览器中输入www.qq.com域名访问该网站时,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。 

(2)如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。 

(3)如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。 

(4)如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。 

(5)如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。 

(6)如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
提示:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间的交互查询就是迭代查询。

4、DNS配置文件

/etc/named.conf          主配置文件 服务器主要运行参数

/etc/named.rfc1912.zones  区域文件,主要指定要解析哪个域名

/var/named/xxx.xx        数据文件,用来正向和反向的解析

5、资源记录?

区域解析库:由众多RR组成:
资源记录:Resource Record, RR
记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX
?SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个
SOA记录,必须位于解析库的第一条记录
?A:internet Address,作用,FQDN --> IP
?AAAA:FQDN --> IPv6
?PTR:PoinTeR,IP --> FQDN
?NS:Name Server,专用于标明当前区域的DNS服务器
?CNAME : Canonical Name,别名记录
?MX:Mail eXchanger,邮件交换器
?TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:
SPF(反垃圾邮件)记录,https验证等
示例:_dnsauth TXT 2012011200000051qgs69bwoh4h6nht4n1h0lr038x

6、资源记录定义的格式:

语法:name [TTL] IN rr_type value
?注意:
?(1) TTL可从全局继承
?(2) @可用于引用当前区域的名字
?(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询
方式响应
?(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值
进行定义;此仅表示通过多个不同的名字可以找到同一个主机

7、SOA记录

? name: 当前区域的名字,例如“baidu.com.”
? value: 有多部分组成
? (1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
? (2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换
例如:admin.baidu.com
? (3) 主从服务区域传输相关定义以及否定的答案的统一的TTL
? 例如:
baidu.com. 86400 IN SOA ns.baidu.com.
nsadmin.baidu.com. (
2015042201 ;序列号
2H ;刷新时间
10M  ;重试时间
1W  ;过期时间
1D  ;否定答案的TTL值
)

8、NS记录?

name: 当前区域的名字
?value: 当前区域的某DNS服务器的名字,例如ns.baidu.com.
?注意:一个区域可以有多个NS记录
例如:
baidu.com. IN NS ns1.baidu.com.
baidu.com. IN NS ns2.baidu.com.

 注意:
(1) 相邻的两个资源记录的name相同时,后续的可省略 
(2) 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有
一个A记录 

9、MX记录

name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高
例如:
baidu.com. IN MX 10 mx1.baidu.com.
IN MX 20 mx2.baidu.com.

?注意:对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有
一个A记录  

10、A记录

name: 某主机的FQDN,例如www.baidu.com.
?value: 主机名对应主机的IP地址
?例如:
www.baidu.com. IN A 1.1.1.1
www.baidu.com. IN A 2.2.2.2
mx1.baidu.com. IN A 3.3.3.3
mx2.baidu.com. IN A 4.4.4.4
$GENERATE 1-254 HOST$ A 1.2.3.$
*.baidu.com. IN A 5.5.5.5
baidu.com. IN A 6.6.6.6

注意:避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址,比如:@,  * 两个关键写法。

11、PTR记录:

name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而
有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa.
value: FQDN
?例如:
4.3.2.1.in-addr.arpa. IN PTR www.baidu.com.
如1.2.3为网络地址,可简写成:
4 IN PTR www.baidu.com. 

12、AAAA记录

name: FQDN
value: IPv6

13、CNAME(别名记录)

name: 别名的FQDN
value: 真正名字的FQDN
?例如:
www.baidu.com. IN CNAME websrv.baidu.com.

注意:网络地址及后缀可省略;主机地址依然需要反着写。

 

14、测试命令及rndc命令:

 

1、dig

dig [-t type] name [@SERVER] [query options]  

  dig 只用于测试dns 系统,不会查询hosts 文件进行解析

查询选项:

  +[no]trace程 :跟踪解析过程 : dig +trace baidu.com

  +[no]reurse :进行递归解析

  测试反向解析:dig -x IP = dig -t ptr reverseip.in-addr.arpa

  模拟区域传送:

  dig -t axfr ZONE_NAME @SERVER    抓区域数据库,可以被allow-transfer  { 192.168.30.106;}; 防止

  dig -t axfr baidu.com @10.10.10.11

  dig -t axfr 100.1.10.in-addr.arpa @172.16.1.1

  dig -t NS . @114.114.114.114  测试邮件记录

  dig -t NS . @a.root-servers.net  查根的服务器,13个

2、host,查询没有dig详细

    host [-t type] name [SERVER]

    host -t NS baidu.com 172.16.0.1

    host -t soa baidu.com

    host -t mx baidu.com

    host -t axfr baidu.com

    host 1.2.3.4

3、nslookup: (windows和linux都有这个命令)

命令: nslookup [-option] [name | -] [server]

交互式模式:

  nslookup>

  server IP: 指明使用哪个DNS server 进行查询

  set q=RR_TYPE: 指明查询的资源记录类型

  NAME: 要查询的名称

技术分享图片

4、rndc命令

rndc:

  rndc --> rndc (953/tcp)

  rndc COMMAND

COMMAND:

  reload: 重载主配置文件和区域解析库文件

  reload zonename: 重载区域解析库文件

  retransfer zonename: 手动启动 区域传送, 而不管序列号是否增加

  notify zonename: 重新对区域传送发通知,当主从同步过程发生意外时,

    例:rndc notify baidu.com

  reconfig: 重载主配置文件

  querylog: 开启或关闭查询日志文件/var/log/message(默认不启用日志),排错的时候才开启,要不访问一条加一条记录,量太大了;关闭,执行同样的命令

    tail -f /var/log/messages 动态查询日志

  trace: 递增debug 一个级别

  trace LEVEL: 指定使用的级别,日志级别,日志的详细程度

  notrace:为将调试级别设置为 0

  flush :清空DNS 服务器的所有缓存记录

 

 

14、验证linux的DNS服务具有缓存功能:

首先:我们拿一台linux主机A作为DNS服务端,另一台linux主机B作为客户端:

看一下主机A的当前网络配置:

安装bind软件:yum install bind -y

启动bind服务: systemctl start named(centos7启动)

                            service named start (centos6启动)

[root@ansiblenetwork-scripts]#vim ifcfg-ens33 

DEVICE=ens33
BOOTPROTO=static
IPADDR=192.168.34.101
PREFIX=24
GATEWAY=192.168.34.2
ONBOOT=yes
DNS1=127.0.0.1

然后在主机A上ping网址,如ping www.baidu.com,此时可以看到能ping通:

[root@ansiblenetwork-scripts]#ping www.baidu.com
PING www.a.shifen.com (112.80.248.75) 56(84) bytes of data.
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=1 ttl=128 time=1003 ms
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=2 ttl=128 time=16.8 ms
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=3 ttl=128 time=14.6 ms
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=4 ttl=128 time=19.7 ms
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=5 ttl=128 time=17.6 ms
^C
--- www.a.shifen.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 8649ms
rtt min/avg/max/mdev = 14.634/214.418/1003.120/394.354 ms, pipe 2

修改配置文件: 

注释掉第一个,是因为他默认是监听在本地端口上,这样是不能提供服务的。
可以改成把IP改成localhost,或是你指定的某个IP。注释后默认监听在所有本地端口上。
注释掉第二个,是因为它里面写了localhost,指明了只能被本机所使用查询功能,
注释后默认所有IP都可以使用,也可以把localhost改成any。

vim /etc/named.conf

[root@ansible~]#vim /etc/named.conf
options {
        listen-on port 53 { localhost; }; 本地端口进行连接

        allow-query     { any; };  改为any,是允许所有人进行连接此计算机

将主机B的DNS地址写成主机A的IP地址,即192.168.34.101当做主机B的DNS,指向主机A:

[root@centos6~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
PROTOBOOT=static
IPADDR=192.168.34.105
GATEWAY=192.168.34.2
ONBOOT=yes
DNS1=192.168.34.101

此时将主机A的连接外网的一个网卡down掉,然后在主机B上ping www.baidu.com,此时可以ping通:

[root@ansible~]#ifconfig ens37 down  将A主机的外网网卡去掉
[root@centos6~]#ping www.baidu.com  此时还是可以通过192.168.34.101主机可以ping到外网
PING www.a.shifen.com (112.80.248.76) 56(84) bytes of data.
64 bytes from 112.80.248.76: icmp_seq=1 ttl=128 time=20.2 ms
64 bytes from 112.80.248.76: icmp_seq=2 ttl=128 time=15.0 ms
64 bytes from 112.80.248.76: icmp_seq=3 ttl=128 time=39.5 ms
64 bytes from 112.80.248.76: icmp_seq=4 ttl=128 time=17.2 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3419ms
rtt min/avg/max/mdev = 15.076/23.020/39.545/9.713 ms
[root@centos6~]#dig www.baidu.com   也可以查询到当前的执行结果

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15097
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		361	IN	CNAME	www.a.shifen.com.
www.a.shifen.com.	110	IN	A	112.80.248.75
www.a.shifen.com.	110	IN	A	112.80.248.76

;; AUTHORITY SECTION:
a.shifen.com.		362	IN	NS	ns1.a.shifen.com.
a.shifen.com.		362	IN	NS	ns3.a.shifen.com.
a.shifen.com.		362	IN	NS	ns4.a.shifen.com.
a.shifen.com.		362	IN	NS	ns2.a.shifen.com.
a.shifen.com.		362	IN	NS	ns5.a.shifen.com.

;; ADDITIONAL SECTION:
ns5.a.shifen.com.	362	IN	A	180.76.76.95
ns2.a.shifen.com.	362	IN	A	220.181.33.32
ns3.a.shifen.com.	362	IN	A	112.80.255.253
ns4.a.shifen.com.	362	IN	A	14.215.177.229
ns1.a.shifen.com.	362	IN	A	61.135.165.224

;; Query time: 4 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)   连接通的IP地址来自于192.168.34.101
;; WHEN: Wed Nov  6 20:46:45 2019
;; MSG SIZE  rcvd: 260

15、实现正向解析DNS服务器

在主配置文件中定义区域:

type类型有 主:从:根:转发。 
file指区域解析库文件的文件名,默认放在/var/named/目录下,修改当前配置文件:

vim /etc/named.rfc1912.zones

[root@ansiblenamed]#vim /etc/named.rfc1912.zones

zone  "baidu.com" {       将文件内容写入当前文件中
        type master;
        file "baidu.com.zone";
};

技术分享图片

将 /var/named/目录下的默认配置文件复制一份,并修改区域数据解析库文件

注意:named.localhost的属性,尤其是属组,一定要是named所属组。

[root@ansiblenamed]#cd /var/named
[root@ansiblenamed]#cp -p named.localhost  baidu.com.zone

修改里边的区域数据解析库内容:

[root@ansiblenamed]#vim baidu.com.zone 

$TTL 1D
@       IN SOA  dns1  admin.baidu.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
dns1    A   192.168.34.101
www    CNAME    webs
webs   A      6.6.6.6
webs   A      8.8.8.8
webs   A      7.7.7.7
@      MX   10 mailser1
@      MX   20 mailser2
mailser1 A     11.9.9.9
mailser2 A     9.9.9.9
@        A     8.8.8.8  此写法可以省略前面的www写法
*        A     8.8.8.8  此写法避免用户只知道域名,www前面的输入错误也能打开页面。
$GENERATE  1-200  server$ A 192.168.34.$ 将一个服务生成最大200条记录

注意:以上的SOA记录里面小括号里面的那五行分别指的是 序列号;刷新时间;重试时间; 
过期时间;否定答案时间的TLL值。

 

检测配置文件内容是否有误:

named-checkzone  baidu.com  /var/named/baidu.com.zone

rncd reload  重新加载服务。

[root@ansiblenamed]#named-checkzone baidu.com  /var/named/baidu.com.zone
zone baidu.com/IN: loaded serial 0
OK
[root@ansiblenamed]#rndc reload  让此配置文件生效,或者直接重启named也可以,systemctl restart named
server reload successful

主机B此时的DNS配置信息还是主机A的IP地址:

[root@centos6~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
PROTOBOOT=static
IPADDR=192.168.34.105
GATEWAY=192.168.34.2
ONBOOT=yes
DNS1=192.168.34.101

在主机B上验证当前6.6.6.6的解析结果来自于主机A(192.168.34.101),结果如下:

1、dig www.baidu.com   host www.baidu.com   nslokup www.baidu.com 都可以查询

[root@centos6named]#dig www.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17575
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		86400	IN	A	6.6.6.6

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	baidu.com.

;; ADDITIONAL SECTION:
baidu.com.		86400	IN	A	127.0.0.1
baidu.com.		86400	IN	AAAA	::1

;; Query time: 4 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Wed Nov  6 21:05:59 2019
;; MSG SIZE  rcvd: 105

此时可以看到当前的7.7.7.7解析结果也是来自于192.168.34.101:

dig blog.baidu.com   host blog.baidu.com   nslokup blog.baidu.com 

[root@centos6named]#dig blog.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> blog.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46754
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; QUESTION SECTION:
;blog.baidu.com.			IN	A

;; ANSWER SECTION:
blog.baidu.com.		86400	IN	A	7.7.7.7

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	baidu.com.

;; ADDITIONAL SECTION:
baidu.com.		86400	IN	A	127.0.0.1
baidu.com.		86400	IN	AAAA	::1

;; Query time: 1 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Wed Nov  6 21:06:57 2019
;; MSG SIZE  rcvd: 106

不输入www验证解析内容:

[root@ansiblenamed]#dig baidu.com

; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28766
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;baidu.com.			IN	A

;; ANSWER SECTION:
baidu.com.		86400	IN	A	8.8.8.8

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	dns1.baidu.com.

;; ADDITIONAL SECTION:
dns1.baidu.com.		86400	IN	A	192.168.34.101

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Nov 06 23:39:16 CST 2019
;; MSG SIZE  rcvd: 89

用户输入错误解析文件信息:

[root@ansiblenamed]#dig adsds.baidu.com

; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> adsds.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34813
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;adsds.baidu.com.		IN	A

;; ANSWER SECTION:
adsds.baidu.com.	86400	IN	A	8.8.8.8

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	dns1.baidu.com.

;; ADDITIONAL SECTION:
dns1.baidu.com.		86400	IN	A	192.168.34.101

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Nov 06 23:40:39 CST 2019
;; MSG SIZE  rcvd: 95

解析当前的A记录:

[root@ansiblenamed]#dig www.baidu.com

; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20270
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		86400	IN	CNAME	webs.baidu.com.
webs.baidu.com.		86400	IN	A	7.7.7.7
webs.baidu.com.		86400	IN	A	8.8.8.8
webs.baidu.com.		86400	IN	A	6.6.6.6

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	dns1.baidu.com.

;; ADDITIONAL SECTION:
dns1.baidu.com.		86400	IN	A	192.168.34.101

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Nov 06 22:03:38 CST 2019
;; MSG SIZE  rcvd: 144

查询域中的MX记录:

[root@ansiblenamed]#dig -t mx  baidu.com

; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> -t mx baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62611
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 4

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;baidu.com.			IN	MX

;; ANSWER SECTION:
baidu.com.		86400	IN	MX	10 mailser1.baidu.com.
baidu.com.		86400	IN	MX	20 mailser2.baidu.com.

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	dns1.baidu.com.

;; ADDITIONAL SECTION:
mailser1.baidu.com.	86400	IN	A	11.9.9.9
mailser2.baidu.com.	86400	IN	A	9.9.9.9
dns1.baidu.com.		86400	IN	A	192.168.34.101

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Nov 06 22:04:16 CST 2019
;; MSG SIZE  rcvd: 155

验证当前生成最大200条记录的信息内容:

[root@centos6named]#dig server20.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> server20.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5853
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;server20.baidu.com.		IN	A

;; ANSWER SECTION:
server20.baidu.com.	86400	IN	A	192.168.34.20

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	dns1.baidu.com.

;; ADDITIONAL SECTION:
dns1.baidu.com.		86400	IN	A	192.168.34.101

;; Query time: 3 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Wed Nov  6 23:47:27 2019
;; MSG SIZE  rcvd: 87

[root@centos6named]#dig server10.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> server10.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61484
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;server10.baidu.com.		IN	A

;; ANSWER SECTION:
server10.baidu.com.	86400	IN	A	192.168.34.10

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	dns1.baidu.com.

;; ADDITIONAL SECTION:
dns1.baidu.com.		86400	IN	A	192.168.34.101

;; Query time: 2 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Wed Nov  6 23:47:33 2019
;; MSG SIZE  rcvd: 87

查询邮件服务器:

dig -t mx easthome.com 查找一个域的邮件服务器。

[root@ansiblenamed]#dig -t  mx easthome.com

; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> -t mx easthome.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50719
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 19

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;easthome.com.			IN	MX

;; ANSWER SECTION:
easthome.com.		1200	IN	MX	1 mail.easthome.com.

;; AUTHORITY SECTION:
easthome.com.		172749	IN	NS	dns20.hichina.com.
easthome.com.		172749	IN	NS	dns19.hichina.com.

;; ADDITIONAL SECTION:
dns19.hichina.com.	172749	IN	A	140.205.41.17
dns19.hichina.com.	172749	IN	A	140.205.41.27
dns19.hichina.com.	172749	IN	A	140.205.81.17
dns19.hichina.com.	172749	IN	A	140.205.81.27
dns19.hichina.com.	172749	IN	A	106.11.141.117
dns19.hichina.com.	172749	IN	A	106.11.141.127
dns19.hichina.com.	172749	IN	A	106.11.211.57
dns19.hichina.com.	172749	IN	A	106.11.211.67
dns19.hichina.com.	172749	IN	AAAA	2400:3200:2000:38::1
dns20.hichina.com.	172749	IN	A	140.205.81.18
dns20.hichina.com.	172749	IN	A	140.205.81.28
dns20.hichina.com.	172749	IN	A	106.11.141.118
dns20.hichina.com.	172749	IN	A	106.11.141.128
dns20.hichina.com.	172749	IN	A	106.11.211.58
dns20.hichina.com.	172749	IN	A	106.11.211.68
dns20.hichina.com.	172749	IN	A	140.205.41.18
dns20.hichina.com.	172749	IN	A	140.205.41.28
dns20.hichina.com.	172749	IN	AAAA	2400:3200:2000:39::1

;; Query time: 274 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Nov 06 22:10:52 CST 2019
;; MSG SIZE  rcvd: 422

16、实现反向解析DNS服务器  

修改当前配置文件:vim /etc/named.rfc1912.zones

[root@ansiblenamed]#vim /etc/named.rfc1912.zones 
zone "34.168.192.in-addr.arpa"IN {
        type master;
        file "192.168.34.zone";
};

 修改反向区域解析库文件: 

[root@ansiblenamed]#vim 192.168.34.zone 

$TTL 1D
@ IN  SOA  dnsserver admin.baidu.com. ( 20191110 3H 10M 1D 1H )
      NS   dnsserver
dnsserver   A      192.168.34.101
7           PTR    dnsserver.baidu.com.
100         PTR    www.baidu.com
200         PTR    blog.baidu.com

将配置文件生效:

[root@ansiblenamed]#rndc reload

检查区域库文件反向解析结果:

[root@centos6named]#dig -x 192.168.34.100

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> -x 192.168.34.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33971
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;100.34.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
100.34.168.192.in-addr.arpa. 86400 IN	PTR	www.baidu.com.34.168.192.in-addr.arpa.

;; AUTHORITY SECTION:
34.168.192.in-addr.arpa. 86400	IN	NS	dnsserver.34.168.192.in-addr.arpa.

;; ADDITIONAL SECTION:
dnsserver.34.168.192.in-addr.arpa. 86400 IN A	192.168.34.101

;; Query time: 4 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Wed Nov  6 22:38:10 2019
;; MSG SIZE  rcvd: 113

[root@centos6named]#dig -x 192.168.34.200

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> -x 192.168.34.200
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41455
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;200.34.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
200.34.168.192.in-addr.arpa. 86400 IN	PTR	blog.baidu.com.34.168.192.in-addr.arpa.

;; AUTHORITY SECTION:
34.168.192.in-addr.arpa. 86400	IN	NS	dnsserver.34.168.192.in-addr.arpa.

;; ADDITIONAL SECTION:
dnsserver.34.168.192.in-addr.arpa. 86400 IN A	192.168.34.101

;; Query time: 1 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Wed Nov  6 22:38:18 2019
;; MSG SIZE  rcvd: 114

[root@centos6named]#dig -x 192.168.34.7

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> -x 192.168.34.7
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35113
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;7.34.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
7.34.168.192.in-addr.arpa. 86400 IN	PTR	dnsserver.baidu.com.

;; AUTHORITY SECTION:
34.168.192.in-addr.arpa. 86400	IN	NS	dnsserver.34.168.192.in-addr.arpa.

;; ADDITIONAL SECTION:
dnsserver.34.168.192.in-addr.arpa. 86400 IN A	192.168.34.101

;; Query time: 1 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Wed Nov  6 22:38:22 2019
;; MSG SIZE  rcvd: 116

 17、实现主从复制

主从复制:
1、应该为一台独立的名称服务器;
2、主服务器的区域解析库文件中必须有一条NS记录是指向从服务器;
3、从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中;
4、主服务器得允许从服务器作区域传送;
5、主从服务器时间应该同步,可通过ntp进行;
6、bind程序的应该保持一致;否则,应该从高,主低;

实验前准备:

主服务器:A (IP地址为192.168.34.101)

从服务器:B  (IP地址为192.168.34.103)

客户端:C      (IP地址为192.168.34.105)

 

配置主服务器相关文件:

(1)在主服务器A中配置文件信息:vim /etc/named.conf

修改完之后并重新启动DNS服务:rndc reload

options {
        listen-on port 53 { localhost; }; 将此行写成localhost或者注释掉(//),不写的话会,默认只能本机访问
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };   写成any或者注释掉(//)都可以
        allow-transfer  { 192.168.34.103; }; 将从服务器的IP地址写入,默认只能103地址作为当前主服务器的备用服务器,即:从服务器,不然任何主机都可以做为从服务器访问主服务器,抓取重要信息

(2)修改主服务器A区域库文件的内容:

vim /var/named/baidu.com.zone

[root@ansiblenamed]#vim /var/named/baidu.com.zone

$TTL 1D
@       IN SOA  dns1  admin.baidu.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1           
        NS      dns2           #主要是修改了这部分内容,给从服务器添加一个NS标记
dns1    A   192.168.34.101     # 主服务器IP地址 
dns2    A   192.168.34.103     # 将从服务器的IP地址写入
www    CNAME    webs
webs   A      6.6.6.6
webs   A      8.8.8.8
webs   A      7.7.7.7
@      MX   10 mailser1
@      MX   20 mailser2
mailser1 A     11.9.9.9
mailser2 A     9.9.9.9
@       A      8.8.8.8
*       A      8.8.8.8
$GENERATE  1-200  server$ A 192.168.34.$

配置从服务器的文件:

(1)在从服务器B上安装DNS:yum install bind

在配置文件中修改/etc/named.conf相关配置文件

[root@centos7_1 ~]# vim /etc/named.conf
options {
//      listen-on port 53 { 127.0.0.1; };  #将此行注释掉
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
//      allow-query     { localhost; }; 将此行注释掉
        allow-transfer  { none;};  此行必需写入,不写会不安全,而且其他任何主机都可以作为从服务器进行访问,抓取IP地址

注意:将第一行的listen-on port 53端口注释掉,或者写成localhost,不然只能为本机服务,allow-query那行业注释掉。  

(2)将从服务器B的/etc/named.rfc1912.zones配置文件加以修改

[root@centos7_1 ~]# vim /etc/named.rfc1912.zones 
zone "baidu.com" {       # 域名要与主服务器的域名一致
        type slave;      # 类型为“奴隶的意思”
        masters {192.168.34.101;};  #将主服务器的IP地址写入
        file "slaves/baidu.com.zone.slave"; # 将从服务器的数据放到slaves路径内
};

(3)重新加载主服务器A的DNS服务:

[root@ansiblenamed]#rndc reload
server reload successful

(4)查询当前从服务器B的同步的数据文件,此时我们可以看到/var/named/slaves目录下已经同步了主服务器的数据内容:

[root@centos7_1 ~]# ls /var/named/slaves
baidu.com.zone.slave

  配置客户端: 

(5)下来我在客户端C配置两个DNS地址,将主从服务器的IP地址都关联起来:

[root@centos6network-scripts]#vim ifcfg-eth0
DEVICE=eth0
PROTOBOOT=static
IPADDR=192.168.34.105
GATEWAY=192.168.34.2
ONBOOT=yes
DNS1=192.168.34.101  # 主服务器的DNS IP地址
DNS2=192.168.34.103  #  从服务器的DNS IP地址

(6)在客户端C查看当前配置好的DNS服务地址

[root@centos6network-scripts]#cat /etc/resolv.conf  查看当前的配置DNS信息
# Generated by NetworkManager
search 10.localdomain
nameserver 192.168.34.101
nameserver 192.168.34.103 

(7)我们在客户端C用dig命令查看当前的baidu.com 网址,查看当前DNS解析IP地址是来自哪个服务器:

[root@centos6network-scripts]#dig www.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24163
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		86400	IN	CNAME	webs.baidu.com.
webs.baidu.com.		86400	IN	A	6.6.6.6
webs.baidu.com.		86400	IN	A	8.8.8.8
webs.baidu.com.		86400	IN	A	7.7.7.7

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	dns1.baidu.com.
baidu.com.		86400	IN	NS	dns2.baidu.com.

;; ADDITIONAL SECTION:
dns1.baidu.com.		86400	IN	A	192.168.34.101
dns2.baidu.com.		86400	IN	A	192.168.34.103

;; Query time: 6 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)  #此时可以看到解析的IP地址来自于主服务器
;; WHEN: Thu Nov  7 09:38:55 2019
;; MSG SIZE  rcvd: 168

(8)我们将主服务器A的网卡down掉(ifconfig ens33 down),然后在客户端C查看当前内容:

[root@centos6network-scripts]#dig www.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54362
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		86400	IN	CNAME	webs.baidu.com.
webs.baidu.com.		86400	IN	A	8.8.8.8
webs.baidu.com.		86400	IN	A	7.7.7.7
webs.baidu.com.		86400	IN	A	6.6.6.6

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	dns1.baidu.com.
baidu.com.		86400	IN	NS	dns2.baidu.com.

;; ADDITIONAL SECTION:
dns1.baidu.com.		86400	IN	A	192.168.34.101
dns2.baidu.com.		86400	IN	A	192.168.34.103

;; Query time: 12 msec
;; SERVER: 192.168.34.103#53(192.168.34.103)  #此时,我们看到的是从服务器的IP地址,访问网站是通过从服务器访问。
;; WHEN: Thu Nov  7 10:24:16 2019
;; MSG SIZE  rcvd: 168

(9)此时,我们来验证当前的服务器同步情况,修改主服务器区域库文件内容:/var/named/baidu.com.zone

[root@ansible~]#vim /var/named/baidu.com.zone 

$TTL 1D
@       IN SOA  dns1  admin.baidu.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
        NS      dns2
dns1    A   192.168.34.101
dns2    A   192.168.34.103
www    CNAME    webs
webs   A      6.6.6.6
webs   A      8.8.8.8
webs   A      7.7.7.7
@      MX   10 mailser1  #删除此条配置
@      MX   20 mailser2  #删除此条配置 
mailser1 A     11.9.9.9
mailser2 A     9.9.9.9
@       A      8.8.8.8
*       A      8.8.8.8
$GENERATE  1-200  server$ A 192.168.34.$

(10)删除之后,将DNS服务重启:rndc reload

[root@ansible~]#rndc reload
server reload successful

 (11)然后我们在客户端C上dig查询同步信息,此时,我们分别在主从服务器上都可以看到MX的配置记录,这是为什么呢?这是因为我们修改后同步不同步,不是只修改配置文件,而是要修改上面的序列号(serial),才会生效,请看第12步:

[root@centos6network-scripts]#dig -t mx baidu.com @192.168.34.101

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> -t mx baidu.com @192.168.34.101
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50791
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;baidu.com.			IN	MX

;; AUTHORITY SECTION:
baidu.com.		10800	IN	SOA	dns1.baidu.com. admin.baidu.com. 0 86400 3600 604800 10800

;; Query time: 7 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Thu Nov  7 10:33:31 2019
;; MSG SIZE  rcvd: 74

[root@centos6network-scripts]#dig -t mx baidu.com @192.168.34.103

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> -t mx baidu.com @192.168.34.103
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48437
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 4

;; QUESTION SECTION:
;baidu.com.			IN	MX

;; ANSWER SECTION:
baidu.com.		86400	IN	MX	10 mailser1.baidu.com.
baidu.com.		86400	IN	MX	20 mailser2.baidu.com.

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	dns1.baidu.com.
baidu.com.		86400	IN	NS	dns2.baidu.com.

;; ADDITIONAL SECTION:
mailser1.baidu.com.	86400	IN	A	11.9.9.9
mailser2.baidu.com.	86400	IN	A	9.9.9.9
dns1.baidu.com.		86400	IN	A	192.168.34.101
dns2.baidu.com.		86400	IN	A	192.168.34.103

;; Query time: 10 msec
;; SERVER: 192.168.34.103#53(192.168.34.103)
;; WHEN: Thu Nov  7 10:33:34 2019
;; MSG SIZE  rcvd: 179

(12)将序列号(serial)修改为1,改完之后重新加载DNS服务,rndc reload:

[root@ansible~]#vim /var/named/baidu.com.zone 

$TTL 1D
@       IN SOA  dns1  admin.baidu.com. (
                                        1       ; serial  #此处的0已经改为1
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
        NS      dns2
dns1    A   192.168.34.101
dns2    A   192.168.34.103
www    CNAME    webs     此处也做了修改
webs   A      66.66.66.66 此处也做了修改
mailser1 A     11.9.9.9
mailser2 A     9.9.9.9
@       A      8.8.8.8
*       A      8.8.8.8
$GENERATE  1-200  server$ A 192.168.34.$

(13)修改完配置后,重启DNS服务,并在客户端进行dig验证,此时的IP地址已经同步,并且没有了MX配置文件的记录:

[root@ansible~]#rndc reload  重启DNS服务
server reload successful
[root@centos6network-scripts]#dig www.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22540
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.baidu.com.	IN	A

;; ANSWER SECTION:
www.baidu.com.	86400	IN	CNAME	webs.baidu.com.
webs.baidu.com.	86400	IN	A	66.66.66.66   此时已经同步为新的IP地址

;; AUTHORITY SECTION:
baidu.com.	86400	IN	NS	dns2.baidu.com.
baidu.com.	86400	IN	NS	dns1.baidu.com.

;; ADDITIONAL SECTION:
dns1.baidu.com.	86400	IN	A	192.168.34.101
dns2.baidu.com.	86400	IN	A	192.168.34.103

;; Query time: 1 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Thu Nov 7 10:41:43 2019
;; MSG SIZE rcvd: 136

(小实验)验证TCP和UDP的53端口作用:

将从服务器B的/var/named/slaves/目录下的文件删掉:

[root@centos7_1 slaves]# rm -rf /var/named/slaves/baidu.com.zone.slave   删除slaves目录下的文件
[root@centos7_1 slaves]# systemctl restart named  重启DNS服务
[root@centos7_1 slaves]# ls  还可以复制主服务器的文件
baidu.com.zone.slave
[root@ansible~]#iptables -A INPUT -p tcp --dport 53 -j REJECT  将目标tcp的53端口拒绝。
[root@centos7_1 slaves]# systemctl restart named 重启服务
[root@centos7_1 slaves]# ls  此时不能复制主服务器的文件

在客户端C上dig可以查询到当前的53信息内容,此时的内容是来自于UDP的53端口

[root@centos6network-scripts]#dig www.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3449
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		86400	IN	CNAME	webs.baidu.com.
webs.baidu.com.		86400	IN	A	66.66.66.66

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	dns1.baidu.com.
baidu.com.		86400	IN	NS	dns2.baidu.com.

;; ADDITIONAL SECTION:
dns1.baidu.com.		86400	IN	A	192.168.34.101
dns2.baidu.com.		86400	IN	A	192.168.34.103

;; Query time: 10 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Thu Nov  7 11:14:25 2019
;; MSG SIZE  rcvd: 136

总结:TCP 的53端口影响了主从复制、UDP的53端口是供查询

创建子域:

子域和父域在同一台主机上

(1)创建子域,在主服务器A(主域)上将beijing.baidu.com域写入到/etc/named.rfc1912.zones配置文件内:

[root@ansiblenamed]#vim /etc/named.rfc1912.zones 

zone  "baidu.com" {
        type master;
        file "baidu.com.zone";
};

zone  "beijing.baidu.com" {
        type master;
        file "beijing.baidu.com.zone";
};

创建一个beijing.baidu.com区域库文件,配置完之后启动DNS,systemctl start named:

[root@ansible~]#cd /var/named
[root@ansiblenamed]#ls
192.168.34.zone  beijing.baidu.com.zone  dynamic   named.empty      named.loopback
baidu.com.zone   data                    named.ca  named.localhost  slaves
[root@ansiblenamed]#vim beijing.baidu.com.zone 

$TTL 1D
@       IN SOA  dns1  admin (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
dns1    A   192.168.34.101  当前的IP地址指向顶级域的IP地址
www    CNAME    webs
webs   A      88.88.88.88

(2)在客户端C上dig查询配置好后的子域信息:

[root@centos6network-scripts]#dig www.baidu.com  查看主服务器的baidu.com域

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41274
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		86400	IN	CNAME	webs.baidu.com.
webs.baidu.com.		86400	IN	A	66.66.66.66

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	dns2.baidu.com.
baidu.com.		86400	IN	NS	dns1.baidu.com.

;; ADDITIONAL SECTION:
dns1.baidu.com.		86400	IN	A	192.168.34.101
dns2.baidu.com.		86400	IN	A	192.168.34.103

;; Query time: 0 msec
;; SERVER: 192.168.34.103#53(192.168.34.103)
;; WHEN: Thu Nov  7 11:57:45 2019
;; MSG SIZE  rcvd: 136

[root@centos6network-scripts]#dig www.beijing.baidu.com  查看当前的子域内容

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.beijing.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59333
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.beijing.baidu.com.		IN	A

;; ANSWER SECTION:
www.beijing.baidu.com.	86400	IN	CNAME	webs.beijing.baidu.com.
webs.beijing.baidu.com.	86400	IN	A	88.88.88.88

;; AUTHORITY SECTION:
beijing.baidu.com.	86400	IN	NS	dns1.beijing.baidu.com.

;; ADDITIONAL SECTION:
dns1.beijing.baidu.com.	86400	IN	A	192.168.34.101

;; Query time: 4 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Thu Nov  7 11:57:54 2019
;; MSG SIZE  rcvd: 109

实现子域委派(父域和子域在不同主机上):

(1)将主服务器A的配置文件/var/named/baidu.com.zone进行修改,添加一个shenzhen域:

[root@ansiblenamed]#vim /var/named/baidu.com.zone 

$TTL 1D
@       IN SOA  dns1  admin.baidu.com. (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
        NS      dns2
shenzhen NS     dns3
dns1    A   192.168.34.101
dns2    A   192.168.34.103
dhs3    A   192.168.34.102

www    CNAME    webs
webs   A      66.66.66.66

(2)重启主服务器A的DNS服务:

[root@ansiblenamed]#rndc reload
server reload successful

注意:检查配置文件是否书写错误

named-checkconf 查看配置文件是否有误
named-checkzone  baidu.com  /var/named/baidu.com.zone  检查域文件是否有误

(3)在服务器D(子域上)上安装DNS服务,并DNS配置相关文件,

yum  install bind

[root@centos102 ~]# vim /etc/named.conf
options {
//      listen-on port 53 { 127.0.0.1; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
//      allow-query     { localhost; };

(4)修改服务器D(子域)的/etc/named.rfc1912.zones配置文件:

[root@centos102 ~]# vim /etc/named.rfc1912.zones 
zone "shenzhen.baidu.com" {
        type master;
        file "shenzhen.baidu.com.zone";
};

(5)在服务器D(子域)上远程复制主服务器A的区域库文件,并将所属组属性进行修改:

[root@centos102 ~]# scp 192.168.34.103:/var/named/baidu.com.zone  /var/named/shenzhen.baidu.com.zone
[root@centos102 named]# ll
total 32
drwxrwx--- 2 named named 4096 Mar 23  2017 data
drwxrwx--- 2 named named 4096 Mar 23  2017 dynamic
-rw-r----- 1 root  named 3171 Jan 11  2016 named.ca
-rw-r----- 1 root  named  152 Dec 15  2009 named.empty
-rw-r----- 1 root  named  152 Jun 21  2007 named.localhost
-rw-r----- 1 root  named  168 Dec 15  2009 named.loopback
-rw-r----- 1 root  root   296 Nov  7 12:11 shenzhen.baidu.com.zone  此时的文件所属组属性有问题
drwxrwx--- 2 named named 4096 Mar 23  2017 slaves
[root@centos102 named]# chgrp named shenzhen.baidu.com.zone   修改当前的shenzhen.baidu.com.zone所属组属性

(6)修改服务器D(子域)当前的shenzhen.baidu.com.zone配置文件:

[root@centos7-2 named]# vim shenzhen.baidu.com.zone 
$TTL 1D
@       IN SOA  dns1  admin (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
dns1    A   192.168.34.102

www    CNAME    webs
webs   A      7.7.7.7

注意:需要检查配置文件和域文件是否有误。

named-checkconf 查看配置文件是否有误
named-checkzone  baidu.com  /var/named/baidu.com.zone  检查域文件是否有误

(7)启动(子域)的DNS服务:

[root@centos7-2 named]# systemctl start named

(8)此时,我们的客户端C并没有配置执行shenzhen.baidu.com.zone子域的DNSIP地址,

   在客户端执行dig查看当前的shenzhen.baidu.com.zone子域情况:

[root@centos6~]#cat /etc/resolv.conf  查看当前的DNS指向的IP地址
# Generated by NetworkManager
search 10.localdomain
nameserver 192.168.34.101
nameserver 192.168.34.103
[root@centos6~]#dig www.shenzhen.baidu.com   此时已经实现了迭代查询功能

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.shenzhen.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15796
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.shenzhen.baidu.com.		IN	A

;; ANSWER SECTION:
www.shenzhen.baidu.com.	86266	IN	CNAME	webs.shenzhen.baidu.com.
webs.shenzhen.baidu.com. 86266	IN	A	7.7.7.7

;; AUTHORITY SECTION:
shenzhen.baidu.com.	86266	IN	NS	dns1.shenzhen.baidu.com.

;; ADDITIONAL SECTION:
dns1.shenzhen.baidu.com. 86266	IN	A	192.168.34.102

;; Query time: 4 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Thu Nov  7 16:35:25 2019
;; MSG SIZE  rcvd: 110

 实现DNS服务转发:

原理:要访问www.magedu.com网址,先在本地的缓存DNS服务器寻找,如果就可以访问,如果没有,根将DNS服务器的缓存放入到北京,将北京作为一个转发(作为期望的DNS转发服务器),上海和重庆直接指向北京寻找答案,节约了广域上的网络带宽。

技术分享图片

only用法:客户端发起请求在A服务器上找,A服务器转发到B(103IP)的服务器上,B服务器返回最终的结果,如果B服务器没有不去询问根。

创建一个转发服务器B(192.168.34.103),将/etc/named.rfc1912.zones配置文件进行修改:

[root@centos7-1~]#vim /etc/named.rfc1912.zones
zone "wang.com" {
        type master;
        file "wang.com.zone";
};

在/var/named/目录下创建一个wang.com.zone配置文件:

vim /var/named/www.wang.com.zone
$TTL 1D
@ IN SOA dns1 admin ( 1 1H 1M 1D 3H )
   NS dns1
dns1 A 192.168.34.102
www  A 6.6.6.6

注意将 wang.com.zone配置文件的所属组改为named,权限改为640  

[root@centos7-1named]#ll
total 32
-rw-r--r-- 1 root  root   230 Nov  6 22:53 192.168.34.zone
-rw-r----- 1 root  named  296 Nov  7 15:35 baidu.com.zone
drwxrwx--- 2 named named   23 Oct 31  2018 data
drwxrwx--- 2 named named   31 Nov  7 16:21 dynamic
-rw-r----- 1 root  named 2281 May 22  2017 named.ca
-rw-r----- 1 root  named  152 Dec 15  2009 named.empty
-rw-r----- 1 root  named  152 Jun 21  2007 named.localhost
-rw-r----- 1 root  named  168 Dec 15  2009 named.loopback
-rw-r----- 1 root  named  198 Nov  7 15:59 shenzhen.baidu.com.zone
drwxrwx--- 2 named named    6 Oct 31  2018 slaves
-rw-r--r-- 1 root  root    94 Nov  7 20:33 wang.com.zone
[root@centos7-1named]#chgrp named wang.com.zone 
[root@centos7-1named]#chmod 640 wang.com.zone 

配置完之后重新加载DNS服务:

dndc reload

在主服务器A上修改相应的配置文件,/etc/named.conf

[root@ansible~]#vim /etc/named.conf
options {
//      listen-on port 53 { localhost; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
//      allow-query     { any; };
        allow-transfer  { 192.168.34.103; };
        forward only ;                         将转发服务器的IP地址写到主服务器上面,保证只转发此IP地址
        forwarders      {192.168.34.103;};

       dnssec-enable no;    将此两个功能关掉
       dnssec-validation no; 关掉此功能

配置完之后重新加载DNS服务:

rndc  reload  重新加载DNS服务

最后在客户端C上验证转发功能:

[root@centos6~]#dig www.wang.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.wang.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41040
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.wang.com.			IN	A

;; ANSWER SECTION:
www.wang.com.		86063	IN	A	6.6.6.6

;; AUTHORITY SECTION:
wang.com.		86063	IN	NS	dns1.wang.com.

;; ADDITIONAL SECTION:
dns1.wang.com.		86063	IN	A	192.168.34.102

;; Query time: 2 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Thu Nov  7 20:54:11 2019
;; MSG SIZE  rcvd: 81

查看当前没有配置的域名,此时客户端发起请求,A服务器上没有,就会转发到服务器B IP地址为103机器上,此时B服务器如果有网络,就会在网上寻找答案

[root@centos6~]#dig www.wange.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.wange.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28947
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.wange.com.			IN	A

;; ANSWER SECTION:
www.wange.com.		7200	IN	A	93.90.145.101此时IP地址103在网上返回的答案

;; Query time: 2356 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Thu Nov  7 21:36:54 2019
;; MSG SIZE  rcvd: 47

第二种方式服务器转发方式:

first用法:当客户端去访问服务器A时,此时A不知道结果会转发给B,B不知道结果,此时A会自己去询问根去反馈结果:

(1)在服务器A上写配置文件/etc/named.conf,将端口转发给服务器B(103IP地址)

[root@ansible~]#vim /etc/named.conf
options {
//      listen-on port 53 { localhost; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
//      allow-query     { any; };
        allow-transfer  { 192.168.34.103; };
        forward first ;
        forwarders      {192.168.34.103;}; 

重新加载A服务器的DNS服务:

rndc reload

(2)将服务器B的网络断掉,此时B无法访问网络。  

(3)在客户端进行访问当前的一个未知的网址,A主机如果不知道,先会转发给B服务器,B服务器不知道结果,A服务器主动去网上寻找答案:

[root@centos6~]#dig www.wange.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.wange.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52394
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 10

;; QUESTION SECTION:
;www.wange.com.			IN	A

;; ANSWER SECTION:
www.wange.com.		7200	IN	A	93.90.145.101

;; AUTHORITY SECTION:
wange.com.		172755	IN	NS	ns01.crystone.se.
wange.com.		172755	IN	NS	ns05.crystone.se.
wange.com.		172755	IN	NS	ns03.crystone.se.
wange.com.		172755	IN	NS	ns04.crystone.se.
wange.com.		172755	IN	NS	ns02.crystone.se.

;; ADDITIONAL SECTION:
ns01.crystone.se.	884	IN	A	194.58.193.60
ns01.crystone.se.	884	IN	AAAA	2a01:3f1:460::53
ns02.crystone.se.	86382	IN	A	185.42.137.108
ns02.crystone.se.	884	IN	AAAA	2a01:3f0:400::60
ns03.crystone.se.	884	IN	A	194.58.193.124
ns03.crystone.se.	86382	IN	AAAA	2a01:3f1:460:1::53
ns04.crystone.se.	884	IN	A	185.42.137.126
ns04.crystone.se.	884	IN	AAAA	2a01:3f0:400::190
ns05.crystone.se.	884	IN	A	93.90.145.25
ns05.crystone.se.	884	IN	AAAA	2a06:1003:1:1::5d5a:9119

;; Query time: 2247 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Thu Nov  7 21:50:10 2019
;; MSG SIZE  rcvd: 373

智能DNS 

技术分享图片

 

 技术分享图片

我们来准备两台主机,A主机的有两个网卡,一个IP地址是192.168.34.101,第二个网卡地址是172.18.0.7:让其都能访问网络。 

B主机上也有两个网卡,将IP地址分别设置为192.168.34.105h和172.18.0.6

在A主机上制作三个区域库文件,分别为北京、上海、深圳,复制过程中,注意保留属性

[root@ansiblenamed]#vim baidu.com.zone.bj

$TTL 1D
@       IN SOA  dns1  admin.baidu.com. (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
        NS      dns2
shenzhen  NS    dns3
dns1    A   192.168.34.101
dns2    A   192.168.34.103
dns3    A   192.168.34.102

www    CNAME    webs
webs   A      6.6.6.6

 复制过程中注意保留文件原有属性:

[root@ansiblenamed]#cp -p  baidu.com.zone.bj baidu.com.zone.sh

 制作上海数据库文件:

[root@ansiblenamed]#vim baidu.com.zone.sh

$TTL 1D
@       IN SOA  dns1  admin.baidu.com. (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
        NS      dns2
shenzhen  NS    dns3
dns1    A   192.168.34.101
dns2    A   192.168.34.103
dns3    A   192.168.34.102

www    CNAME    webs
webs   A      7.7.7.7

制作深圳数据库文件:

[root@ansiblenamed]#cp -p  baidu.com.zone.sh baidu.com.zone.sz
[root@ansiblenamed]#vim baidu.com.zone.sz

$TTL 1D
@       IN SOA  dns1  admin.baidu.com. (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
        NS      dns2
shenzhen  NS    dns3
dns1    A   192.168.34.101
dns2    A   192.168.34.103
dns3    A   192.168.34.102

www    CNAME    webs
webs   A      8.8.8.8

定义ACL

[root@ansiblenamed]#vim /etc/named.conf
acl beijingnet {
        192.168.34.0/24;  北京访问网段
};
acl shanghainet {
        172.18.0.0/16;  上海访问网段
};
acl shenzhennet {
        any;   含义是剩余其他的网段都可以访问
};

启用view,关联ACL和zone:

方法一:直接调用配置文件/etc/named.rfc1912.zones,并将默认的zone配置文件写入此view配置内:  

[root@ansiblenamed]#vim /etc/named.conf
view view_beijing {
        math_clients {beijingnet;};
        include "/etc/named.rfc1912.zones";     

zone "." IN {
        type hint;
        file "named.ca";
};

技术分享图片

在配置文件中将之前的规划baidu.com.zone.bj配置文件写入:

vim /etc/named/rfc1912.zones
zone  "baidu.com" {
        type master;
        file "baidu.com.zone.bj";
};

方法二:将默认的/etc/named.conf下面的zone配置文件写入到/etc/named.rfc1912.zones配置文件中,起到包含作用:

将zone的配置文件包含在include  "/etc/named.rfc1912.zones"

技术分享图片

技术分享图片

 下来,我们定义三个/etc/named.rfc1912.zones配置文件:

(1)将第一个定义好的配置文件复制一份,用来定义beijing和shenzhen的配置文件,复制时,注意属性:

cp -p /etc/named.rfc1912.zones  /etc/named.rfc1912.zones.shanghai

cp -p /etc/named.rfc1912.zones  /etc/named.rfc1912.zones.shenzhen

然后修改shanghai的配置文件:

[root@ansiblenamed]#vim /etc/named.rfc1912.zones.shanghai 
zone  "baidu.com" {
        type master;
        file "baidu.com.zone.sh";
};

编写shenzhen的配置文件:

[root@ansiblenamed]#vim /etc/named.rfc1912.zones.shenzhen 
zone  "baidu.com" {
        type master;
        file "baidu.com.zone.sz";
};

(2)我们接着来修改/etc/named.conf主配置文件内容:

[root@ansiblenamed]#vim /etc/named.conf 
view view_beijing {
        match-clients {beijingnet;};
        include "/etc/named.rfc1912.zones";     
};

view view_shanghai {
        match-clients {shanghainet;};
        include "/etc/named.rfc1912.zones.shanghai";     
};

view view_shenzhen {
        match-clients {shenzhennet;};
        include "/etc/named.rfc1912.zones.shenzhen";     
};

(3)定义完之后就加载DNS服务器:

[root@ansiblenamed]#rndc reload
server reload successful

 (4)开始验证不同网址对应的不同区域:

192.168.34.0/24网段是北京区域

127.18.0.0/16是上海区域

其他地址是属于深圳区域

验证一:在主机B上dig,获取的的结果是6.6.6.6,返回的就是北京的IP地址信息

[root@centos6~]#dig www.baidu.com   #在B主机上dig,此时B主机上的IP地址默认是192.168.34.105,是北京的网址

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26005
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		86400	IN	CNAME	webs.baidu.com.
webs.baidu.com.		86400	IN	A	6.6.6.6

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	dns1.baidu.com.
baidu.com.		86400	IN	NS	dns2.baidu.com.

;; ADDITIONAL SECTION:
dns1.baidu.com.		86400	IN	A	192.168.34.101
dns2.baidu.com.		86400	IN	A	192.168.34.103

;; Query time: 1 msec
;; SERVER: 192.168.34.101#53(192.168.34.101)
;; WHEN: Thu Nov  7 23:33:05 2019
;; MSG SIZE  rcvd: 136

验证二:在主机B上dig www.baidu.com @172.18.0.7,输入对方的IP地址,会从本机去访问对方,从而获取当前的区域信息:

得知 7.7.7.7,返回上海区域信息

[root@centos6network-scripts]#dig www.baidu.com @172.18.0.7

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.el6 <<>> www.baidu.com @172.18.0.7
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31631
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		86400	IN	CNAME	webs.baidu.com.
webs.baidu.com.		86400	IN	A	7.7.7.7

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	dns1.baidu.com.
baidu.com.		86400	IN	NS	dns2.baidu.com.

;; ADDITIONAL SECTION:
dns1.baidu.com.		86400	IN	A	192.168.34.101
dns2.baidu.com.		86400	IN	A	192.168.34.103

;; Query time: 3 msec
;; SERVER: 172.18.0.7#53(172.18.0.7)
;; WHEN: Thu Nov  7 23:41:20 2019
;; MSG SIZE  rcvd: 136

 验证三:

 在配置相关数据的主机A上dig一个其他的IP地址,得到最终得到8.8.8.8的IP地址,返回的的是深圳的地址

[root@ansiblenetwork-scripts]#dig www.baidu.com @127.0.0.1

; <<>> DiG 9.9.4-RedHat-9.9.4-72.el7 <<>> www.baidu.com @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22706
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		86400	IN	CNAME	webs.baidu.com.
webs.baidu.com.		86400	IN	A	8.8.8.8

;; AUTHORITY SECTION:
baidu.com.		86400	IN	NS	dns2.baidu.com.
baidu.com.		86400	IN	NS	dns1.baidu.com.

;; ADDITIONAL SECTION:
dns1.baidu.com.		86400	IN	A	192.168.34.101
dns2.baidu.com.		86400	IN	A	192.168.34.103

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Nov 07 23:46:12 CST 2019
;; MSG SIZE  rcvd: 147

  

 

 

  

  

 

  

  

  

  

 

  

  

  





DNS服务和BIND

原文:https://www.cnblogs.com/struggle-1216/p/11807009.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!