DNS生产系统架构

时间:2023-03-09 08:08:26
DNS生产系统架构

主机名控制者: DNS 服务器地址:http://vbird.dic.ksu.edu.tw/linux_server/0350dns_1.php

安装博客:http://www.linuxidc.com/Linux/2013-06/86060.htm

整个分层查询的流程就是这样,总是得要先经过 . 来向下一层进行查询,最终总是能得到答案的。这样分层的好处是:

主机名修改的仅需自己的 DNS 更动即可,不需通知其他人:
当一个『合法』的 DNS 服务器里面的设定修改了之后,来自世界各地任何一个 DNS 的要求,都会正确无误的显示正确的主机名对应
IP 的信息,因为他们会一层一层的寻找下来。所以,要找你的主机名对应的 IP 就一定得要透过你的上层 DNS
服务器的纪录才行!因此,只要你的主机名字是经过上层『合法的
DNS』服务器设定的,那么就可以在 Internet 上面被查询到啦!呵呵!很简单维护吧,机动性也很高。

DNS 服务器对主机名解析结果的快取时间:
由于每次查询到的结果都会储存在 DNS 服务器的高速缓存中,以方便若下次有相同需求的解析时,能够快速的响应。
不过,查询结果已经被快取了,但是原始 DNS 的主机名与 IP 对应却修改了,此时若有人再次查询,
系统可能会回报旧的 IP 喔!所以,在快取内的答案是有时间性的!通常是数十分钟到三天之内。
这也是为什么我们常说当你修改了一个 domain name 之后,可能要 2 ~ 3 天后才能全面的启用的缘故啦!

可持续向下授权 (子领域名授权):
每一部可以记录主机名与 IP 对应的 DNS 服务器都可以随意更动他自己的数据库对应,
因此主机名与域名在各个主机底下都不相同。举例来说, idv.tw 是仅有*才有这个 idv 的网域~
因为这个 idv 是由 .tw 所管理的,所以只要* .tw 维护小组同意,就能够建立该网域喔!

例题:

透过 dig 实作出本小节谈到的 . --> .tw --> .edu.tw --> .ksu.edu.tw --> www.ksu.edu.tw 的查询流程,并分析每个查询阶段的 DNS 服务器有几部?

答:

事实上,我们可以透过第四章约略谈过的 dig 这个指令来实作出喔!使用追踪功能 (+trace) 就能够达到这个目的了。使用方式如下:

[root@www ~]# dig +trace www.ksu.edu.tw
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>>+trace www.ksu.edu.tw
;; global options: printcmd
. 486278 IN NS a.root-servers.net.
. 486278 IN NS b.root-servers.net.
....(底下省略)....
# 上面的部分在追踪 . 的服务器,可从 a ~ m.root-servers.net.
;; Received 500 bytes from 168.95.1.1#53(168.95.1.1) in 22 ms

tw. 172800 IN NS ns.twnic.net.
tw. 172800 IN NS a.dns.tw.
tw. 172800 IN NS b.dns.tw.
....(底下省略)....
# 上面的部分在追踪 .tw. 的服务器,可从 a ~ h.dns.tw. 包括 ns.twnic.net.
;; Received 474 bytes from 192.33.4.12#53(c.root-servers.net) in 168 ms

edu.tw. 86400 IN NS a.twnic.net.tw.
edu.tw. 86400 IN NS b.twnic.net.tw.
# 追踪 .edu.tw. 的则有 7 部服务器
;; Received 395 bytes from 192.83.166.11#53(ns.twnic.net) in 22 ms

ksu.edu.tw. 86400 IN NS dns2.ksu.edu.tw.
ksu.edu.tw. 86400 IN NS dns3.twaren.net.
ksu.edu.tw. 86400 IN NS dns1.ksu.edu.tw.
;; Received 131 bytes from 192.83.166.9#53(a.twnic.net.tw) in 22 ms

www.ksu.edu.tw. 3600 IN A 120.114.100.101
ksu.edu.tw. 3600 IN NS dns2.ksu.edu.tw.
ksu.edu.tw. 3600 IN NS dns1.ksu.edu.tw.
ksu.edu.tw. 3600 IN NS dns3.twaren.net.
;; Received 147 bytes from 120.114.150.1#53(dns2.ksu.edu.tw) in 14 ms

