Skip to main content

3. Serving (服务)

3. Serving (服务)

本节描述包含安全感知名称服务器 (security-aware name server) 功能的实体的行为.在许多情况下, 此类功能将是安全感知递归名称服务器 (security-aware recursive name server) 的一部分, 但安全感知权威名称服务器也有一些相同的要求.

安全感知名称服务器必须 (MUST) 支持 EDNS0 ([RFC2671]) 消息大小扩展, 必须 (MUST) 支持至少 1220 八位字节的消息大小, 并且应该 (SHOULD) 支持 4000 八位字节的消息大小.

接收到不包含 EDNS OPT 伪 RR 或 DO 位清除的 DNS 查询的安全感知名称服务器必须 (MUST) 像对待任何其他 RRset 一样对待 RRSIG, DNSKEY 和 NSEC RR, 并且绝对不能 (MUST NOT) 执行下面描述的任何额外处理.

DNSSEC 在 DNS 消息头中分配了两个新位:

  • CD (Checking Disabled) 位: 由解析器控制
  • AD (Authentic Data) 位: 由名称服务器控制

安全感知名称服务器必须 (MUST) 将查询中的 CD 位复制到相应的响应中.安全感知名称服务器必须 (MUST) 忽略查询中 AD 位的设置.

3.1. Authoritative Name Servers (权威名称服务器)

在接收到设置了 EDNS OPT 伪 RR DO 位的相关查询时, 签名区域的安全感知权威名称服务器必须 (MUST) 根据以下规则包含额外的 RRSIG, NSEC 和 DS RR:

  • 可用于认证响应的 RRSIG RR 必须 (MUST) 根据第 3.1.1 节中的规则包含在响应中
  • 可用于提供认证的不存在证明 (authenticated denial of existence) 的 NSEC RR 必须 (MUST) 根据第 3.1.3 节中的规则自动包含在响应中
  • DS RRset 或证明不存在 DS RR 的 NSEC RR 必须 (MUST) 根据第 3.1.4 节中的规则自动包含在引用 (referral) 中

3.1.1. Including RRSIG RRs in a Response (在响应中包含 RRSIG RR)

当响应设置了 DO 位的查询时, 安全感知权威名称服务器应该 (SHOULD) 尝试发送 RRSIG RR, 以便安全感知解析器可以使用它们来认证响应中的 RRset.

规则:

  • 当将签名的 RRset 放入 Answer 部分时, 名称服务器还必须 (MUST) 将其 RRSIG RR 放入 Answer 部分
  • 当将签名的 RRset 放入 Authority 部分时, 名称服务器还必须 (MUST) 将其 RRSIG RR 放入 Authority 部分
  • 当将签名的 RRset 放入 Additional 部分时, 名称服务器还必须 (MUST) 将其 RRSIG RR 放入 Additional 部分
  • 如果空间不允许在 Answer 或 Authority 部分包含 RRSIG RR, 名称服务器必须 (MUST) 设置 TC 位

3.1.2. Including DNSKEY RRs in a Response (在响应中包含 DNSKEY RR)

当响应设置了 DO 位并请求签名区域顶点的 SOA 或 NS RR 的查询时, 该区域的安全感知权威名称服务器可以 (MAY) 在 Additional 部分返回区域顶点 DNSKEY RRset.

DNSKEY RRset 和关联的 RRSIG RR 的优先级低于将放入 Additional 部分的任何其他信息.

3.1.3. Including NSEC RRs in a Response (在响应中包含 NSEC RR)

当响应设置了 DO 位的查询时, 签名区域的安全感知权威名称服务器必须 (MUST) 在以下每种情况下包含 NSEC RR:

No Data (无数据): 区域包含完全匹配 <SNAME, SCLASS> 的 RRset, 但不包含完全匹配 <SNAME, SCLASS, STYPE> 的任何 RRset.

Name Error (名称错误): 区域不包含通过精确匹配或通过通配符名称扩展 (wildcard name expansion) 匹配 <SNAME, SCLASS> 的任何 RRset.

Wildcard Answer (通配符应答): 区域不包含完全匹配 <SNAME, SCLASS> 的任何 RRset, 但包含通过通配符名称扩展匹配 <SNAME, SCLASS, STYPE> 的 RRset.

Wildcard No Data (通配符无数据): 区域不包含完全匹配 <SNAME, SCLASS> 的任何 RRset, 并且包含通过通配符名称扩展匹配 <SNAME, SCLASS> 的一个或多个 RRset, 但不包含通过通配符名称扩展匹配 <SNAME, SCLASS, STYPE> 的任何 RRset.

3.1.3.1. Including NSEC RRs: No Data Response (包含 NSEC RR: 无数据响应)

