跳到主要内容

3. 服务 (Serving)

本节描述包含安全感知名称服务器功能的实体的行为. 在很多情况下, 这些功能是安全感知递归名称服务器的一部分, 但安全感知权威名称服务器也有一些相同要求.

安全感知名称服务器 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) bit: 由解析器控制
  • AD (Authentic Data) bit: 由名称服务器控制

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

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

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

  • 可用于认证响应的 RRSIG RR MUST 按第 3.1.1 节的规则包含在响应中
  • 可用于提供经认证不存在证明的 NSEC RR MUST 按第 3.1.3 节的规则自动包含在响应中
  • 委派响应中 MUST 按第 3.1.4 节的规则自动包含 DS RRset, 或包含一条证明不存在 DS RR 的 NSEC RR

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

响应设置了 DO 位的查询时, 安全感知权威名称服务器 SHOULD 尝试发送安全感知解析器可用于认证响应中 RRset 的 RRSIG RR.

规则:

  • 当把已签名 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. 在响应中包含 DNSKEY RR (Including DNSKEY RRs in a Response)

响应设置了 DO 位, 且请求已签名区域顶点处 SOA 或 NS RR 的查询时, 该区域的安全感知权威名称服务器 MAY 在 Additional 节中返回区域顶点 DNSKEY RRset.

DNSKEY RRset 及关联的 RRSIG RR 的优先级低于任何其他会被放入 Additional 节的信息.

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

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

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

Name Error: 区域不包含任何与 <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. 包含 NSEC RR: No Data 响应 (Including NSEC RRs: No Data Response)

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

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

如果区域不包含任何与 <SNAME, SCLASS> 完全匹配或通过通配符名称扩展匹配的 RRset, 则名称服务器 MUST 在 Authority 节中包含以下 NSEC RR:

  • 一条证明不存在与 <SNAME, SCLASS> 完全匹配项的 NSEC RR
  • 一条证明区域不包含会通过通配符名称扩展与 <SNAME, SCLASS> 匹配的 RRset 的 NSEC RR

3.1.3.3. 包含 NSEC RR: Wildcard Answer 响应 (Including NSEC RRs: Wildcard Answer Response)

如果区域不包含任何与 <SNAME, SCLASS> 完全匹配的 RRset, 但包含一个通过通配符名称扩展与 <SNAME, SCLASS, STYPE> 匹配的 RRset, 名称服务器 MUST 在 Answer 节中包含通配符扩展后的答案和对应的通配符扩展 RRSIG RR, 并且 MUST 在 Authority 节中包含一条 NSEC RR, 证明区域中不存在更接近的匹配.

3.1.3.4. 包含 NSEC RR: Wildcard No Data 响应 (Including NSEC RRs: Wildcard No Data Response)

名称服务器 MUST 在 Authority 节中包含以下 NSEC RR:

  • 一条证明通配符所有者名称处不存在与 STYPE 匹配的 RRset 的 NSEC RR
  • 一条证明区域中不存在本可成为更接近匹配的 RRset 的 NSEC RR

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

DS RR 只出现在委派点. 委派点处的 DS RR 建立进入子区域的认证链. 返回委派响应的安全感知名称服务器 MUST 尝试在 Authority 节中返回 DS RRset 及其关联的 RRSIG RR.

如果委派点处不存在 DS RRset, 名称服务器 MUST 返回一条证明 DS RRset 不存在的 NSEC RR.

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

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

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

安全感知权威名称服务器 MUST 在响应中清除 AD 位, 除非该名称服务器对包含 Answer 和 Authority 节中所有 RRset 的区域具有权威性, 且所有必要的 RRSIG 和 NSEC RR 均已包含.

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

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

安全感知递归名称服务器是一个充当安全感知解析器 (见第 4 节) 的实体, 同时也向其他解析器或存根解析器提供安全感知查询服务.

3.2.1. DO 位 (The DO Bit)

当递归名称服务器收到的查询中设置了 DO 位时, 安全感知递归名称服务器在发送给权威名称服务器的查询中 MUST 设置 DO 位.

3.2.2. CD 位 (The CD Bit)

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

3.2.3. AD 位 (The AD Bit)

AD (Authentic Data) 位指示 Answer 和 Authority 节中的数据是否已由安全感知解析器按照该解析器的本地安全策略验证.

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

  • Answer 和 Authority 节中的 RRset 已成功验证
  • 或者该响应来自受信任的上游服务器, 且收到时已设置 AD 位

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

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

  • 肯定答案
  • 名称错误
  • No Data 错误
  • 指向已签名和未签名区域的委派响应
  • 通配符扩展