跳到主要内容

Appendix B. Examples (示例)

Appendix B. Examples (示例)

B.1 Gateway-Based Architecture (基于网关的架构)

该架构面向住宅宽带部署, 但可轻松适配其他类型的部署, 其中仅 IPv4 设备的存量很重要.

考虑一种场景: Dual-Stack Lite CPE 仅在 WAN 端口配置 IPv6, 而不配置 IPv4. CPE 充当 LAN (有线与无线) 的 IPv4 DHCP 服务器, 分配 RFC 1918 地址. 此外, CPE 可能支持 LAN 上的 IPv6 自动配置和/或 DHCPv6 服务器. 当仅 IPv4 设备连接到 CPE 时, 该 CPE 将向设备分配 RFC 1918 地址. 当具备双栈能力的设备连接到 CPE 时, 该 CPE 将向设备分配 RFC 1918 地址与全局 IPv6 地址. 此外, CPE 将创建通往位于服务提供商网络中的 AFTR 的 IPv4-in-IPv6 软线 (softwire) 隧道 RFC 5571.

当设备访问 IPv6 业务时, 它将向 CPE 原生发送 IPv6 数据报. CPE 将业务向上游路由至 IPv6 默认网关.

当设备访问 IPv4 业务时, 它将使用 RFC 1918 地址作为源生成 IPv4 数据报, 并将 IPv4 数据报发送至 CPE. CPE 将把 IPv4 数据报封装在 IPv4-in-IPv6 软线隧道内, 并将 IPv6 数据报转发至 AFTR. 这与 CPE 如今通常的做法形成对比, 后者是将 RFC 1918 地址 NAT 到公有 IPv4 地址并将数据报向上游路由. 当 AFTR 收到 IPv6 数据报时, 它将解封装 IPv6 首部并对源地址执行 IPv4 到 IPv4 的 NAT.

如 图 1 所示, 该 Dual-Stack Lite 部署模型包含三个组件: 带 B4 元素的 Dual-Stack Lite 家庭路由器, AFTR, 以及在 Dual-Stack Lite 家庭路由器中作为软线发起方 (softwire initiator, SI) RFC 5571 的 B4 元素与 AFTR 中软线集中器 (softwire concentrator, SC) RFC 5571 之间的软线. AFTR 执行 IPv4-IPv4 NAT 转换, 通过全局 IPv4 地址池对多路订户进行复用. 订户使用的重叠地址空间通过隧道端点标识加以区分.

                  +-----------+
| Host |
+-----+-----+
|10.0.0.1
|
|
|10.0.0.2
+---------|---------+
| | |
| Home router |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
|||2001:db8:0:1::1
|||
|||<-IPv4-in-IPv6 softwire
|||
-------|||-------
/ ||| \
| ISP core network |
\ ||| /
-------|||-------
|||
|||2001:db8:0:2::1
+--------|||--------+
| AFTR |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
|192.0.2.1
|
--------|--------
/ | \
| Internet |
\ | /
--------|--------
|
|198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+

Figure 1: Gateway-Based Architecture

说明:

  • Dual-Stack Lite 家庭路由器不要求与主机位于同一链路.

  • Dual-Stack Lite 家庭路由器可替换为服务提供商网络中的 Dual-Stack Lite 路由器.

所得方案接受 IPv4 数据报, 将其转换为 IPv4-in-IPv6 软线数据报以在软线上传输. 在对应端点, 解封装 IPv4 数据报, 并基于来自软线的转换插入转换后的 IPv4 地址.

B.1.1 Example Message Flow (示例报文流)

在 图 2 所示示例中, AFTR 中的转换表配置为在 IP/TCP (10.0.0.1/10000) 与 IP/TCP (192.0.2.1/5000) 之间转发. 也就是说, Dual-Stack Lite 家庭路由器从地址 10.0.0.1 的主机收到, 使用 TCP 目的端口 10000 的数据报, 将被转换为在互联网中具有 IPv4 源地址 192.0.2.1 与 TCP 源端口 5000 的数据报.

                  +-----------+
| Host |
+-----+-----+
| |10.0.0.1
IPv4 datagram 1 | |
| |
v |10.0.0.2
+---------|---------+
| | |
| home router |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
| |||2001:db8:0:1::1
IPv6 datagram 2| |||
| |||<-IPv4-in-IPv6 softwire
-----|-|||-------
/ | ||| \
| ISP core network |
\ | ||| /
-----|-|||-------
| |||
| |||2001:db8:0:2::1
+------|-|||--------+
| | AFTR |
| v ||| |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
| |192.0.2.1
IPv4 datagram 3 | |
| |
-----|--|--------
/ | | \
| Internet |
\ | | /
-----|--|--------
| |
v |198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+

