第一个 6to4:
6to4 允许 IPv6 数据包通过 IPv4 传输。它用于连接两个 IPv6“孤岛” - 而不是使 IPv4 能够与 IPv6 通信或反之亦然。IPv6 地址 2002:AABB:CCDD:: 变为 IPv4 地址 AA.BB.CC.DD,然后您将 IPv4 数据包报头粘贴到 IPv6 报头上,并通过 IPv4 网络转发该数据包。
如果我将数据包从 2002:AABB:CCDD:: 空间中的一个 IPv6 岛发送到另一个,我的本地 6to4 边界路由器将接收该数据包,将其包装在 IPv4 中并发送到 AA.BB.CC.DD 并在那里转发。AA.BB.CC.DD 是岛上的另一个 6to4 边界路由器,它会解开 IPv4 并将其发送到 IPv6 地址。
如果我将数据包从 2002:AABB:CCDD:: 中的 IPv6 岛发送到 2054::45 等本地 IPv6 地址,它将到达我的边界路由器,该路由器将其包装在 IPv4 中并发送到 192.88.99.1 - IPv4 任播 6to4 中继路由器地址。最近的中继路由器(任何人都可以运行)将获取它并解包,然后将其转发到指定的 IPv6 地址。为了回复,2054::45 将回复我的 2002:: 地址,该地址将被路由到最近的中继路由器(该路由器宣传它处理 2002::/16)。然后,中继路由器将把它包装在 IPv4 中并发送到 AA.BB.CC.DD 地址,然后它到达我的边界路由器,解包并发送给我。
我想我理解得没错。我遇到的问题在于第 6 个。
从我的 IPv6 岛向另一个 6rd 岛发送数据包与向本地 IPv6 地址发送数据包相同 - 对吗?由于 ISP 的 6rd 路由器位于其分配的 IPv6 地址空间中,因此 IPv6 路由器不知道它是 6rd 岛。
如果我尝试联系的第 6 个岛屿未连接到更广泛的 IPv6 互联网 - 就无法到达它,对吗?它需要通过 IPv4,但我的第 6 个边界路由器不知道如何将任意 IPv6 地址转换为 IPv4 地址……是吗?而在反向行程中,IPv6 互联网中没有第 6 个中继路由器将 IPv6 数据包转换为看起来像普通 IPv6 地址的 IPv4 地址并将其发送到正确的位置。
在单个 ISP 内部:
6rd island - [6rd Border Router] - IPv4 ISP Internet - [6rd Border Router] - 6rd Island
这可以正常工作,因为 ISP 控制路由并可以将路由添加到 6rd 路由器,说“如果您尝试访问 2054::something,请通过 IPv4 将其发送到 abcd,但我不明白 6rd 如何在更广泛的 IPv4 或 IPv6 互联网上进行路由。
答案1
6rd 仅用于 ISP 运营的边界中继 (BR) 和用户站点的客户路由器 (CPE) 之间。用户在内部使用原生 IPv6。其前缀是根据外部 IPv4 地址(部分)和 ISP 提供的 IPv6 前缀计算得出的。这不是 6to4 的特殊前缀,而是 ISP 从区域互联网注册中心获得的普通前缀。CPE 将原生 IPv6 流量封装在 IPv4 中,并通过 ISP IPv4 主干将其发送到 BR。在那里,打包的流量被解封装并发送到真正的原生 IPv6 互联网。
因此,6rd 数据包永远不会通过公共互联网传输。您只会在 CPE 和 BR 之间看到它们。在用户的内部网络和互联网上,它只是普通的本地 IPv6 流量。
PS:为 CPE 提供正确的设置(IPv6 前缀、BR 的地址、IPv4 地址的哪一部分包含在 IPv6 前缀中)通常使用 IPv4 的 DHCP 完成,但大多数 CPE 上也可以进行手动配置。