DNS 解析 - 操作顺序

joe*_*rty 5 domain-name-system

在对 bgsu.edu 执行 nslookup 时运行网络捕获时,我注意到我的 DNS 服务器没有查询 bgsu.edu 的 SOA 记录。这是我在捕获中看到的操作顺序:

  1. 我的 DNS 服务器向 bgsu.edu 的根提示服务器之一发出 A 记录查询。

  2. 根提示服务器返回 gTLD 服务器的 NS 记录列表。

  3. 我的 DNS 服务器向 bgsu.edu 的 gTLD 服务器之一发出 A 记录查询。

  4. gTLD 服务器返回 bgsu.edu 的 NS 记录列表。

  5. 我的 DNS 服务器向 bgsu.edu 的步骤 4 中返回的名称服务器之一发出 A 记录查询。

  6. 相关域的名称服务器返回 bgsu.edu 的 A 记录信息。

所以我的问题是:我的 DNS 服务器是否不需要首先查询相关域的 SOA 记录?如果不是,那么 SOA 记录究竟是如何使用的?哪些名称服务器查询 SOA 记录?gTLD 服务器是否查询 SOA 记录,因此,我在捕获中没有看到这一点?我的理解是 SOA 持有 NS 记录的列表,所以 SOA 不应该是查询的第一条记录吗?

Zyp*_*her 6

NS 服务器不是 SOA 记录的一部分。SOA 记录和我引自RFC 1035 (3.3.13):

大多数这些字段仅与名称服务器维护操作相关。

SOA 记录中的字段是:

MNAME 作为该区域原始或主要数据源的名称服务器的名称。

RNAME A 指定负责该区域的人的邮箱。

SERIAL 区域原始副本的无符号 32 位版本号。区域传输保留此值。这个值会换行,应该使用序列空间算法进行比较。

REFRESH 应刷新区域之前的 32 位时间间隔。

RETRY 在重试失败刷新之前应该经过的 32 位时间间隔。

EXPIRE 一个 32 位时间值,它指定在区域不再具有权威性之前可以经过的时间间隔的上限。

MINIMUM 应与来自该区域的任何 RR 一起导出的无符号 32 位最小 TTL 字段。

因此,除此之外,正在发生的事情是这样的:

  1. 您的 dns 服务器没有缓存 bgsu.edu 的条目并且不具有权威性,因此它需要询问根提示服务器去哪里寻找合适的 dns 服务器
  2. gTLD 有 GLUE 记录,它们只是域的名称服务器,这是您要实际查询要连接的主机的服务器。
  3. 您获得 bgsu.edu 的名称服务器
  4. 您对感兴趣的主机进行 DNS 查询
  5. 您将获得最初寻找的 DNS 记录。