Figure 2: Outbound Datagram
Datagram (数据报)Header field (首部字段)Contents (内容)
IPv4 datagram 1IPv4 Dst198.51.100.1
IPv4 Src10.0.0.1
TCP Dst80
TCP Src10000
IPv6 datagram 2IPv6 Dst2001:db8:0:2::1
IPv6 Src2001:db8:0:1::1
IPv4 Dst198.51.100.1
IPv4 Src10.0.0.1
TCP Dst80
TCP Src10000
IPv4 datagram 3IPv4 Dst198.51.100.1
IPv4 Src192.0.2.1
TCP Dst80
TCP Src5000

Datagram Header Contents (数据报首部内容)

当 Dual-Stack Lite 家庭路由器收到数据报 1 时, B4 元素将其封装为数据报 2 并通过软线转发至 Dual-Stack Lite 运营商级 NAT.

当 AFTR 中的隧道集中器收到数据报 2 时, 它将 IPv4 数据报转发给 NAT, NAT 根据其 NAT 表确定在软线上收到且 TCP 源端口为 10000 的数据报应转换为数据报 3, 其 IPv4 源地址为 192.0.2.1, TCP 源端口为 5000.

图 3 显示在 AFTR 收到的入向报文. 当 AFTR 中的 NAT 功能收到数据报 1 时, 它在转换表中查找 IP/TCP 目的信息. 在 图 3 的示例中, NAT 将 TCP 目的端口改为 10000, 将 IP 目的地址设为 10.0.0.1, 并将数据报转发至软线. 家庭路由器中的 B4 从入向软线数据报中解封装 IPv4 数据报并将其转发给主机.

                  +-----------+
| Host |
+-----+-----+
^ |10.0.0.1
IPv4 datagram 3 | |
| |
| |10.0.0.2
+---------|---------+
| +-+-+ |
| home router |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
^ |||2001:db8:0:1::1
IPv6 datagram 2 | |||
| |||<-IPv4-in-IPv6 softwire
-----|-|||-------
/ | ||| \
| ISP core network |
\ | ||| /
-----|-|||-------
| |||
| |||2001:db8:0:2::1
+------|-|||--------+
| | AFTR |
| v ||| |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
^ |192.0.2.1
IPv4 datagram 1 | |
| |
-----|--|--------
/ | | \
| Internet |
\ | | /
-----|--|--------
| |
| |198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+

Figure 3: Inbound Datagram
Datagram (数据报)Header field (首部字段)Contents (内容)
IPv4 datagram 1IPv4 Dst192.0.2.1
IPv4 Src198.51.100.1
TCP Dst5000
TCP Src80
IPv6 datagram 2IPv6 Dst2001:db8:0:1::1
IPv6 Src2001:db8:0:2::1
IPv4 Dst10.0.0.1
IPv4 Src198.51.100.1
TCP Dst10000
TCP Src80
IPv4 datagram 3IPv4 Dst10.0.0.1
IPv4 Src198.51.100.1
TCP Dst10000
TCP Src80

Datagram Header Contents (数据报首部内容)

B.1.2 Translation Details (转换细节)

AFTR 中的 NAT 在软线/端口对与 IPv4 地址/端口对之间进行转换. 对从设备外部接口以及从设备上软线端点收到的 IPv4 数据报应用相同转换.

在 图 2 中, AFTR 上的转换器网络接口位于互联网侧, 软线接口连接到 Dual-Stack Lite 家庭路由器. AFTR 转换器配置如下:

Network interface (网络接口): 将 IPv4 目的地址与 TCP 目的端口转换为软线标识符与 TCP 目的端口

Softwire interface (软线接口): 将软线标识符与 TCP 源端口转换为 IPv4 源地址与 TCP 源端口

图 3 中转换的工作方式如下:

  • 数据报 1 在 AFTR 转换器网络接口上收到. 转换器在其转换表中查找 IPv4 地址/端口对, 将 IPv4 目的地址重写为 10.0.0.1, 将 TCP 源端口重写为 10000, 并将数据报转发至软线.

  • IPv4 数据报在 Dual-Stack Lite 家庭路由器的 B4 上收到. B4 功能提取 IPv4 数据报, Dual-Stack Lite 家庭路由器将数据报 3 转发给主机.

