Author: Hagen.GoO 转载请联系作者
MSN_contact: wantm009@hotmail.com
Keyword: BIND、PTR、反向解析、
Quote:
很多朋友还是问IP反向解析到底是谁来做的?哪里去注册申请等?本人也看了很多网上的资料,感觉有些表述不太好理解,现结合自己的了解,从 DNS Zone 文件入手,简单的叙述一下:
1. 反向解析在 DNS 记录中叫 PTR。一般的写法是先把目标IP地址倒写,并加上 .in-addr.arpa. 的特殊后缀。
比如 202.250.1.4 要写成 4.1.250.202,再加上那个特殊后缀,即常见写法是:
4.1.250.202.in-addr.arpa. PTR xxx.domain.com.
2. 在 root.zone 文件中不仅记录了GTLD(比如 .com .net)和 ccTLD(比如 .jp .tw)等域名的NS和NS的A记录,同时也包含了 .ARPA 等特殊域名的NS资源,下面是我从 root.zone 中截取的一段记录,以助理解。
ARPA. NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. A 198.41.0.4
……
COM. NS A.GTLD-SERVERS.NET.
A.GTLD-SERVERS.NET. A 192.5.6.30
……
3. 在 arpa.zone 文件中,同样记录了一些特殊的二级后缀的域名,其中 4.1.250.202.in-addr.arpa. 相关的是:
IN-ADDR.ARPA. NS A.ROOT-SERVERS.NET.
……
4. 同理在 inaddr.zone 中包含 4.1.250.202.in-addr.arpa. 相关的记录是:
202.in-addr.arpa. NS NS1.APNIC.NET.
……
5. 在 APNIC 的 202.in-addr.arpa.zone 中包含了:
250.202.in-addr.arpa. IN NS a.dns.jp.
……
6. 在 JPNIC 的 250.202.in-addr.arpa.zone 中记录了:
1.250.202.in-addr.arpa. IN NS ktns1.ktokai-u.ac.jp.
……
7. 在 ktns1.ktokai-u.ac.jp 1.250.202.in-addr.arpa.zone 上就配置了我们所要求的记录:
4.1.250.202.in-addr.arpa. PTR proxy.ktokai-u.ac.jp.
所以:一个典型的 DNS PTR 查询过程是:
1 “递归DNS” 发送 4.1.250.202.in-addr.arpa 的 PTR 查询请求到 198.41.0.4 (a.root-servers.net.)
2 198.41.0.4 (a.root-servers.net.) 返回无目标记录,由于 root.zone、arpa.zone、inaddr.zone 同在 ROOT Server 中,所以他直接返回 202.in-addr-arpa.的 NS 是 NS1.APNIC.NET.
3 由于NS1.APNIC.NET. 在这个递归中是 NO-GLUE 的NS,所以不能直接得到其 IP 地址( A 记录),因此“递归DNS” 会重开一个查询,从 A.GTLD-SERVERS.net. 得到 NS1.APNIC.NET 的 A 记录是 202.12.29.25 。
4 “递归DNS” 发送 4.1.250.202.in-addr.arpa 的 PTR 查询到 202.12.29.25 (NS1.APNIC.NET.)
5 202.12.29.25 (NS1.APNIC.NET.) 返回无目标记录,但他知道 250.202.in-addr.arpa. 的 NS 是 a.dns.jp.
6 同理3,“递归DNS” 会重开一个查询,从 a.root-servers.net. 得到 a.dns.jp. 的 A 记录 203.119.1.1
7 “递归DNS” 发送 4.1.250.202.in-addr.arpa 的 PTR 查询到 203.119.1.1 (a.dns.jp.)
8 203.119.1.1 (a.dns.jp.) 返回无目标记录,但他知道 1.250.202.in-addr.arpa. 的 NS 是 ktns1.ktokai-u.ac.jp.
9 同理3,“递归DNS” 会重开一个查询,从 a.dns.jp. 得到 ktns1.ktokai-u.ac.jp. 的 A 记录 202.250.0.10
10 “递归DNS” 发送 4.1.250.202.in-addr.arpa 的 PTR 查询到 202.250.0.10 (ktns1.ktokai-u.ac.jp.)
11 202.250.0.10 (ktns1.ktokai-u.ac.jp.) 返回 4.1.250.202.in-addr.arpa. PTR proxy.ktokai-u.ac.jp.
12 “递归DNS” 把得到的这个结果发回给查询客户,本次查询结束。
注:
A 为了行文方便,有多个 NS (Name Server) 的时候,只写出了一个。
B 实例中提到的“递归DNS”,一般指的就是 ISP 的 DNS 转发服务器。
C 在 DNS 配置文件中所有的域名都是 . 结尾的,但在平常在应用中域名末尾是省略这个点号的,所以叙文的时候,可能有疏漏。
行文仓促,难免错误,请留言或者EMail赐教。