贼又鸟巴木工 發表於 2020-12-27 00:00:00

域名解析类型及dig,nslookup进行Dns解析过程查看

<p>本文为博主原创,未经允许不得转载:</p>
<p class="md-end-block md-p md-focus"><span class="md-tab">   <span class="md-plain md-expand">通常我们在windows系统下查看域名是不是可以正常访问,是通过cmd命令打开dos窗口,使用ping 命令来查看域名是不是可以正常访问,使用 ping 命令正常访问时,若域名能正常访问,则会返回一段数据包的统计信息, 如果接收的数据包与发送的包数量完全相同,则表示域名正常。示例如下:</span></span></p>
<div class="cnblogs_code">
<pre>C:\Users\zenjian&gt;<span style="color: rgba(0, 0, 0, 1)">ping baidu.com

正在 Ping baidu.com [</span>220.181.38.148] 具有 32<span style="color: rgba(0, 0, 0, 1)"> 字节的数据
来自 </span>220.181.38.148 的回复: 字节=32 时间=23ms TTL=52<span style="color: rgba(0, 0, 0, 1)">
来自 </span>220.181.38.148 的回复: 字节=32 时间=24ms TTL=52<span style="color: rgba(0, 0, 0, 1)">
来自 </span>220.181.38.148 的回复: 字节=32 时间=24ms TTL=52<span style="color: rgba(0, 0, 0, 1)">
来自 </span>220.181.38.148 的回复: 字节=32 时间=27ms TTL=52

