在路由 IPv6 时对 IPv4 进行 NAT

Why*_*ugo 5 linux ipv6 bridge

我有以下设置:

client(s)  <---> (eth0) router (eth1) <---> wan
Run Code Online (Sandbox Code Playgroud)

我有一个静态 IPv4 地址和一个 /48 IPv6 地址块。我需要将所有客户端连接到 (wan)。每个客户端都将拥有自己的公共 IPv6。同时,我需要将这些相同的客户端 NAT 到 (wan)。

所有与 IPv4 相关的内容和 NAT 都运行良好。与 (eth0)<->(clients)> 的 IPv6 通信工作正常,来自 (eth1)<->(wan) 的 IPv6 通信工作正常。

为了给我所有的客户提供 IPv6,我想了太多的选择:

  • 将路由器作为网关,每个接口上都有不同的IP。这听起来像是我需要告诉我的 ISP 通过该单个 IP 路由整个块,所以这不是一个真正的选择。

  • 向/从 eth0<->eth1 透明地传递 IPv6 数据包,因此所有客户端都可以与上游网关通信(如果不是需要保持 IPv4 兼容,我实际上会在这里有一个交换机)。

所以,既然我选择了第二个选择,我有疑问:如何透明地将所有 IPv6 流量从 eth0 传递到 eth1?我需要的是一个 3 级桥,但是 linux 的 bridgeutils 创建了一个 2 级桥(它也可以桥接 ipv4,我不能拥有它)。

这是一个 DD-WRT 设备,但它几乎是一个嵌入式 linux,因此欢迎大多数适用于 linux 的建议。

谢谢。

小智 1

您是否尝试对您的 ipv6 连接进行 NAT?如果是这样,IPv6 NAT 的动机是什么?你确实有 /48 块,这已经足够了。

如果您的路由器支持 IPv6,那么只需设置正确的 IPv6 路由即可。IPv6 路由与 IPv4 是分开的,因此与 IPv4 上已有的路由不会发生冲突。