挖是询问DNS域名服务器的强大和灵活的工具。它执行DNS查找,并显示从参与与有关搜索的细节沿的过程,名称服务器返回的答案。系统和DNS管理员经常使用挖要帮助解决DNS问题。在这篇文章中,我们将深入了解它是如何工作,看看它可以告诉我们。
首先,在头脑中对DNS或域名系统的工作方式有一个良好的印象是很有帮助的。它是全球互联网的一个关键部分,因为它提供了一种查找的方式,从而与世界各地的服务器连接。你可以把它想象成互联网的地址簿,任何被正确连接到互联网的系统应该能够使用它来查找任何正确注册的服务器的IP地址。
入门挖
的挖默认情况下,工具通常安装在Linux系统上。这是a的一个例子挖带一点注释的命令:
$ dig m.banksfrench.com;< < > >挖9.16.1ubuntu的< < > > m.banksfrench.com<==您正在使用的dig版本;;全局选项:+cmd;;答案:;;->>头<<-操作码:查询,状态:无错误,id: 6034;;旗帜:qr rd ra;查询:1,回答:2,权限:0,附加:1;;选择假剖面:;版本:0,标志:;udp: 65494;;问题部分:<==您的查询的详细信息;m.banksfrench.com。在;;回答部分:< = =结果
m.banksfrench.com。3568在CNAME idg.map.fastly.net。idg.map.fastly.net。30 IN A 151.101.250.165;;查询时间:36秒< = =查询时间;;服务器:127.0.0.53 # 53 (127.0.0.53)<==本地缓存解析器;;WHEN:周五7月24日十九时11分42秒EDT 2020<==日期和的查询时间;;味精大小rcvd: 97< = =返回的字节
如果你得到这样的反应,是好消息吗?简短的回答是“是”。你有及时的答复。状态字段(状态:NOERROR)显示没有问题。你正在连接的是能够提供所需的信息和获取,告诉你有关你在查询系统中的一些重要细节的答复名称服务器。总之,您确认您的系统和域名系统沿就好获得。
其他可能的状态指标包括:
SERVFAIL-被查询的名称存在,但是没有可用的数据或可用的数据无效。
NXDOMAIN-这个名字不存在。
REFUSED- 区域不必在被请求当局存在和基础设施不成立,提供响应时是这种情况。
下面是你会看到什么,如果你正在寻找了一个不存在的域的例子:
$挖cannotbe.org;<< >>挖9.16.1 Ubuntu的<< >> cannotbe.org ;;全局选项:+cmd;;答案:;;- >> << HEADER - 操作码:查询,状态:NXDOMAIN, id: 35348;;旗帜:qr rd ra;查询:1,答:0,权限:0,附加:1
一般来说,挖提供比平虽然平如果域不退出,将以“名称或服务未知”响应。当你询问一个合法的系统时,你可以了解域名系统对系统的了解,这些记录是如何配置的,以及检索这些数据需要多长时间。
事实上,有时挖什么时候可以用信息答复平在所有无法回应,当你试图敲定连接问题这方面的信息可以是非常有益的。
DNS记录类型和标志
有一件事我们可以在上面的第一个查询看到的是两者的存在CNAME和一个记录。的CNAME(规范名称)是这样的一个指域名到另一个的别名。大多数系统,你挖会不会有CNAME记录,但只有一个一个记录。如果运行“dig localhost”命令,您将看到一个录制仅仅指的是127.0.0.1 - “回路”的地址,每一个系统的用途。一个一个记录将名称映射到IP地址。
DNS记录类型包括:
- A或AAAA - IPv4和IPv6地址
- CNAME - 别名
- MX - 邮件交换器
- NS - 域名服务器
- PTR——在提供IP地址时允许您查找系统名称的反向条目
- SOA - 启动规范记录
- TXT - 一些相关的文字
我们也看到在输出的第五行的一系列的“标志”。这些定义在RFC 1035它定义了包含在DNS消息头中的标志,甚至显示了头的格式。
1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | | ID + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | QR |操作码| AA | TC | RD | RA Z | | RCODE | + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | QDCOUNT | + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | ANCOUNT | + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | NSCOUNT | + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + | ARCOUNT | + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - +
在上面的初始查询第五行中示出的标志是:
- qr=查询
- 理查德·道金斯=需要递归
- 类风湿性关节炎=递归可用
RFC中描述的其他标志包括:
- aa=权威的答案
- cd=检查禁用
- 广告=真实数据
- 操作码= 4位字段
- TC=截断
- ž(未使用)
添加+trace选项
你会得到很多更多的输出挖如果你加入+跟踪作为一个选项。它将添加一些信息,显示您的DNS查询如何通过名称服务器的层次结构来定位您要查找的答案。
一切NS下面显示的记录反映了名称服务器——这只是您将看到的第一部分数据,因为查询将在名称服务器的层次结构中运行,以跟踪您要查找的内容。
$挖+跟踪networkworld.com;<< >>挖9.16.1 Ubuntu的<< >> +跟踪networkworld.com ;;全局选项:+ CMD。84895 IN NS k.root-servers.net。。84895 IN NS e.root-servers.net。。84895 IN NS m.root-servers.net。。84895 IN NS h.root-servers.net。 . 84895 IN NS c.root-servers.net. . 84895 IN NS f.root-servers.net. . 84895 IN NS a.root-servers.net. . 84895 IN NS g.root-servers.net. . 84895 IN NS l.root-servers.net. . 84895 IN NS d.root-servers.net. . 84895 IN NS b.root-servers.net. . 84895 IN NS i.root-servers.net. . 84895 IN NS j.root-servers.net. ;; Received 262 bytes from 127.0.0.53#53(127.0.0.53) in 28 ms ...
最终,您将获得与请求直接关联的信息。
networkworld.com。300 IN A 151.101.2.165 networkworld.com。300 IN A 151.101.66.165 networkworld.com。300 IN A 151.101.130.165 networkworld.com。300 IN A 151.101.194.165 networkworld.com。14400 IN NS ns-d.pnap.net。networkworld.com。14400 IN NS ns-a.pnap.net。networkworld.com。14400 IN NS ns0.pcworld.com。 networkworld.com. 14400 IN NS ns1.pcworld.com. networkworld.com. 14400 IN NS ns-b.pnap.net. networkworld.com. 14400 IN NS ns-c.pnap.net. ;; Received 269 bytes from 70.42.185.30#53(ns0.pcworld.com) in 116 ms
选择你的应答
你可以使用@签名以指定要处理查询的特定名称服务器。这里,我们要求主名称服务器谷歌响应我们的查询:
$ dig @8.8.8.8 networkworld.com;< < > > < < > >挖9.16.1-Ubuntu @8.8.8.8 networkworld.com;(发现1台服务器);全局选项:+cmd;;答案:;;->>头<<-操作码:查询,状态:无错误,id: 43640;;旗帜:qr rd ra;查询:1,回答:4,权限:0,附加:1;;选择假剖面:;版本:0,标志:; udp: 512 ;; QUESTION SECTION: ;networkworld.com. IN A ;; ANSWER SECTION: networkworld.com. 299 IN A 151.101.66.165 networkworld.com. 299 IN A 151.101.194.165 networkworld.com. 299 IN A 151.101.130.165 networkworld.com. 299 IN A 151.101.2.165 ;; Query time: 48 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Sat Jul 25 11:21:19 EDT 2020 ;; MSG SIZE rcvd: 109
下面所示的命令对8.8.8.8 IP地址进行反向查找,以显示它属于谷歌的DNS服务器。
$ NSLOOKUP 8.8.8.8 8.8.8.8.in-addr.arpa名=dns.google。
包起来
dig命令是了解DNS如何工作和在出现连接问题时进行故障排除的重要工具。