220.181.38.148<span style="color: rgba(0, 0, 0, 1)"> 的 Ping 统计信息:
    数据包: 已发送 </span>= 4,已接收 = 4,丢失 = 0 (0%<span style="color: rgba(0, 0, 0, 1)"> 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 </span>= 23ms,最长 = 27ms,平均 = 24ms</pre>
</div>
<p>&nbsp;</p>
<pre class="md-fences md-end-block ty-contain-cm modeLoaded"><span style="font-family: &quot;PingFang SC&quot;, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 14px">如果 ping 一个不存在的域名或非公网域名,则会 提示请求找不到主机,<br></span></pre>
<div class="cnblogs_code">
<pre>C:\Users\zenjian&gt;<span style="color: rgba(0, 0, 0, 1)">ping ts.baidu.com
Ping 请求找不到主机 ts.baidu.com。请检查该名称,然后重试。</span></pre>
</div>
<pre class="md-fences md-end-block ty-contain-cm modeLoaded"></pre>
<p class="md-end-block md-p"><span class="md-tab"> <span class="md-plain">除了使用 ping 命令来查看域名是否正常访问,或查看域名的访问ip时,还可以使用 nslookup 来查看。nslookup是一种网络管理命令行工具,可用于查询DNS域名和IP地址,在网络故障的时候用来诊断网络问题。其最简单的使用方法与 ping 命令方法相同,直接使用 nslookup 域名即可。示例如下:</span></span></p>
<div class="cnblogs_code">
<pre>C:\Users\zenjian&gt;<span style="color: rgba(0, 0, 0, 1)">nslookup baidu.com
服务器:</span>192.168.1.1<span style="color: rgba(0, 0, 0, 1)">
Address:</span>192.168.1.1<span style="color: rgba(0, 0, 0, 1)">

DNS request timed out.
    timeout was </span>2<span style="color: rgba(0, 0, 0, 1)"> seconds.
名称:    baidu.com
Addresses:</span>220.181.38.148
          39.156.69.79</pre>
</div>
<p>&nbsp;</p>
<p class="md-end-block md-p"><span class="md-plain">其中192.168.1.1是本机对应的 ip 段,这个命令在Linux环境上也可以使用,通过执行 nslookup 命令我们发现他会返回两个对应的 ip,这个ip就是baidu.com配置的访问的ip地址。通常一个域名会配置多个解析 ip,防止同时有大并发的请求到一台服务器,导致服务奔溃不可用,这种域名解析配置的方式称为 A 记录。</span></p>
<p class="md-end-block md-p"><span class="md-tab"> <span class="md-plain">域名解析的配置方式有很多种,主要由以下几种:</span></span></p>
<p class="md-end-block md-p"><span class="md-plain">(1)A记录,Address</span></p>
<p class="md-end-block md-p"><span class="md-tab"> <span class="md-plain">A记录用于描述域名到ip地址的映射关系。对同一个域名,可以有多条A记录。也就是说,一次DNS查找可以返回多个地址。</span></span></p>
<p class="md-end-block md-p"><span class="md-plain">(2)NS记录,Name Server</span></p>
<p class="md-end-block md-p"><span class="md-tab"> <span class="md-plain">NS记录是域名服务器记录,用于指定该域名由那个DNS服务器来进行解析。每个区域可以有多个域名服务器,因此可以有多条NS记录。</span></span></p>
<p class="md-end-block md-p"><span class="md-plain">(3)SOA记录,Start Of Authority</span></p>
<p class="md-end-block md-p"><span class="md-tab"> <span class="md-plain">SOA记录用于指定该区域的权威域名服务器。每个区域允许且只允许有一个SOA记录,它是资源记录的第一个条目。</span></span></p>
<p class="md-end-block md-p"><span class="md-plain">(4)CNAME记录</span></p>
<p class="md-end-block md-p"><span class="md-tab"> <span class="md-plain">CNAME记录用于描述别名与域名的对应关系,这种记录允许您将多个名字映射到同一台计算机。例如,有一台计算机名为host.mydomain.com(A记录)。它同时提供www和mail服务,为了便于用户访问服务,可以为该计算机设置两个别名(CNAME):www和mail。这两个别名的全称就是<span class="md-link">www.mydomain.com<span class="md-plain">和mail.mydomain.com。实际上它们都指向host.mydomain.com。当域名服务器查找一个域名时,找到一条CNAME记录,它会用记录中的规范名来替换这个域名别名,然后再查这个规范名的A记录,从而找到与规范名对应的ip地址,这样,就实现了对请求查找域名的ip地址响应。</span></span></span></span></p>
<p class="md-end-block md-p"><span class="md-plain">(5)MX</span></p>
<p class="md-end-block md-p"><span class="md-tab"> <span class="md-plain">如果需要设置邮箱,让邮箱能够收到邮件,需要添加MX记录。</span></span></p>
<p class="md-end-block md-p"><span class="md-plain">(6)SOA</span></p>
<p class="md-end-block md-p"><span class="md-tab"> <span class="md-plain">SOA这种记录是所有区域性文件中的强制性记录。它必须是一个文件中的第一个记录。</span></span></p>
<p class="md-end-block md-p"><span class="md-plain">(7)TXT</span></p>
<p class="md-end-block md-p"><span class="md-tab"> <span class="md-plain">可以写任何东西,长度限制为255。绝大多数的TXT记录是用来做SPF记录(反垃圾邮件)。</span></span></p>
<p class="md-end-block md-p"><span class="md-tab"> <span class="md-plain">通过ping 命令是无法解析域名的解析类型,只能ping域名是否正常访问,获取域名的对应ip。若需要解析域名的类型可以使用nslookup。</span></span></p>
<p class="md-end-block md-p"><span class="md-tab"> <span class="md-plain">其语法域名的某一解析类型如下:</span></span></p>
<div class="cnblogs_code">
<pre>--查询域名的mx/txt/<span style="color: rgba(0, 0, 0, 1)">ns解析记录
nslookup </span>-type=mx/txt/<span style="color: rgba(0, 0, 0, 1)">ns 52robot.org

</span>--还可以用 nslookup –qt=<span style="color: rgba(0, 0, 0, 1)">类型 目标域名。类型cname,txt,ns,mx
nslookup </span>-qt=cname/mx/txt/<span style="color: rgba(0, 0, 0, 1)">ns 52robot.org

</span>--<span style="color: rgba(0, 0, 0, 1)">查询域名的所有类型解析记录
nslookup </span>-type=<span style="color: rgba(0, 0, 0, 1)">any 52robot.org

</span>--<span style="color: rgba(0, 0, 0, 1)">从指定DNS服务器进行查询
nslookup 52robot.org </span>223.5.5.5</pre>
</div>
<pre class="md-fences md-end-block ty-contain-cm modeLoaded"><span>&nbsp;</span></pre>
<p class="md-end-block md-p"><span class="md-plain">使用nslookup查询baidu.com的所有解析类型记录:</span></p>
<div class="cnblogs_code">
<pre>C:\Users\zenjian&gt;nslookup -type=<span style="color: rgba(0, 0, 0, 1)">any baidu.com
服务器:</span>192.168.1.1<span style="color: rgba(0, 0, 0, 1)">
Address:</span>192.168.1.1<span style="color: rgba(0, 0, 0, 1)">

非权威应答:
baidu.com       MX preference </span>= 10, mail exchanger =<span style="color: rgba(0, 0, 0, 1)"> mx.maillb.baidu.com
baidu.com       MX preference </span>= 15, mail exchanger =<span style="color: rgba(0, 0, 0, 1)"> mx.n.shifen.com
baidu.com       MX preference </span>= 20, mail exchanger =<span style="color: rgba(0, 0, 0, 1)"> mx1.baidu.com
baidu.com       MX preference </span>= 20, mail exchanger =<span style="color: rgba(0, 0, 0, 1)"> jpmx.baidu.com
baidu.com       MX preference </span>= 20, mail exchanger =<span style="color: rgba(0, 0, 0, 1)"> mx50.baidu.com
baidu.com       nameserver </span>=<span style="color: rgba(0, 0, 0, 1)"> ns2.baidu.com
baidu.com       nameserver </span>=<span style="color: rgba(0, 0, 0, 1)"> ns3.baidu.com
baidu.com       nameserver </span>=<span style="color: rgba(0, 0, 0, 1)"> ns7.baidu.com
baidu.com       nameserver </span>=<span style="color: rgba(0, 0, 0, 1)"> dns.baidu.com
baidu.com       nameserver </span>= ns4.baidu.com</pre>
</div>
<pre class="md-fences md-end-block ty-contain-cm modeLoaded"><span>&nbsp;</span></pre>
<p class="md-end-block md-p"><span class="md-tab"> <span class="md-plain">通过这个解析记录可以看到直接访问baidu.com可能会访问到以上mx,ns等的dns服务器上。使用nslookup命令已经可以帮我们查看域名的解析配置,在实际的应用配置中,现在更多的用的是 dig 命令进行查看配置解析,因为使用dig命令可以帮我们看到域名解析的服务链路,解析的线路更清楚,而且可以查看请求的状态和时长。</span></span></p>
<p class="md-end-block md-p"><span class="md-tab"> <span class="md-plain">dig 也是查看域名dns解析的工具,使用dig命令需要安装dig工具。在Linux环境只需要执行以下命令即可:</span></span></p>
<div class="cnblogs_code">
<pre>yum install bind-utils</pre>
</div>
<p class="md-end-block md-p"><span class="md-plain">dig命令的使用语法如下:</span></p>
<div class="cnblogs_code">
<pre>dig(选项)(参数)</pre>
</div>
<p class="md-end-block md-p"><span class="md-plain">其选项有以下:</span></p>
<div class="cnblogs_code">
<pre>@&lt;服务器地址&gt;<span style="color: rgba(0, 0, 0, 1)">:指定进行域名解析的域名服务器;
</span>-b&lt;ip地址&gt;<span style="color: rgba(0, 0, 0, 1)">:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求;
</span>-f&lt;文件名称&gt;<span style="color: rgba(0, 0, 0, 1)">:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息;
</span>-<span style="color: rgba(0, 0, 0, 1)">P:指定域名服务器所使用端口号;
</span>-t&lt;类型&gt;<span style="color: rgba(0, 0, 0, 1)">:指定要查询的DNS数据类型;
</span>-x&lt;IP地址&gt;<span style="color: rgba(0, 0, 0, 1)">:执行逆向域名查询;
</span>-4<span style="color: rgba(0, 0, 0, 1)">:使用IPv4;
</span>-6<span style="color: rgba(0, 0, 0, 1)">:使用IPv6;
</span>-h:显示指令帮助信息。</pre>
</div>
<pre class="md-fences md-end-block ty-contain-cm modeLoaded"><span>&nbsp;</span></pre>
<p class="md-end-block md-p"><span class="md-plain">参数则有以下配置:</span></p>
<pre class="md-fences md-end-block ty-contain-cm modeLoaded"><span>主机:指定要查询域名主机;<br><span>查询类型:指定DNS查询的类型;<br><span>查询类:指定查询DNS的class;<br><span>查询选项:指定查询选项。</span></span></span></span></pre>
<p class="md-end-block md-p"><span class="md-plain">这里列举一下dig常用的请求命令:</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">查询域名
dig baidu.com

查询mx记录
dig </span>-<span style="color: rgba(0, 0, 0, 1)">t mx baidu.com

查询所有记录
dig </span>-<span style="color: rgba(0, 0, 0, 1)">t any baidu.com

追踪所有解析,可以看到从客户端指定的dns服务器一步一步将dns请求转发到域名托管的dns服务器
DNS的解析是递规解析,用trace参数,会显示完整的,无缓存,递规的查询,显示的是完整的trace记录。
dig </span>+<span style="color: rgba(0, 0, 0, 1)">trace baidu.com

从指定DNS服务器进行查询
dig @</span>8.8.8.8 baidu.com</pre>
</div>
<pre class="md-fences md-end-block ty-contain-cm modeLoaded"><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>&nbsp;</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
<p class="md-end-block md-p"><span class="md-plain">另外常用的dns解析服务ip有两个,一个是8.8.8.8,另一个是114.114.114.114。从8.8.8.8 dns服务器解析追踪baidu.com的请求如下:</span></p>
<div class="cnblogs_code">
<pre># dig @8.8.8.8<span style="color: rgba(0, 0, 0, 1)"> baidu.com

; </span>&lt;&lt;&gt;&gt; DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 &lt;&lt;&gt;&gt; @8.8.8.8<span style="color: rgba(0, 0, 0, 1)"> baidu.com
; (</span>1<span style="color: rgba(0, 0, 0, 1)"> server found)
;; global options: </span>+<span style="color: rgba(0, 0, 0, 1)">cmd
;; Got answer:
;; </span>-&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 43743<span style="color: rgba(0, 0, 0, 1)">
;; flags: qr rd ra; QUERY: </span>1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1<span style="color: rgba(0, 0, 0, 1)">

;; OPT PSEUDOSECTION:
; EDNS: version: </span>0, flags:; udp: 512<span style="color: rgba(0, 0, 0, 1)">
;; QUESTION SECTION:
;baidu.com.                     IN      A

;; ANSWER SECTION:
baidu.com.            </span>461   IN      A       39.156.69.79<span style="color: rgba(0, 0, 0, 1)">
baidu.com.            </span>461   IN      A       220.181.38.148<span style="color: rgba(0, 0, 0, 1)">

;; Query time: </span>51<span style="color: rgba(0, 0, 0, 1)"> msec
;; SERVER: </span>8.8.8.8#53(8.8.8.8<span style="color: rgba(0, 0, 0, 1)">)
;; WHEN: Sun Oct </span>25 14:35:09 CST 2020<span style="color: rgba(0, 0, 0, 1)">
;; MSG SIZErcvd: </span>70</pre>
</div>
<p class="md-end-block md-p"><span class="md-tab"> <span class="md-plain md-expand">通过了解域名的解析类型,以及如何查看域名的解析类型记录,希望对域名能有更进一步的了解。并列举了nslookup和dig命令,在实际的应用时,可以根据不同的场景,正确快速的使用命令工具,帮助我们提供工作效率。</span></span></p><br><br>
来源:https://www.cnblogs.com/zjdxr-up/p/14195053.html
頁: [1]
查看完整版本: 域名解析类型及dig,nslookup进行Dns解析过程查看