为了能看到上述内容,我确实需要安装更新版本的dig
。
令人困惑的工具尽管很多 DNS 的细节被隐藏起来,但你可以通过使用dig
工具来找出发生了什么事情 。
例如,你可以使用dig +norecurse
来确定给定的 DNS 解析器是否在其缓存中具有特定的记录 。如果响应没有被缓存,8.8.8.8
看起来会返回SERVFAIL
响应 。
以下是对google.com
进行该操作的示例:
$ dig +norecurse@8.8.8.8 google.com;; Got answer:;; ->>HEADER
这是对homestarrunner.com
的示例:
$ dig +norecurse@8.8.8.8 homestarrunner.com;; Got answer:;; ->>HEADER
【为什么学习DNS如此困难? DNS为什么很难学习?】在这里,你可以看到我们对于google.com
得到了一个正常的NOERROR
响应(8.8.8.8
的缓存中有该记录),但对于homestarrunner.com
得到了SERVFAIL
响应(没有缓存) 。这并不意味着homestarrunner.com
没有 DNS 记录(实际上有!),它只是没有被缓存 。
但如果你不熟悉这样的输出,它确实很难阅读!以下是我认为其中一些奇怪的地方:
- 标题很奇怪(有
->>HEADER、flags:、OPT PSEUDOSECTION:、QUESTION SECTION:、ANSWER SECTION:) 。为什么学习DNS如此困难?,DNS为什么很难学习? 。小编来告诉你更多相关信息 。
DNS为什么很难学习 - 空格排版很奇怪(
OPT PSEUDOSECTION
和QUESTION SECTION
之间为什么没有换行符?) 。 MSG SIZE rcvd: 47
很奇怪(MSG SIZE
中是否还有其他字段,而不仅仅是rcvd
?它们是什么?) 。- 它说有 1 个记录在
ADDITIONAL
部分,但没有显示它,你必须以某种方式神奇地知道OPT PSEUDOSECTION
记录实际上在ADDITIONAL
部分 。
dig
的输出给人的感觉是一个以临时方式编写并随着时间的推移逐渐发展起来的脚本,而不是经过有意设计的东西 。处理令人困惑的工具的一些想法:
- 解释输出结果 。例如,我写了一篇如何使用 dig的文章,解释了
dig
的输出结果以及如何配置它以默认给出更简短的输出 。 - 创建新的、更友好的工具 。例如,在 DNS 方面,有dog、doggo和我的 DNS 查询工具 。我认为这些工具非常酷,但我个人不使用它们,因为有时我想做一些稍微高级一点的操作(比如使用
+norecurse
),据我所知,无论是dog
还是doggo
都不支持+norecurse
。我更愿意使用一个工具来完成所有任务,所以我坚持使用dig
。要替换dig
,其功能广度是一项庞大的工作 。 - 使 dig 的输出更加友好 。如果我在 C 编程方面更好一些,我可能会尝试编写一个
dig
的拉取请求,添加一个+human
标志以以更结构化和易读的方式格式化长格式的输出,可能类似于以下形式:
$ dig +human +norecurse@8.8.8.8 google.com HEADER:opcode: QUERYstatus: NOERRORid: 11653flags: qr rarecords: QUESTION: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1QUESTION SECTION:google.com.INAANSWER SECTION:google.com.21INA172.217.4.206ADDITIONAL SECTION:EDNS: version: 0, flags:; udp: 512EXTRA INFO:Time: Fri Jul 28 10:51:01 EDT 2023Elapsed: 52 msecServer: 8.8.8.8:53Protocol: UDPResponse size: 47 bytes
这样可以更清晰地呈现 DNS 响应的结构-包括标题、问题、答案和附加部分 。而且它并不是“简化”了什么!它是完全相同的信息,只是以更结构化的方式进行了格式化 。我对替代的 DNS 工具最大的不满是它们经常为了清晰起见而删除信息 。虽然这些工具肯定有其用武之地,但我想要看到所有的信息!我只是希望它能够以清晰明了的方式呈现 。
在过去的 40 年中,我们已经学到了很多关于如何设计更用户友好的命令行工具的知识,我认为将其中一些知识应用到我们那些有些陈旧的工具中将会很棒 。
dig +yaml关于
dig
的一个简单备注:较新版本的为什么学习DNS如此困难?,DNS为什么很难学习? 。小编来告诉你更多相关信息 。
DNS为什么很难学习
dig
支持+yaml
输出格式,对我来说更加清晰,但有些冗长(一个相当简单的 DNS 响应都无法在屏幕上完整显示) 。一些奇怪的陷阱DNS 存在一些相对常见但很难通过自学了解到的奇怪问题 。以下是一些例子(有更多可在 导致 DNS 中断的一些方式中找到):
- 自动化配置DNS服务器 LinuxShell脚本实战:
- 日本和尚为何可以结婚 日本的和尚为什么能结婚
- 夏至为什么叫夏至 为什么不是最热的
- qsv格式转换成mp4为什么花屏 mp4视频格式错误的解决方法
- 阿拉斯加为什么会脚臭
- 为什么张继科不打球了 细说张继科当年被开除始末
- 电视剧光渊为什么不更新了 详解“光渊”断更的背后缘由
- 董洁与潘粤明为什么离婚了 细说两人婚变来龙去脉
- 夏天最热的时候被称为什么 一天中什么时候最热
- 华为手机各系列详细介绍 frd-al00是华为什么型号