Softwire-Id/IPv4/Prot/PortIPv4/Prot/Port
2001:db8:0:1::1/10.0.0.1/TCP/10000192.0.2.1/TCP/5000

Dual-Stack Lite Carrier-Grade NAT Translation Table (Dual-Stack Lite 运营商级 NAT 转换表)

Softwire-Id 是分配给 Dual-Stack Lite CPE 的 IPv6 地址. 位于同一 Dual-Stack Lite 家庭路由器后的主机共享同一 Softwire-Id. 源 IPv4 地址是 Dual-Stack 家庭路由器分配的 RFC 1918 地址, 在 CPE 后的各主机之间唯一. AFTR 将收到源 IPv4 地址在同一软线隧道中不同的分组. AFTR 将 Softwire-Id 与 IPv4 地址/端口 Softwire-Id, IPv4+Port 组合, 以唯一标识位于同一 Dual-Stack Lite 家庭路由器后的主机.

B.2 Host-Based Architecture (基于主机的架构)

该架构面向大规模新部署的实现 Dual-Stack Lite 接口的具备双栈能力的设备.

考虑一种场景: Dual-Stack Lite 主机设备直接连接到服务提供商网络. 主机设备具备双栈能力, 但仅配置全局 IPv6 地址. 此外, 主机设备将预配置一个知名 IPv4 不可路由地址, 见第 10 节 (IANA Considerations). 该知名 IPv4 不可路由地址类似于 127.0.0.1 环回地址. 每个实现 Dual-Stack Lite 的主机设备都将预配置相同地址. 该地址将在设备访问 IPv4 业务时用于源发 IPv4 数据报. 此外, 主机设备将创建通往 AFTR 的 IPv4-in-IPv6 软线隧道. 运营商级 NAT 将位于服务提供商网络中.

当设备访问 IPv6 业务时, 设备将 IPv6 数据报原生发送至默认网关.

当设备访问 IPv4 业务时, 它将使用知名不可路由 IPv4 地址作为源生成 IPv4 数据报. 然后, 主机设备将 IPv4 数据报封装在 IPv4-in-IPv6 软线隧道内, 并将 IPv6 数据报发送至 AFTR. 当 AFTR 收到 IPv6 数据报时, 它将解封装 IPv6 首部并对源地址执行 IPv4 到 IPv4 的 NAT.

该场景在有线与无线网络中均可工作. 典型的无线设备将直接连接到服务提供商, 中间无 CPE.

如 图 4 所示, 该 Dual-Stack Lite 部署模型包含三个组件: Dual-Stack Lite 主机, AFTR, 以及主机中软线发起方 B4 与 AFTR 中软线集中器之间的软线. 假定 Dual-Stack Lite 主机具有 IPv6 业务, 可与 AFTR 交换 IPv6 流量.

AFTR 执行 IPv4-IPv4 NAT 转换, 通过全局 IPv4 地址池对多路订户进行复用. Dual-Stack Lite 主机使用的重叠 IPv4 地址空间通过隧道端点标识加以区分.

在此情况下, Dual-Stack Lite 主机在 B4 接口上配置来自 IANA 定义的知名范围 192.0.0.0/29 的 IPv4 地址 192.0.0.2. 它还将保留范围中的第一个非保留 IPv4 地址 192.0.0.1 配置为其默认网关地址.

              +-------------------+
| |
| Host 192.0.0.2 |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
|||2001:db8:0:1::1
|||
|||<-IPv4-in-IPv6 softwire
|||
-------|||-------
/ ||| \
| ISP core network |
\ ||| /
-------|||-------
|||
|||2001:db8:0:2::1
+--------|||--------+
| AFTR |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
|192.0.2.1
|
--------|--------
/ | \
| Internet |
\ | /
--------|--------
|
|198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+

Figure 4: Host-Based Architecture

所得方案接受 IPv4 数据报, 将其转换为 IPv4-in-IPv6 软线数据报以在软线上传输. 在对应端点, 解封装 IPv4 数据报, 并基于来自软线的转换插入转换后的 IPv4 地址.

B.2.1 Example Message Flow (示例报文流)

在 图 5 所示示例中, AFTR 中的转换表配置为在 IP/TCP (192.0.0.2/10000) 与 IP/TCP (192.0.2.1/5000) 之间转发. 也就是说, 从地址 192.0.0.2 的主机收到, 使用 TCP 目的端口 10000 的数据报, 将被转换为在互联网中具有 IPv4 源地址 192.0.2.1 与 TCP 源端口 5000 的数据报.

              +-------------------+