最终的结果有找到 A (Address) 是 120.114.100.101,不过这个例题的重点是,要让大家瞧瞧整个 DNS 的搜寻过程! 在 dig 加上 +trace 的选项后,就能够达到这个目的。至于其他的都是服务器 (NS) 的设定值与追踪过程喔! 有没有很清楚啊?^_^。至于 A 与 NS 等相关的数据,我们在后续的 DNS 数据库介绍中,再分别介绍啰。

SOA:就是开始验证 (Start of Authority) 的缩写,相关资料本章后续小节说明;

NS:就是名称服务器 (NameServer) 的缩写,后面记录的数据是 DNS 服务器的意思;

A:就是地址 (Address) 的缩写,后面记录的是 IP 的对应 (最重要);


  • Master / Slave 数据的同步化过程

那么 Master/Slave 的数据更新到底是如何动作的呢?请注意,Slave 是需要更新来自 Master 的数据啊!所以当然 Slave 在设定之初就需要存在 Master 才行喔!基本上,不论 Master 还是 Slave 的数据库,都会有一个代表该数据库新旧的『序号』,这个序号数值的大小,是会影响是否要更新的动作唷! 至于更新的方式主要有两种:

  • Master 主动告知:例如在 Master 在修改了数据库内容,并且加大数据库序号后, 重新启动 DNS 服务,那 master 会主动告知 slave 来更新数据库,此时就能够达成数据同步;
  • 由 Slave 主动提出要求:基本上, Slave 会定时的向 Master 察看数据库的序号,
    当发现 Master 数据库的序号比 Slave 自己的序号还要大 (代表比较新),那么 Slave 就会开始更新。如果序号不变,
    那么就判断数据库没有更动,因此不会进行同步更新。

由上面的说明来看,其实设计数据库的序号最重要的目的就是让 master/slave 数据的同步化。那我们也知道 slave
会向 master 提出数据库更新的需求,问题是,多久提出一次更新,如果该次更新时由于网络问题,所以没有查询到
master 的序号 (亦即更新失败),那隔多久会重新更新一次?这个与 SOA 的标志有关,后续谈到正、反解数据库后,
再来详细说明吧!

如果你想要架设 Master/Slave 的 DNS 架构时,两部主机 (Master/Slave)
都需要你能够掌控才行!网络上很多的文件在这个地方都有点『闪失』,请特别的留意啊!因为鸟哥的 DNS
服务器常常会听到某些其他 DNS 的数据库同步化需求,真觉得烦吶!

最近配置bind时,修改/etc/resolv.conf后,dns解析是服务器ip,但下次启动电脑时dns的ip变成外网dns.觉得奇怪上网搜索资料发现原因:

          CentOS 5.4以上版本(我用的是centos 6.2)下面直接修改/etc/resolv.conf不行。必须要在/etc /sysconfig/network-scripts/ifcfg-eth0里面最后加上dns的设置。要不然,重启后,肯定使用eth0设置中没有设 dns的相关信息,使/etc/resolv.conf恢复到原来的状态。

  打开/etc/sysconfig/network-scripts/ifcfg-eth0,为了保险起见,可以同样修改eth1的设置

  DEVICE=eth0
  BOOTPROTO=none
  HWADDR=00:xx:19:xx:xx:xx
  ONBOOT=yes
  TYPE=Ethernet
  USERCTL=no
  IPV6INIT=no
  PEERDNS=yes
  NETMASK=255.255.255.0
  IPADDR=xxx.xxx.xxx.xxx   //你的ip地址
  GATEWAY=xxx.xxx.xxx.xxx   //网关
  DNS1=202.96.134.133   // dns我设的本机ip192.168.128.138  

DNS2=202.96.128.166   

 
这样设置后,/etc/resolv.conf里面根本就不需要设置。service network
restart 后,可以发现/etc/resolv.conf里面就有两个dns的解析ip了。配置好以后重启网络,cat
/etc/resolv.conf,可以看到如下参数:

   # Generated by NetworkManager
   nameserver 202.96.134.133
   nameserver 2202.96.128.166 
   search localdomain

  DNS解析设置成功。
  
在此要强调一点的是,直接修改/etc/resolv.conf这个文件是没用的,网络服务重启以后会根据/etc/sysconfig
/network-scripts/ifcfg-eth0来重载配置,如果ifcfg-eth0没有配置DNS,那么resolv.conf会被冲掉,重
新变成空值。

named-checkzone iminer.com.zone  /var/named/iminer.com.internal.zone2 检测zone是否正常