如果区域包含匹配 <SNAME, SCLASS> 的 RRset 但不包含匹配 <SNAME, SCLASS, STYPE> 的 RRset, 则名称服务器必须 (MUST) 在 Authority 部分包含 <SNAME, SCLASS> 的 NSEC RR 以及其关联的 RRSIG RR.

3.1.3.2. Including NSEC RRs: Name Error Response (包含 NSEC RR: 名称错误响应)

如果区域不包含通过精确匹配或通过通配符名称扩展匹配 <SNAME, SCLASS> 的任何 RRset, 则名称服务器必须 (MUST) 在 Authority 部分包含以下 NSEC RR:

  • 证明不存在 <SNAME, SCLASS> 的精确匹配的 NSEC RR
  • 证明区域不包含通过通配符名称扩展匹配 <SNAME, SCLASS> 的 RRset 的 NSEC RR
3.1.3.3. Including NSEC RRs: Wildcard Answer Response (包含 NSEC RR: 通配符应答响应)

如果区域不包含完全匹配 <SNAME, SCLASS> 的任何 RRset, 但包含通过通配符名称扩展匹配 <SNAME, SCLASS, STYPE> 的 RRset, 则名称服务器必须 (MUST) 在 Answer 部分包含通配符扩展的应答和相应的通配符扩展的 RRSIG RR, 并且必须 (MUST) 在 Authority 部分包含证明区域不包含更近匹配 (closer match) 的 NSEC RR.

3.1.3.4. Including NSEC RRs: Wildcard No Data Response (包含 NSEC RR: 通配符无数据响应)

名称服务器必须 (MUST) 在 Authority 部分包含以下 NSEC RR:

  • 证明在通配符所有者名称处不存在匹配 STYPE 的 RRset 的 NSEC RR
  • 证明区域中不存在更近匹配的 RRset 的 NSEC RR

3.1.4. Including DS RRs in a Response (在响应中包含 DS RR)

DS RR 仅存在于委托点.委托点的 DS RR 建立了进入子区域的认证链.返回引用的安全感知名称服务器必须 (MUST) 尝试在 Authority 部分返回 DS RRset 及其关联的 RRSIG RR.

如果委托点不存在 DS RRset, 名称服务器必须 (MUST) 返回证明 DS RRset 不存在的 NSEC RR.

3.1.5. Responding to Queries for Type AXFR or IXFR (响应 AXFR 或 IXFR 类型的查询)

DNSSEC 不改变 DNS 区域传输协议.安全感知权威名称服务器必须 (MUST) 在区域传输中包含适当的 DNSSEC RR (RRSIG, NSEC, DS 和 DNSKEY RR).

3.1.6. The AD and CD Bits in an Authoritative Response (权威响应中的 AD 和 CD 位)

安全感知权威名称服务器必须 (MUST) 清除响应中的 AD 位, 除非名称服务器对包含 Answer 和 Authority 部分中所有 RRset 的区域具有权威性, 并且包含了所有必要的 RRSIG 和 NSEC RR.

安全感知权威名称服务器必须 (MUST) 将查询中的 CD 位复制到响应中.

3.2. Recursive Name Servers (递归名称服务器)

安全感知递归名称服务器是一个既充当安全感知解析器 (参见第 4 节) 又为其他解析器或存根解析器 (stub resolver) 提供安全感知查询服务的实体.

3.2.1. The DO Bit (DO 位)

当递归名称服务器接收的查询中设置了 DO 位时, 安全感知递归名称服务器必须 (MUST) 在其向权威名称服务器发送的查询中设置 DO 位.

3.2.2. The CD Bit (CD 位)

CD (Checking Disabled) 位控制安全感知递归名称服务器是否执行 DNSSEC 验证.当设置 CD 位时, 安全感知递归名称服务器不应该 (SHOULD NOT) 执行 DNSSEC 验证, 但应该 (SHOULD) 仍然获取 DNSSEC RR.

3.2.3. The AD Bit (AD 位)

AD (Authentic Data) 位指示 Answer 和 Authority 部分中的数据是否已由安全感知解析器根据该解析器的本地安全策略 (local security policy) 的策略进行验证.

安全感知递归名称服务器必须 (MUST) 在以下情况下在响应中设置 AD 位:

  • Answer 和 Authority 部分中的 RRset 已成功验证
  • 或者响应是从受信任的上游服务器接收的并且设置了 AD 位

3.3. Example DNSSEC Responses (DNSSEC 响应示例)

附录 B 包含各种场景的详细 DNSSEC 响应示例, 包括:

  • 肯定应答 (positive answer)
  • 名称错误
  • 无数据错误
  • 对签名和未签名区域的引用
  • 通配符扩展