| |
|Host 192.0.0.2 |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
| |||2001:db8:0:1::1
IPv6 datagram 1| |||
| |||<-IPv4-in-IPv6 softwire
| |||
-----|-|||-------
/ | ||| \
| ISP core network |
\ | ||| /
-----|-|||-------
| |||
| |||2001:db8:0:2::1
+------|-|||--------+
| | AFTR |
| v ||| |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
| |192.0.2.1
IPv4 datagram 2 | |
-----|--|--------
/ | | \
| Internet |
\ | | /
-----|--|--------
| |
v |198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+

Figure 5: Outbound Datagram
Datagram (数据报)Header field (首部字段)Contents (内容)
IPv6 datagram 1IPv6 Dst2001:db8:0:2::1
IPv6 Src2001:db8:0:1::1
IPv4 Dst198.51.100.1
IPv4 Src192.0.0.2
TCP Dst80
TCP Src10000
IPv4 datagram 2IPv4 Dst198.51.100.1
IPv4 Src192.0.2.1
TCP Dst80
TCP Src5000

Datagram Header Contents (数据报首部内容)

当发送 IPv4 分组时, Dual-Stack Lite 主机将其封装为数据报 1 并通过软线转发至 AFTR.

当它收到数据报 1 时, AFTR 中的集中器将 IPv4 数据报交给 NAT, NAT 根据其转换表确定在软线上收到且 TCP 源端口为 10000 的数据报应转换为数据报 3, 其 IPv4 源地址为 192.0.2.1, TCP 源端口为 5000.

图 6 显示在 AFTR 收到的入向报文. 当 AFTR 中的 NAT 功能收到数据报 1 时, 它在转换表中查找 IP/TCP 目的信息. 在 图 6 的示例中, NAT 将 TCP 目的端口转换为 10000, 将 IP 目的地址设为 192.0.0.2, 并将数据报转发至软线. 主机内的 B4 从入向软线数据报中解封装 IPv4 数据报, 并将其转发至主机的应用层.

              +-------------------+
| |
|Host 192.0.0.2 |
|+--------+--------+|
|| B4 ||
|+--------+--------+|
+--------|||--------+
^ |||2001:db8:0:1::1
IPv6 datagram 2 | |||
| |||<-IPv4-in-IPv6 softwire
| |||
-----|-|||-------
/ | ||| \
| ISP core network |
\ | ||| /
-----|-|||-------
| |||
| |||2001:db8:0:2::1
+------|-|||--------+
| AFTR |
| | ||| |
|+--------+--------+|
|| Concentrator ||
|+--------+--------+|
| |NAT| |
| +-+-+ |
+---------|---------+
^ |192.0.2.1
IPv4 datagram 1 | |
-----|--|--------
/ | | \
| Internet |
\ | | /
-----|--|--------
| |
| |198.51.100.1
+-----+-----+
| IPv4 Host |
+-----------+

Figure 6: Inbound Datagram
Datagram (数据报)Header field (首部字段)Contents (内容)
IPv4 datagram 1IPv4 Dst192.0.2.1
IPv4 Src198.51.100.1
TCP Dst5000
TCP Src80
IPv6 datagram 2IPv6 Dst2001:db8:0:1::1
IPv6 Src2001:db8:0:2::1
IPv4 Dst192.0.0.2
IPv4 Src198.51.100.1
TCP Dst10000
TCP Src80

Datagram Header Contents (数据报首部内容)

B.2.2 Translation Details (转换细节)

AFTR 转换步骤与附录 B.1.2 相同. 一个区别在于, 所有基于主机的 B4 将使用同一知名 IPv4 地址 192.0.0.2. 为唯一标识基于主机的 B4, AFTR 将使用基于主机的 B4 的 IPv6 地址, 该地址对主机唯一.

Softwire-Id/IPv4/Prot/PortIPv4/Prot/Port
2001:db8:0:1::1/192.0.0.2/TCP/10000192.0.2.1/TCP/5000

Dual-Stack Lite Carrier-Grade NAT Translation Table (Dual-Stack Lite 运营商级 NAT 转换表)

Softwire-Id 是分配给 Dual-Stack 主机的 IPv6 地址. 每个主机具有唯一的 Softwire-Id. 源 IPv4 地址为知名 IPv4 地址之一. AFTR 可能从不同软线隧道收到来自不同主机, 但源 IPv4 地址相同 (均为该知名地址) 的分组. 与网关架构类似, AFTR 将 Softwire-Id 与 IPv4 地址/端口 Softwire-Id, IPv4+Port 组合, 以唯一标识各个主机.