曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4553|回复: 1
打印 上一主题 下一主题

DNS 查询过程

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2011-11-8 13:23:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DNS 的查询过程是指客户端通过 DNS 服务器将一个 IP 地址转换为一个 FQDN,将一个 FQDN 转换为一个 IP 地址,抑或查询一个区域的邮件服务器的过程。

按照查询方式来分,DNS 查询可分为下面两种:

1.递归查询( Recursive Query )
当 DNS 服务器接收到查询请求时,要么做出查询成功的响应,要么做出查询失败的响应。递归查询一般发生在 DNS 客户端与 DNS 服务器之间。DNS 递归查询一般发生在 DNS 客户端和 DNS 服务器之间。

2. 迭代查询 (Interative Query)
DNS 服务器根据自己的高速缓存或区域的数据,以最佳结果响应。如果 DNS 服务器无法解析,它可能返回一个指针。指针指向下级域名的 DNS 服务器,继续该过程,直到找到拥有所查询名字的 DNS 服务器,或直到出错、超时为止。迭代查询一般法发生在 DNS 服务器之间

还可以按照查询内容分类,也分为两种:

1. 正向查询:由域名查找 IP 地址。
2. 反向查询:由 IP 地址查找域名。

查询实例



上图演示查询 www.redhat.com 这个域名的过程:

1. 首先客户端将 www.redhat.com 的查询提交给本地 DNS 服务器 (递归查询)。

2. 本地 DNS 服务器检查区域数据库,假设此服务器没有 redhat.com 的授权,那么它就将查询传递到根服务器,请求解析主机名称。根服务器把 "com" DNS 服务器 IP 地址返回给本地 DNS 服务器(迭代查询)。
注意:DNS 服务器中可以保存一个区域的信息,这时这台 DNS 服务器成为这些区域的授权服务器,授权服务器将 DNS 客户端查询的记录提供给 DNS 客户端

3. 本地  DNS 服务器将请求发送给 "com" DNS 服务器,此服务器根据请求将 "redhat.com" DNS 服务器 IP 地址返回给本地 DNS 服务器(迭代查询)。

4. 本地 DNS 服务器向 "redhat.com" DNS 服务器发送请求,由于此服务器具有 www.redhat.com 记录,因此它将 www.redhat.com 的 IP 地址返回给本地 DNS 服务器。

5. 本地 DNS 服务器将 www.redhat.com 的 IP 地址发送给客户端。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
沙发
 楼主| 发表于 2011-11-8 14:32:11 | 只看该作者

几个查询 DNS 时的常用工具

下面是几个查询 DNS 相关信心的常用命令。

1. dig
查询一个域名的 A 记录:
# dig www.groad.net

; <<>> DiG 9.7.0-P1 <<>> www.groad.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14192
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.groad.net.            IN    A

;; ANSWER SECTION:
www.groad.net.        13507    IN    A    121.15.245.7

;; Query time: 6 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Nov  8 14:18:04 2011
;; MSG SIZE  rcvd: 47
查询该域名所使用的名字服务器:
# dig groad.net ns

; <<>> DiG 9.7.0-P1 <<>> groad.net ns
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47565
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 10

;; QUESTION SECTION:
;groad.net.            IN    NS

;; ANSWER SECTION:
groad.net.        14400    IN    NS    ns15.bigwww.com.
groad.net.        14400    IN    NS    ns13.bigwww.com.
groad.net.        14400    IN    NS    ns11.bigwww.com.
groad.net.        14400    IN    NS    ns14.bigwww.com.
groad.net.        14400    IN    NS    ns16.bigwww.com.
groad.net.        14400    IN    NS    ns12.bigwww.com.

;; ADDITIONAL SECTION:
ns13.bigwww.com.    3331    IN    A    121.11.253.194
ns11.bigwww.com.    1422    IN    A    221.10.252.206
ns11.bigwww.com.    1422    IN    A    222.208.183.174
ns11.bigwww.com.    1422    IN    A    121.11.253.194
ns14.bigwww.com.    1904    IN    A    221.10.252.206
ns16.bigwww.com.    2269    IN    A    222.208.183.174
ns12.bigwww.com.    684    IN    A    125.65.165.158
ns12.bigwww.com.    684    IN    A    125.64.24.43
ns12.bigwww.com.    684    IN    A    221.10.253.238
ns15.bigwww.com.    3134    IN    A    221.10.253.238

