一、DNS解析过程

对于客户端:先本地缓存——》hosts文件

1hosts文件中没有改域名相对应的ip地址映射,则查询本地的DNS解析器缓存,如果有,直接返回,完成域名解析;

2在浏览器中输入www.qq.com,操作系统会先检查本机的hosts文件是否有与该域名对应的ip地址,如有,就先调用这个ip地址映射,完成域名解析;

3、若hosts文件和本地DNS缓存都没有相对应的ip地址映射关系,首先会找TCP/IP参数设置中的首选DNS服务器,在此我们称其为本地DNS服务器,当服务器收到查询请求,若包含在本地配置区域资源中,则返回解析结果给客户,完成域名解析,此解析具有权威性;

4、如果要查询的域名不在本地配置区域资源中,但本服务器已经缓存立刻此网址的映射关系,则调用这个ip地址映射,完成域名解析,此解析不具有权威性;

5、若本地配置区域资源没有改网址的解析记录,且服务器本地缓存失效或无该网址的映射关系,【若有配置备用DNS,则重复3-5步骤】,则根据本地DNS服务器的设置(是否这只转发器)进行查询,若未用转发模式,本地DNS服务器则会将请求发至13台根DNS,根服务器收到请求后悔判断这个域名(.com)是谁来授权管理并会返回一个负责该顶级域名服务器的一IP。本地DNS手袋ip信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,就会找到一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,直至找到相对应的网址的主机ip地址为止(www.qq.com

6、如果使用的是转发模式,则此DNS服务器就会将请求发送至上一级DNS服务器,由上一级服务器进行解析,如果上一级服务器不能解析,则会寻找根域或者将请求再次转发给再上一级的DNS服务器,以此循环。不管是本地DNS服务器用转发还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机,然后在缓存在本地DNS服务器。

 

从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。


二、DNS资源记录

1SOA

Start Of Authority(起始授权机构),每一个区域配置文件有且只能有一个SOA,描述了该zone负责的name server versionnumber等,以及当slave server 要备份这个zone 时的一些参数。紧接在SOA后面指定了这个区域的授权主机和管理者的邮箱,这里分别是“school.edu.tw”和“root.school.edu.tw”,也就是school.edu.tw主机和root的邮箱。这里要注意的是我们以“root.school.edu.tw”代表“root@school.edu.tw

eg

 @    IN     SOA          school.edu.tw.root.school.edu.tw.  (
                                   1999051401      ; Serial
                                    3600            ; Refresh
                                   300             ; Retry
                                   3600000         ; Expire
                                    3600)          ; Minimum

 

SOA内容说明:

wKioL1Qicm3iQW8vAAQDg_L0yso972.jpg

2A

address,将DNS域名对应到IPv4ip地址

eg

server IN  A  140.123.102.10

 

3AAAA

DNS域名对应到IPv6ip地址

eg

 twnic.net.tw. 86400  IN  AAAA 3ffe: :bbb:93:5

 

4PTR

pointer(指针),定义某个ip对应的域名,即将IP地址转换成主机的完全限定域名(FQDN),使用在反向解析中

eg

20   IN  PTR mail.twnic.net.tw.

 

5CNAME

canonical name(规范域名),可为同意不主机设定多个别名,例如 mix.twnic.net.tw的别名可为www.twnic.net.twftp.twnic.net.tw,因此所设定的别名都会连至同一个服务器。

eg

www  IN  CNAME mix

 

6MX

mail exchanger,设定区域中担任邮件服务器的主机,所有要送往那台主机的mail都要经过mailexchanger转发。而数字则是改主机邮件传递时的有限次序,此值越低表示有越高的邮件处理优先权。

eg

 server  IN  MX  10  mail.twnic.net.tw

 

7TXT/HINFO

只是一些文字说明,可以用来说明主机/网络环境的设定

 

三、notify两种同步机制

1master slave使用 udp 53端口进行通讯,首先 master 向slave 的udp53发送一个NOTIFY请求包,slave接收后,向master的udp53发送一个NOTIFY响应包,然后 slave 连接到master 查询SOA信息,根据序列号判断是否请求进行IXFR传输。

 

2从服务器根据序列号同步主服务器数据库文件

 

四、DNS端口号及其协议

1TCP/UDP 53号端口

2、为什么DNS要使用两种协议

 

UDP报文最长为512字节,而TCP允许传输大于512字节的报文。当DNS查询超过512字节时,TCP会出现删除标志,此时会使用TCP进行传输。

 

1.1、区域传送时,使用TCP协议

当从DNS服务器需要同步主DNS服务器信息或者主DNS服务器发送同步信息给从DNS服务器时,会执行一次区域传送,进行数据同步,区域传送使用TCP协议而不是UDP协议,因为需要同步的数据远远大于一个请求和应答的数据量。

 

1.2、域名解析时使用UDP

客户端向DNS服务器请求解析时,一般返回的内容都不会超过512字节,用UDP传输即可。不用经过三次握手,这样DNS服务器的负载更低,响应更快,从理论上说,客户端请求域名解析时也可以设定为使用TCP,但一般不会这样做。

 

五、智能DNS

 

通过view语句可以完成DNS的智能解析功能,并且灵活控制哪些客户机能看到哪个view视图的访问控制列表。语法:  

    view view-name { 

        match-clients { address_match_list }; 

        match-destinations { address_match_list }; 

        match-recursive-only yes|no 

        view_option;... 

        zone_statement;... 

    };  

其实说白了,view视图是根据match_clients提供的查询报文的IP地址进行过滤,一般用于让一个站点的DNS数据分为内外不同的结果,下面  

我们会通过模拟外网和内网实现view,并让DNS提供智能解析。