我现在正在写一本关于DNS的杂志,所以我对DNS的思考比普通人多得多。关于DNS术语,我注意到了一些细微的混淆!
两个最常见的DNS服务器术语(“名称服务器”和“DNS解析程序”)根据情况有不同的含义。
现在,如果你已经了解了DNS的工作原理,这就不是问题了——我可以很容易地弄清楚基于oncontext讨论的是什么类型的“名称服务器”。
但如果你试图学习DNS是如何工作的,而你没有意识到这些词可能会根据上下文指代不同的东西,这可能会是一个问题——这很令人困惑!所以我将解释不同的可能含义,以及如何找出其含义。
有两种类型的名称服务器,术语“名称服务器”的含义取决于上下文。
更新域的DNS记录时,这些记录存储在一个名为权威名称服务器的服务器上。
这就是“名称服务器”在特定域上下文中的含义。以下是几个例子:
“通过更改名称服务器,将您已经拥有的域连接到Wix。”
“几乎所有域都依赖多个名称服务器来提高可靠性:如果一个名称服务器出现故障或不可用,DNS查询可以转到另一个。”
“您可以按照域名注册商在其网站的帮助内容中可能提供的步骤自行更新名称服务器记录”
这些服务器缓存DNS记录。您的浏览器不会直接向授权名称服务器发出请求。相反,它会向DNS解析程序(也称为递归名称服务器)发出请求,该解析程序会找出正确的权威名称服务器,获取记录,并缓存结果。
这就是“名称服务器”在您浏览互联网时的含义。(“计算机的名称服务器”)。以下是几个例子:
“在某些设备上更改名称服务器可能会很麻烦,需要通过用户界面进行多次单击。例如,在Windows 10上……”
“您的DNS名称服务器是否妨碍了您的Internet体验?新版本添加了名称服务器1.1.1.1、1.0.0.1和9.9.9.9”
“将网络设置配置为使用IP地址8.8.8.8和8.8.4.4作为DNS服务器”
我更喜欢使用术语“DNS解析器”,尽管它有两种含义,因为它比“递归名称服务器”更常用。
DNS解析程序可以是库或服务器。(对不起,我知道我之前说过DNS解析器是服务器。但有时它是一个库。)
“存根解析程序”是指(它可以是库或DNS服务器)本身不知道如何解析DNS名称的东西,它只是负责将DNS查询转发给“真正的”DNS解析程序。让我们先谈谈存根解析器,它们是库。
例如,libc中的getaddrinfo函数本身不知道如何查找DNS记录,它只知道在/etc/resolv中查找。conf并将查询转发到它在那里找到的任何DNS服务器。
如何判断这是什么意思:如果它是计算机操作系统的一部分和/或如果它是一个库,那么它就是一个存根解析器。
“解析程序是C库中的一组例程,用于访问Internet域名系统(DNS)”
“这些是用于解析web地址的DNS服务器。您可以列出多达三个,解析程序会逐个尝试,直到找到一个有效的服务器。”
“如果命令成功,您将收到以下消息”已成功刷新DNS解析程序缓存。""
存根解析器并不总是库,就像systemd resolved和dnsmasq一样,它们是存根解析器,但它们是服务器。您的路由器可能正在运行dnsmasq。
你如何判断这是什么意思:如果你的路由器正在运行它,或者它不是你的操作系统,它可能是一个存根解析器。
“递归名称服务器”(就像我们之前讨论的那样)是一个knowshow为域查找权威名称服务器的服务器。这就是我在几周前的一个玩具DNS解析器中提到的那种DNS解析器(尽管我的不是服务器)。
如何判断这是什么意思:如果它是未绑定的、绑定的、8.8.8.8、1.1.1.1或由您的ISP运行的,那么它是一个递归名称服务器。
“pfSense®软件中的DNS解析程序使用unbound,这是一种有效的、递归的、高速缓存的DNS解析程序…”
“我们邀请您尝试使用谷歌公共DNS作为您的主要或次要DNS解析程序…”
“我为一家相当大的移动服务提供商工作,我们正在实施自己的DNS解析器……”
我还做了一个不科学的快速调查,通过计算谷歌搜索结果,哪些术语是指DNS服务器最常见的。以下是我的发现:
基本上,这告诉我,在很大程度上,当谈论DNS服务时,最常用的词是“名称服务器”和“DNS解析器”。
更具体的术语,如“递归名称服务器”、“authoritiveNameServer”和“存根解析器”,则不太常见。
我希望这能帮助一些人理解这些词的意思!这个术语比我想的要混乱一些,但在我看来,解释它似乎比使用不那么模糊的语言要好,因为这种语言在实践中并不常用。