5. B4 Element (B4 元素)
5. B4 Element (B4 元素)
5.1 Definition (定义)
B4 元素是在具备双栈能力的节点上实现的一种功能, 该节点可以是直连设备或 CPE, 用于创建通往 AFTR 的隧道.
5.2 Encapsulation (封装)
该隧道是一条多点对点 (multipoint-to-point) 的 IPv4-in-IPv6 隧道, 终结于服务提供商的 AFTR.
关于隧道的额外考量见第 7.1 节.
注意: 目前, DS-Lite 仅定义 IPv4-in-IPv6 隧道, 但将来可能定义其他封装类型.
5.3 Fragmentation and Reassembly (分片与重组)
使用封装 (IPv4-in-IPv6 或其他方式) 在 IPv6 上传送 IPv4 业务会降低数据报的有效 MTU (Maximum Transmission Unit, 最大传输单元). 遗憾的是, 路径 MTU 发现 (path MTU discovery) RFC 1191 并不是处理该问题的可靠方法.
解决该问题的一种做法是, 服务提供商将 B4 元素与 AFTR 元素之间所有链路的 MTU 大小至少增加 40 字节, 以同时容纳 IPv6 封装首部与 IPv4 数据报而不对 IPv6 分组进行分片.
然而, 由于并非所有服务提供商都能提高链路 MTU, 当外出链路 MTU 无法容纳额外的 IPv6 首部时, B4 元素必须执行分片与重组. 原始 IPv4 分组并未超大. 分组是在 IPv6 封装之后才超大. 内层 IPv4 分组绝对不能被分片. 分片必须在 IPv6 分组封装之后发生. 重组必须在 IPv4 分组解封装之前发生. 详细规程已在 RFC 2473 第 7.2 节中规定.
5.4 AFTR Discovery (AFTR 发现)
为了配置 IPv4-in-IPv6 隧道, B4 元素需要 AFTR 元素的 IPv6 地址. 该 IPv6 地址可通过多种方法配置, 包括带外机制, 手工配置, 或多种 DHCPv6 选项.
为保证互操作性, B4 元素应该实现 RFC 6334 中定义的 DHCPv6 选项.
5.5 DNS
B4 元素仅由服务提供商通过 IPv6 配置. 因此, 它只能通过 DHCPv6 (或 IPv6 上的其他类似方法) 获知递归 DNS 服务器的地址. 由于 DHCPv6 仅定义了获取此类递归 DNS 服务器 IPv6 地址的选项, B4 元素无法轻易发现此类递归 DNS 服务器的 IPv4 地址, 因此将不得不通过 IPv6 执行所有 DNS 解析.
B4 元素可将该 IPv6 地址传递给下游 IPv6 节点, 但不能传递给下游 IPv4 节点. 因此, B4 元素应该实现 DNS 代理, 遵循 RFC 5625 的建议.
为了支持位于 B4 元素之后的安全感知解析器 (security-aware resolver), B4 元素中的 DNS 代理也必须具备安全感知能力. 细节见 RFC 4033 第 6 节.
5.6 Interface Initialization (接口初始化)
B4 元素可与原生双栈 (native dual-stack) 等其他技术一起在主机与 CPE 中实现. 主机与 CPE 应该在初始化期间选择仅启动一种技术. 例如, 若 CPE 选择以原生双栈模式启动, 则不应该初始化 B4 元素. 该选择过程不在本文档范围之内.
5.7 Well-Known IPv4 Address (知名 IPv4 地址)
可在 IPv4-in-IPv6 隧道上配置任意本地唯一 (locally unique) 的 IPv4 地址以表示 B4 元素. 当 B4 元素直接通过隧道源发 IPv4 数据报时, 通常有必要配置此类地址. 为避免与任何其他地址冲突, IANA 已定义知名范围 192.0.0.0/29.
192.0.0.0 为保留的子网地址. 192.0.0.1 保留给 AFTR 元素, 192.0.0.2 保留给 B4 元素. 若服务提供商有特殊配置使 B4 元素无法使用 192.0.0.2, 则 B4 元素可以使用 192.0.0.0/29 范围内的任何其他地址.
注意: 已为此目的保留一段地址. 其意图是容纳实现多个 B4 元素的节点.