跳到主要内容

6. 区域 (Zones)

本节定义讨论正在服务或检索的区域时使用的术语.

Zone: "权威信息被组织为称为 'zones' 的单元, 这些区域可以自动分发到为区域中数据提供冗余服务的名称服务器." (引自 [RFC1034] 第 2.4 节)

Child: "记录中从 Parent 获得域委派的实体." (引自 [RFC7344] 第 1.1 节)

Parent: "Child 注册所在的域." (引自 [RFC7344] 第 1.1 节.) 更早时, [RFC882] 将 "parent name server" 定义为 "对域名空间中将承载新域的位置拥有权威的名称服务器". (注意, [RFC882] 已由 [RFC1034] 和 [RFC1035] 废弃.) [RFC819] 也对 parent 和 child 之间的关系作了一些描述.

Origin:

(a) "出现在区域顶部的域名 (就在将该区域与其父区域分开的切点之下). 区域名称与区域 origin 处的域名相同." (引自 [RFC2181] 第 6 节.) 如今, 这种意义上的 "origin" 和下文定义的 "apex" 经常互换使用.

(b) 在区域文件中, 给定相对域名所在的域名. 这通常出现在 "$ORIGIN" 的上下文中, "$ORIGIN" 是 [RFC1035] 第 5.1 节作为 master file 格式一部分定义的控制条目. 例如, 如果 $ORIGIN 设置为 "example.org.", 则 master file 中 "www" 这一行实际上是 "www.example.org." 的条目.

Apex: 树中拥有 SOA 及相应权威 NS RRset 的点. 这也称为 "zone apex". [RFC4033] 将其定义为 "区域切点 child 侧的名称". 可以将 "apex" 理解为对树结构的数据理论描述, 而 "origin" 是同一概念在区域文件中实现时的名称. 不过, 实际使用中并不总是保持这种区分, 也能看到与该定义存在细微冲突的用法. [RFC1034] 使用 "top node of the zone" 作为 "apex" 的同义词, 但该术语并不常用. 如今, 上述第一种意义的 "origin" 和 "apex" 经常互换使用.

Zone cut: 两个区域之间的界定点, 其中一个区域的 origin 是另一个区域的 child.

"区域由 'zone cuts' 界定. 每个 zone cut 将 'child' 区域 (切点之下) 与 'parent' 区域 (切点之上) 分隔开." (引自 [RFC2181] 第 6 节; 注意这几乎只是一个指示性定义.) [RFC1034] 第 4.2 节使用 "cuts" 表示 'zone cut'.

Delegation: 在给定域 apex 之下的命名空间中创建独立区域的过程. 当在父区域中为 child origin 添加 NS RRset 时, delegation 就发生了. Delegation 本质上发生在 zone cut 处. 该术语也常用作名词: 指由委派行为创建的新区域.

Glue records: "[资源记录] 不是 [区域的] 权威数据的一部分, 而是 [子区域中的名称服务器] 的地址资源记录. 只有当名称服务器的名称位于切点 'below' 时才需要这些 RR, 并且它们只作为 referral 响应的一部分使用." 如果没有 glue, "我们可能会面临这样的情况: NS RR 告诉我们, 为了获知某名称服务器的地址, 应联系该服务器, 而联系它所需的正是我们想获知的地址." (定义来自 [RFC1034] 第 4.2.1 节)

后来的定义认为 glue "包括区域文件中任何不真正属于该区域的记录, 包括被委派子区域的 nameserver 记录 (NS records), 伴随这些 NS 记录的地址记录 (A, AAAA 等), 以及可能出现的任何其他零散数据" ([RFC2181] 第 5.4.1 节). 虽然今天有时会按这种更宽泛的定义使用 glue, 但 [RFC2181] 定义周围的上下文表明, 它意在适用于该文档自身中 glue 的用法, 不一定适用于更广范围.

In-bailiwick:

(a) 一个形容词, 用于描述名称从属于区域 origin 或 (较少见地) 与区域 origin 相同的名称服务器. In-bailiwick name server 需要在其父区域中有 glue records (使用上文 "glue records" 的第一个定义).

(b) 服务器对其有权威的数据, 或者服务器对其 owner name 的祖先有权威的数据. 该术语的这一含义通常用于讨论响应中 glue records 的相关性. 例如, 父区域 "example.com" 的服务器可能以 "ns.child.example.com" 的 glue records 响应. 因为 "child.example.com" 区域是 "example.com" 区域的后代, 所以这些 glue records 是 in-bailiwick.

Out-of-bailiwick: In-bailiwick 的反义词.

Authoritative data: "从区域顶部节点向下到叶节点, 或到区域底部边缘各切点之上节点所附着的所有 RR." (引自 [RFC1034] 第 4.2.1 节.) 需要指出, 该定义可能无意中也包括出现在区域中的任何 NS 记录, 即使由于 zone cut 之下存在相同的 NS RR, 这些记录可能并不真正具有权威. 这揭示了 authoritative data 概念中的歧义, 因为父侧 NS 记录权威地指示委派, 即使它们本身不是 authoritative data.

Root zone: Apex 为零长度标签的区域. 有时也称为 "the DNS root".

Empty non-terminals: "自身没有资源记录但有拥有资源记录的子域的域名." (引自 [RFC4592] 第 2.2.2 节.) 一个典型示例出现在 SRV 记录中: 在名称 "_sip._tcp.example.com" 中, "_tcp.example.com" 很可能没有 RRset, 但 "_sip._tcp.example.com" 至少有一个 SRV RRset.

Delegation-centric zone: 主要由对子区域的 delegation 构成的区域. 该术语用于与另一类区域形成对比: 后者可能有一些对子区域的 delegation, 但也有许多属于该区域自身和/或子区域的数据资源记录. 该术语在 [RFC4956] 和 [RFC5155] 中使用, 但未在那里定义.

Wildcard: [RFC1034] 定义了 "wildcard", 但其方式后来证明会使实现者困惑. 对 owner name 以标签 "*" 开头的 RR 会进行特殊处理. "这类 RR 称为 'wildcards'. Wildcard RR 可以被视为合成 RR 的指令." (引自 [RFC1034] 第 4.3.3 节.) 有关 wildcard 的扩展讨论, 包括更清晰的定义, 见 [RFC4592].

Occluded name: "通过动态更新添加 delegation point 会使所有下级域名处于悬置状态, 仍是区域的一部分, 但不可供查找过程使用. 添加 DNAME 资源记录也有同样影响. 这些下级名称被称为 'occluded'." (引自 [RFC5936] 第 3.5 节)

Fast flux DNS: 当 "在 DNS 中发现某个域使用 A 记录指向多个 IP 地址, 且每个地址都关联非常短的 Time-to-Live (TTL) 值" 时出现. "这意味着该域会在短时间内解析为不同的 IP 地址." (引自 [RFC6561] 第 1.1.5 节, 已修正拼写错误.) 它常用于投递恶意软件. 因为地址变化非常快, 很难确定所有主机. 需要注意的是, 该技术也适用于 AAAA 记录, 但截至本文写作时, Internet 上并不常观察到这种用法.