;; Query time: 51 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Nov  8 14:19:34 2011
;; MSG SIZE  rcvd: 311
查询域名的 MX 记录:
#dig sznslib.com.cn mx

; <<>> DiG 9.7.0-P1 <<>> sznslib.com.cn mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45327
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;sznslib.com.cn.            IN    MX

;; ANSWER SECTION:
sznslib.com.cn.        86400    IN    MX    10 mail.sznslib.com.cn.

;; Query time: 53 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Nov  8 14:21:38 2011
;; MSG SIZE  rcvd: 53

使用 trace 选项
使用 trace 选项可以很清楚的看到从根服务器开始的迭代查询过程:
[root@qunet ~]# dig +trace www.hqu.edu.cn

; <<>> DiG 9.7.0-P2-RedHat-9.7.0-5.P2.el6_0.1 <<>> +trace www.hqu.edu.cn
;; global options: +cmd
.                       16026   IN      NS      i.root-servers.net.
.                       16026   IN      NS      a.root-servers.net.
.                       16026   IN      NS      f.root-servers.net.
.                       16026   IN      NS      g.root-servers.net.
.                       16026   IN      NS      b.root-servers.net.
.                       16026   IN      NS      l.root-servers.net.
.                       16026   IN      NS      c.root-servers.net.
.                       16026   IN      NS      e.root-servers.net.
.                       16026   IN      NS      m.root-servers.net.
.                       16026   IN      NS      k.root-servers.net.
.                       16026   IN      NS      h.root-servers.net.
.                       16026   IN      NS      j.root-servers.net.
.                       16026   IN      NS      d.root-servers.net.
;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 95 ms

cn.                     172800  IN      NS      e.dns.cn.
cn.                     172800  IN      NS      d.dns.cn.
cn.                     172800  IN      NS      c.dns.cn.
cn.                     172800  IN      NS      ns.cernet.net.
cn.                     172800  IN      NS      b.dns.cn.
cn.                     172800  IN      NS      a.dns.cn.
;; Received 295 bytes from 192.112.36.4#53(g.root-servers.net) in 169 ms

edu.cn.                 172800  IN      NS      ns2.cernet.net.
edu.cn.                 172800  IN      NS      dns2.edu.cn.
edu.cn.                 172800  IN      NS      deneb.dfn.de.
edu.cn.                 172800  IN      NS      dns.edu.cn.
edu.cn.                 172800  IN      NS      ns2.cuhk.hk.
;; Received 180 bytes from 203.119.29.1#53(e.dns.cn) in 71 ms

hqu.edu.cn.             172800  IN      NS      HCH.hqu.edu.cn.
hqu.edu.cn.             172800  IN      NS      HQDX.hqu.edu.cn.
;; Received 101 bytes from 192.76.176.9#53(deneb.dfn.de) in 172 ms

www.hqu.edu.cn.         3600    IN      A       202.109.210.8
hqu.edu.cn.             3600    IN      NS      hqdx.hqu.edu.cn.
hqu.edu.cn.             3600    IN      NS      hch.hqu.edu.cn.
;; Received 117 bytes from 210.34.240.100#53(HCH.hqu.edu.cn) in 1213 ms


2. nslookup
该命令和 dig 的功能大致一样,它在 Windows 里会经常用到,在 Linux 里则比较少用。nslookup 命令在执行难时会进入交互式界面。对应着上面的 dig 要查询的内容,在 nslookup 命令的提示符下输入 set type=ns 或 set type=mx 分别查询名字服务器和 Mail 服务器信息。

3. host
host 是另一个常用的 DNS 查询工具。它一般跟着 “-t 查询类型” 参数进行相应信息查询。
# host www.groad.net
www.groad.net has address 121.15.245.7

# host -t ns groad.net
groad.net name server ns15.bigwww.com.
groad.net name server ns13.bigwww.com.
groad.net name server ns11.bigwww.com.
groad.net name server ns14.bigwww.com.
groad.net name server ns16.bigwww.com.
groad.net name server ns12.bigwww.com.

# host -t mx sznslib.com.cn
sznslib.com.cn mail is handled by 10 mail.sznslib.com.cn.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-4 20:25 , Processed in 0.070158 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表