![尝试掌握完整 DNS 解析背后的逻辑以及相应的操作顺序](https://linux22.com/image/568711/%E5%B0%9D%E8%AF%95%E6%8E%8C%E6%8F%A1%E5%AE%8C%E6%95%B4%20DNS%20%E8%A7%A3%E6%9E%90%E8%83%8C%E5%90%8E%E7%9A%84%E9%80%BB%E8%BE%91%E4%BB%A5%E5%8F%8A%E7%9B%B8%E5%BA%94%E7%9A%84%E6%93%8D%E4%BD%9C%E9%A1%BA%E5%BA%8F.png)
假设我们有一个域“example.org”,它有一个名为“ns1.example.org”的权威名称服务器,该服务器具有由域名注册商(委托人?)名称服务器委托的粘合 IP。
有人在浏览器中输入 example.org:
请求被传递到 ISP 的 DNS 服务器。当 ISP 的缓存名称服务器/本地缓存未找到域“example.org”及其相应(SOA 记录副本?或(Web 服务器 IP?、权威名称服务器 IP?、两者?))的匹配项时,ISP 的 DNS 会尝试通过使用域名“example.org”查询 WHOIS 数据库来解析“example.org”域的权威名称服务器 IP?还是将请求传递到根“.org”服务器,然后根服务器使用域名“example.org”查询 whois 数据库以查找匹配的胶水记录?
WHOIS 数据库是互联网中央目录的一部分,我认为主根服务器就是所谓的“互联网中央目录”?
根 .org 服务器将包含“example”域的胶合记录,对“example.org”的请求最终将转发到权威名称服务器。其中 A\AAA 记录将把域名“example.org”映射到 WebServer 等资源的地址。
另外,是否存在委派的 NS 名称记录,它不与托管和发布其区域文件的权威 DNS 服务器的 IP 地址绑定?因为我在一本书中读到过一个循环依赖/catch-22 问题,当 NS 名称是被解析域的子域时,我立即想到,不是所有委派的 NS 名称都与 IP 地址绑定,那么为什么会发生这种情况?
答案1
Glue 记录是该区域 NS 记录的区域内 A 记录。
因此,它们仅必需的当 NS 记录位于区域内时。
如果 NS 记录指向区域外的主机名,则没有粘合允许,因为 NS 记录指向不属于该区域管辖范围的主机名。
始终以一个基本事实开始:区域是行政责任区 - 区域内的所有记录都属于那区的责任。
也就是说,您的网络请求示例如下:
- 浏览器向本地 DNS 解析器请求 example.org 的 A 记录
- 本地解析器检查是否已经知道
- 如果没有,它会将查询转发到其配置的名称服务器。
- 该名称服务器将检查它是否有该记录,如果它允许递归查询,则将从全局根开始检索记录(如果没有)。
WHOIS 不是 DNS 的一部分;从不进行用于名称解析的 whois 查询。
答案2
解析总是向左。www.example.org 解析的轨迹。(类型 A)
- 客户端查询 assiomatic 根名称服务器(ns 中的“.”)“www.example.org 中的 A 是什么?”
- 根域名服务器说“我不知道(响应包的答案部分为空),但对于 org。你必须询问 org 域名服务器(响应包的权威部分)”
- 客户端向其中一个 org-nameservers 发出相同的查询:“www.example.org 中的 A 是什么?”
- org-nameserver 说“我不知道,但是对于 example.org 你得问 example-org-nameserver”
- 依此类推,直到名称服务器真正应答(给出响应包的非空的答案部分)。
注意:
- 客户端每次都会重复“最后”的查询,甚至直到词根。
- 当名称服务器响应某些名称,并且同时知道它们的翻译时,任何名称服务器都会包含 glue。
- 当包含答案部分时,仍然可能存在权威