通过Dig命令模仿迭代解析

2023年 7月 21日 发表评论
腾讯云正在大促:点击直达 阿里云超级红包:点击领取
免费/便宜/高性价比服务器汇总入口(已更新):点击这里了解

通过Dig命令模仿迭代解析

顶级域名服务器告诉我们,fasionchan.com 这个域应该去找 f1g1ns1.dnspod.net. 或 f1g1ns2.dnspod.net. 来解析。这二者就是 fasionchan.com 的 权威域名服务器。

DNS服务器的工作原理,它们可以分为很多个角色:

域名服务器  顶级域名服务器  权威域名服务器  递归解析器(DNS缓存服务器)  

于此同时,我们还了解了域名迭代解析的过程。本节我们趁热打铁,安排一次实验——按步骤迭代解析域名test.fasionchan.com ,以此加深理解。

迭代解析从 根域名服务器 开始,根服务器列表可以从 root-servers.org 上获取,也可以通过 dig 命令查询:

root@netbox [ ~ ]  ? dig . NS    ; > DiG 9.16.1-Ubuntu > @10.2.66.66 . NS  ; (1 server found)  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER#53(10.2.66.66)  ;; WHEN: Thu Apr 08 09:01:17 CST 2023  ;; MSG SIZE  rcvd: 364  

根域名服务器总共有 13 台,编号从 A 到 M 。我们可以从中选择一台,比如 A ,它的 IP 地址是 198.41.0.4 。

接下来,我们执行 dig 命令,向根域名服务器 A 发起域名解析请求:

root@netbox [ ~ ]  ? dig @198.41.0.4 test.fasionchan.com    ; > DiG 9.16.1-Ubuntu > @198.41.0.4 test.fasionchan.com  ; (1 server found)  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER#53(198.41.0.4)  ;; WHEN: Fri Apr 09 08:38:10 CST 2023  ;; MSG SIZE  rcvd: 843  

其中,@ 指定目标 DNS 服务器的地址。

从 dig 命令的输出可以看到,根域名服务器告诉我们 .com 域名应该去找 a.gtld-servers.net. 等服务器。这些服务器都是 .com 的 顶级域名服务器 ,根域名服务器把它们的地址一并告诉我们了。

我们可以从这些顶级域名服务器中选择一台,比如 a.gtld-servers.net. ,它的 IP 地址是 192.5.6.30 。然后,再次指定 dig 命令,向它发起域名解析请求:

root@netbox [ ~ ]  ? dig @192.5.6.30 test.fasionchan.com    ; > DiG 9.16.1-Ubuntu > @192.5.6.30 test.fasionchan.com  ; (1 server found)  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER#53(192.5.6.30)  ;; WHEN: Fri Apr 09 08:38:58 CST 2023  ;; MSG SIZE  rcvd: 101  

顶级域名服务器告诉我们,fasionchan.com 这个域应该去找 f1g1ns1.dnspod.net. 或 f1g1ns2.dnspod.net. 来解析。这二者就是 fasionchan.com 的 权威域名服务器 。

但这次 .com 域名没有告诉我们 f1g1ns1.dnspod.net. 或 f1g1ns2.dnspod.net. 的 IP 地址。因此,我们必须先自己动手,将它们的域名解析成 IP 地址。

我们可以直接执行 dig 命令,一键完成解析:

root@netbox [ ~ ]  ? dig f1g1ns1.dnspod.net.    ; > DiG 9.16.1-Ubuntu > f1g1ns1.dnspod.net.  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER#53(192.168.65.1)  ;; WHEN: Fri Apr 09 08:39:38 CST 2023  ;; MSG SIZE  rcvd: 116  

如果 dig 命令未指定 DNS 服务器,它默认会到本地的 递归解析器 ,也就是 DNS缓存服务器 上去查询。DNS缓存服务器会帮我们做迭代解析,再把结果告诉我们。

如果亲不厌其烦,可以自己进行迭代解析。具体步骤也是类似的,附在本文后半部分。

得到权威域名服务器的 IP 地址后,我们就可以向它发起解析请求:

root@netbox [ ~ ]  ? dig @58.247.212.36 test.fasionchan.com    ; > DiG 9.16.1-Ubuntu > @58.247.212.36 test.fasionchan.com  ; (1 server found)  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER#53(58.247.212.36)  ;; WHEN: Fri Apr 09 08:55:47 CST 2023  ;; MSG SIZE  rcvd: 128  

瞧,我们成功解析域名 test.fasionchan.com ,得到它对应的 IP 地址 10.0.0.1 !

迭代解析 f1g1ns1.dnspod.net. 如果不想通过递归解析器,可以自行执行迭代解析,查询 f1g1ns1.dnspod.net. 的 IP 地址。

首先,向 根域名服务器 发起解析请求:

root@netbox [ ~ ]  ? dig @198.41.0.4 f1g1ns1.dnspod.net.    ; > DiG 9.16.1-Ubuntu > @198.41.0.4 f1g1ns1.dnspod.net.  ; (1 server found)  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER#53(198.41.0.4)  ;; WHEN: Fri Apr 09 08:40:49 CST 2023  ;; MSG SIZE  rcvd: 840  

根域名服务器告诉我们,.net 应该去找 a.gtld-servers.net. 等服务器,服务器地址附在后面的附加节。

我们选择 a.gtld-servers.net. 这台 顶级域名服务器 ,它的地址是 192.5.6.30 。然后向它发起解析请求:

root@netbox [ ~ ]  ? dig @192.5.6.30 f1g1ns1.dnspod.net.    ; > DiG 9.16.1-Ubuntu > @192.5.6.30 f1g1ns1.dnspod.net.  ; (1 server found)  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER#53(192.5.6.30)  ;; WHEN: Fri Apr 09 08:41:27 CST 2023  ;; MSG SIZE  rcvd: 210  

顶级域名服务器告诉我们,dnspod.net. 这个域应该去找 v6ns3.dnsv2.net. 或者 v6ns4.dnsv2.com. 。这两者就是所谓的 权威域名服务器 。这次,顶级域名服务器已经在附加节中,附上了它们的 IP 地址。

我们从中挑选一个,比如 129.211.176.248 ,继续发起解析请求:

root@netbox [ ~ ]  ? dig @129.211.176.248 f1g1ns1.dnspod.net.    ; > DiG 9.16.1-Ubuntu > @129.211.176.248 f1g1ns1.dnspod.net.  ; (1 server found)  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER#53(129.211.176.248)  ;; WHEN: Fri Apr 09 08:42:07 CST 2023  ;; MSG SIZE  rcvd: 185  

最终,我们成功解析到 f1g1ns1.dnspod.net. 对应的 IP 地址,总共有 5 个。

本文来源:www.lxlinux.net/9238.html,若引用不当,请联系修改。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: