您的位置:首页 > 其它

深入浅出DNS系列(五)-查询过程详解

2017-03-12 23:05 330 查看
申明:文档中使用的james.cn、kobe.cn域名,只在内部测试环境中使用,如有侵权,请联系,将在第一时间更改

参考文档:《DNS与BIND》、《RFC1034》、《RFC1035》

本实例的操作系统为centos 5.5 64bit

安装的前置条件不在这里叙述

文档中的客户端与服务端是linux系统

1 实践中最佳DNS结构

1.1 结构图



1.2 抓包分析



可以看出,查询过程与结构图一致

1.2.1 抓包分析图中根域服务器与 cn域服务器的响应结果图示





1.3 补充说明

DNS体系是C/S架构的系统,权威DNS服务器为Server角色,解析器为Client角色,localdns为代理角色

在实践中,基本上采用结构图中的结构,在操作系统中的解析器作为存根解析器存在,其向localdns发起递归查询,不会发起非递归查询,也不会根据NS、CNAME等指引信息发起进一步查询(至少到目前为止,我没有发现操作系统可以配置发起非递归查询,nslookup、dig等诊断工具可以,但其不属于操作系统解析器的一部分)

实践中的这种最佳结构,其优点是降低了操作系统的解析器的复杂度,充分使用localdns的缓存功能,其缺点是localdns代表客户机,对于授权服务器来讲不知道真实客户机的IP地址,只知道localdns的IP地址;这也导致在大型互联网应用、CDN网络中,在使用DNS进行全局调度时会发生定位不准确的情况。

操作系统的存根解析器不是完整的解析器,所以你不要期待通过响应NS、CNAME记录,指引其发起进一步的查询,此细节常常被忽略,在这里着重提示。

2 没有缓存的A记录查询过程

如“结构图”所示,localdns没有apche1.james.cn的A记录的缓存,也没有相关指引性记录缓存(NS记录/CNAME记录)

其查询过程与“结构图”一致。

3 有缓存的A记录查询过程

试验步骤:

(1) 使用dig @192.168.198.138 apache1.james.cn. a保证localdns有apache1.james.cn的A记录缓存

(2) dig @192.168.198.138 apache1.james.cn. a

3.1 查询过程



3.2 抓包截图



4 没有A记录缓存,有对应域NS记录缓存的A记录查询过程

试验步骤:

(1) 使用dig @192.168.198.138 james.cn. ns保证localdns有james.cn的ns记录缓存



(2) dig @192.168.198.138 apache.james.cn. a

4.1 查询过程



5 查询A记录,对应域名是CNAME的查询过程

5.1 james.cn域中的CNAME记录

www.apache.james.cn. IN CNAME redis.kobe.cn.

mail.apache.james.cn. IN CNAME redis.kobe.cn.

ftp.apache.james.cn. IN CNAME redis.kobe.cn.

5.2 kobe.cn域中的记录

redis.kobe.cn. IN A 192.168.198.194

5.3 试验步骤

查询dig @192.168.198.138 ftp.apache.james.cn . a

为了直观反应CNAME的查询过程,先在localdns中缓存james.cn和kobe.cn域的ns记录,步骤如下:

(1) dig @192.168.198.138 james.cn. ns

(2) dig @192.168.198.138 kobe.cn. ns

(3) dig @192.168.198.138 ftp.apache.james.cn . a

5.4 查询过程



5.5 抓包截图



6 查询A记录,对应域名是CNAME,且CNAME记录有缓存的查询过程

6.1 试验步骤

查询dig @192.168.198.138 ftp.apache.james.cn . a

为了直观反应CNAME的查询过程,先在localdns中缓存james.cn和kobe.cn域的ns记录,步骤如下:

(1) dig @192.168.198.138 james.cn. ns

(2) dig @192.168.198.138 kobe.cn. ns

(3) dig @192.168.198.138 ftp.apache.james.cn. cname

(4) dig @192.168.198.138 ftp.apache.james.cn. A

6.2 查询过程



6.3 抓包截图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bind cdn dns dnsmasq powerdns