为什么学习DNS如此困难?,DNS为什么很难学习? 。小编来告诉你更多相关信息 。
DNS为什么很难学习为大家介绍的是DNS为什么很难学习的相关知识,一定能解决您的问题的,一起来了解吧!
我经常写关于我发现难以学习的技术的文章 。不久前,我的朋友 Sumana 向我提出了一个有趣的问题 – 为什么这些东西学起来那么难?为什么它们看起来如此神秘?
以 DNS 为例 。我们从 80 年代开始使用 DNS(已经超过 35 年了!) 。它在互联网上的每个网站中都使用 。而且它相当稳定 – 在很多方面,它的工作方式与 30 年前完全相同 。
但是我花了好几年的时间才弄清楚如何自信地调试 DNS 问题,我也见过很多其他程序员在调试 DNS 问题上苦苦挣扎 。那么到底发生了什么呢?
以下是关于为什么学习排除 DNS 问题很困难的几点思考 。
(我不会在这篇文章中详细解释 DNS,更多关于 DNS 如何工作的信息,请参阅 《用一个周末实现一个 DNS》 或我的 DNS 方面的博文)
文章插图
并不是因为 DNS 非常难当我最终学会如何排除 DNS 问题时,我的反应是“什么,就这样吗???这并不难!”我感觉有点被骗了!我可以在 几个小时内向你解释关于 DNS 令我感到困惑的一切事情 。
那么 – 如果 DNS 并不是那么复杂,为什么我花了这么多年的时间才弄清楚如何排除相当基本的 DNS 问题(比如“即使我已经正确设置了,我的域名仍无法解析”或者“
dig
命令和我的浏览器的 DNS 结果不一致,为什么?”)?而且,在发现 DNS 学习困难方面,我并不孤单!我与许多经验丰富的程序员朋友讨论过多年来的 DNS 问题,其中很多人要么:
- 不敢轻易对其网站进行简单的 DNS 更改
- 或对 DNS 工作原理的基本事实感到困惑(比如记录是 拉取的而非推送的)
- 或对 DNS 基础知识了解得很好,但却和我一样存在一些知识盲点(负缓存和
dig
命令及浏览器如何以不同方式进行 DNS 查询的细节)
以下是我的一些看法 。
很多系统是隐藏的当你在计算机上发起 DNS 请求时,基本的过程如下:
- 你的计算机向一个名为“解析器”的服务器发起请求 。
- 解析器检查其缓存,并向一些称为“权威名称服务器”的其它服务器发起请求 。
- 解析器的缓存 。里面有什么内容?
- 在你的计算机上进行 DNS 请求的库代码是哪个(是否是 libc 的
getaddrinfo
函数?如果是,它是来自 glibc、musl 还是苹果?是你的浏览器的 DNS 代码吗?还是其他自定义的 DNS 实现?)所有这些选项的行为略有不同,并且有不同的配置、缓存方法、可用功能等等 。例如,musl DNS 直到2023 年初才支持 TCP 。为什么学习DNS如此困难?,DNS为什么很难学习? 。小编来告诉你更多相关信息 。
DNS为什么很难学习 - 解析器与权威名称服务器之间的对话 。如果你能够神奇地获得一个准确记录你的请求期间向下游查询的每个权威名称服务器以及它们的响应的追踪,我认为很多 DNS 问题将变得非常简单 。(比如,如果你能运行
dig +debug google.com
并获得一些额外的调试信息会怎么样?)
- 向人们传授隐藏系统的知识会产生重大影响 。很长一段时间里,我不知道我的计算机有多个不同的 DNS 库,它们在不同情况下使用,我对此感到困惑了好几年 。这是我的重要排错方法 。
- 通过 Mess With DNS,我们尝试了一种“鱼缸”的方法,展示了通常隐藏的系统(与解析器和权威名称服务器的对话)的一些部分 。
- 我觉得将 DNS 扩展以包括一个“调试信息”部分会非常酷 。(注:似乎这已经有了!它被称为“扩展 DNS 错误”,即 EDE,各种工具正在逐渐添加对它的支持 。)
$ dig @8.8.8.8 xjwudh.com;; Got answer:;; ->>HEADER
这里我请求了一个不存在的域名,并收到了扩展错误信息EDE: 12 (NSEC Missing): (Invalid denial of existence of xjwudh.com/a)
。我不太确定这是什么意思(它与 DNSSEC 有关),但能看到这样额外的调试信息真的很酷 。
- 自动化配置DNS服务器 LinuxShell脚本实战:
- 日本和尚为何可以结婚 日本的和尚为什么能结婚
- 夏至为什么叫夏至 为什么不是最热的
- qsv格式转换成mp4为什么花屏 mp4视频格式错误的解决方法
- 阿拉斯加为什么会脚臭
- 为什么张继科不打球了 细说张继科当年被开除始末
- 电视剧光渊为什么不更新了 详解“光渊”断更的背后缘由
- 董洁与潘粤明为什么离婚了 细说两人婚变来龙去脉
- 夏天最热的时候被称为什么 一天中什么时候最热
- 华为手机各系列详细介绍 frd-al00是华为什么型号