据我了解,无状态 NAT 使用 1:1 转换,这意味着它需要一个 IPv4 地址对应一个 IPv6 地址,反之亦然,因此不保留 IPv4。由于 CLAT 应该是本地网络的路由器/网关,这意味着CLAT的本地端是私有 IPv4 地址(RFC1918),但据我了解,包含私有 IPv4 地址的 IPv4 嵌入 IPv6 应该由接收方或中间方(NAT64 转换器)。
为什么 CLAT 使用无状态 NAT64?
据我了解,无状态 NAT 使用 1:1 转换,这意味着它需要一个 IPv4 地址对应一个 IPv6 地址,反之亦然,因此不保留 IPv4。由于 CLAT 应该是本地网络的路由器/网关,这意味着CLAT的本地端是私有 IPv4 地址(RFC1918),但据我了解,包含私有 IPv4 地址的 IPv4 嵌入 IPv6 应该由接收方或中间方(NAT64 转换器)。
为什么 CLAT 使用无状态 NAT64?
据我了解,包含私有 IPv4 地址的 IPv4 嵌入 IPv6 应该由接收方或中间方(NAT64 转换器)丢弃
这仅适用于使用众所周知的前缀 ( 64:ff9b::/96
):
3.1。使用知名前缀的限制
众所周知的前缀不得用于表示非全局 IPv4 地址,例如在 [ RFC1918 ] 中定义或在[RFC5735] 第 3 节中列出的地址。地址转换器不得转换地址由众所周知的前缀和非全局 IPv4 地址组成的数据包;他们必须丢弃这些数据包。
众所周知的前缀并不是唯一可以使用的前缀(参见我在下图段落中的亮点):
2.2. IPv4 嵌入式 IPv6 地址格式
IPv4 转换的 IPv6 地址和 IPv4 可翻译的 IPv6 地址遵循相同的格式,此处描述为 IPv4 嵌入的 IPv6 地址格式。IPv4 嵌入式 IPv6 地址由可变长度前缀、嵌入式 IPv4 地址和可变长度后缀组成,如下图所示,其中 PL 指定前缀长度:
+--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |PL| 0-------------32--40--48--56--64--72--80--88--96--104---------| +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |32| prefix |v4(32) | u | suffix | +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |40| prefix |v4(24) | u |(8)| suffix | +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |48| prefix |v4(16) | u | (16) | suffix | +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |56| prefix |(8)| u | v4(24) | suffix | +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |64| prefix | u | v4(32) | suffix | +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |96| prefix | v4(32) | +--+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ Figure 1
在这些地址中,前缀应该是部署地址转换器的组织所独有的“众所周知的前缀” 或“网络特定的前缀”。前缀只能具有以下长度之一:32、40、48、56、64 或 96。(众所周知的前缀长度为 96 位,只能用于表的最后一种形式。)