LabHub
学习 学习路径 课程

网络排障

用 dig 挖 DNS

在 LabHub 中继续学习

目标

用dig按记录类型查询,读取TTL和负缓存,getentdig亲自制造出答案分歧的点。

为什么重要

dig输出是statusflags必须从开始读。NXDOMAIN(没有名字本身)和NOERROR + ANSWER 0(虽然有名字,但只有那种类型)是完全不同的情况,应对方式也不同。aa如果没有标志,是来自缓存的答案,所以TTL会减少。还有dig是/etc/hosts因为没有看,所以关于同一个名字getent我们可以给出不同的答案——差异正是原因的位置。

阶段

  1. /root/dns创建目录,/etc/resolv.confnameserver只是以为是从开始/root/dns/nameserver.txt请保存为。
  2. example.com只有的A记录值/root/dns/a.txt请保存为。文件中必须至少有一行IPv4地址。
  3. google.comMXNSTXT分别/root/dns/mx.txt/root/dns/ns.txt/root/dns/txt.txt请保存为。所有三个文件都不可以为空。
  4. example.com只输出回答部分/root/dns/ttl1.txt保存为,等待5秒以上后用同样的方法/root/dns/ttl2.txt请制作。第二个TTL不能比第一个大。
  5. 8.8.8.8的逆向查询结果/root/dns/ptr.txt请保存为。
  6. labhub-does-not-exist-9137.example.com查询后输出全部内容/root/dns/nxdomain.txt请保存为。在文件中status: NXDOMAIN必须包含所有SOA记录。
  7. /etc/hosts10.77.0.1 www.example.com添加后,getent hosts www.example.com结果/root/dns/getent-www.txt罗,dig +short www.example.com结果/root/dns/dig-www.txt请保存。两个结果必须不同。
  8. /root/dns/report.txt请用以下5行组成。 NAMESERVERS=<1번 파일의 줄 수>/A_COUNT=<2번 파일의 줄 수>/PTR=<5번에서 얻은 이름, 끝의 점 제외>/HOSTS_WINS=<7번 getent 결과의 IP>/DNS_SAYS=<7번 dig 결과의 첫 번째 IP>

参考

读取解析器设置

/root/dns创建目录,/etc/resolv.confnameserver只是以为是从开始/root/dns/nameserver.txt请保存为。

只需要在resolv.conf中开始以nameserver开头的行。可以有多条。

正向查询

example.com只有的A记录值/root/dns/a.txt请保存为。文件中必须至少有一行IPv4地址。

如果只需要价格,就有短输出选项。A记录必须是IPv4地址格式。

按唱片类型查询

google.comMXNSTXT分别/root/dns/mx.txt/root/dns/ns.txt/root/dns/txt.txt请保存为。所有三个文件都不可以为空。

dig可以指定类型为-t,也可以在名称后面直接粘贴类型。MX值是优先级数字和主机名称的对。

观察TTL减少

example.com只输出回答部分/root/dns/ttl1.txt保存为,等待5秒以上后用同样的方法/root/dns/ttl2.txt请制作。第二个TTL不能比第一个大。

只输出answer部分的话,TTL会在第二列出现。请间隔一段时间重复两次同样的问题。

反向查询

8.8.8.8的逆向查询结果/root/dns/ptr.txt请保存为。

在dig中,输入IP后,有一个专门的选项可以找到PTR。结果是以点结尾的名字。

没有的名字和负现金

labhub-does-not-exist-9137.example.com查询后输出全部内容/root/dns/nxdomain.txt请保存为。在文件中status: NXDOMAIN必须包含所有SOA记录。

status在头行中,SOA在AUTHORITY部分,最后一个数字是MINIMUM。

getent和dig分叉的地点

/etc/hosts10.77.0.1 www.example.com添加后,getent hosts www.example.com结果/root/dns/getent-www.txt罗,dig +short www.example.com结果/root/dns/dig-www.txt请保存。两个结果必须不同。

在hosts中输入的IP和DNS提供的IP必须不同,这样才能有这个阶段的意义。请分别保存两个结果。

有一个陷阱。getent hosts <이름>首先用IPv6询问,如果没有答案,再用IPv4重新询问。但是,hosts中只能放一个IPv4,如果那个名字有AAAA记录,v6查询就会绕过hosts,直接去DNS,**IPv6地址先出来。**虽然hosts看起来被忽略了,但实际上不是——getent ahostsv4 <이름>只要问v4系列,hosts值就会直接出来。在这个阶段,请使用那个。

查询综合报告

/root/dns/report.txt请用以下5行组成。 NAMESERVERS=<1번 파일의 줄 수>/A_COUNT=<2번 파일의 줄 수>/PTR=<5번에서 얻은 이름, 끝의 점 제외>/HOSTS_WINS=<7번 getent 결과의 IP>/DNS_SAYS=<7번 dig 결과의 첫 번째 IP>

将前一步的结果用键=值收集就可以了。计数项目只要按行数计数即可。