我的ISP给我一个IPv4地址和一个IPv6前缀,这个前缀被细分为几个网络。
+--------------+
| | eth1
| |---------- <IPv6 network>
| |
eth0 | Linux Router | eth2
ISP ----------| |---------- <IPv6 network>
| |
| | eth3
| |---------- <IPv6 network>
+--------------+碰巧的是,连接到IPv6网络的eth1网络中的一个节点将受益于拥有IPv4地址。
我似乎希望路由器桥接IPv4流量,并路由IPv6流量。不是吗?
我听说过proxy-ARP,但据我所知,路由器需要另一个IPv4地址,否则它不会尝试与ISP的v4流量交互,对吗?同样,我只有一个v4地址。
我认为,普通桥接也不是一种选择,因为这是第二层,它无法区分IPv4流量和IPv6流量。如果我桥接IPv4,也可以桥接IPv6,这会破坏当前的IPv6设置。
我是否被迫将流量NAT到专用网络,并从该网络为节点分配另一个地址?还有更直接的选择吗?
发布于 2018-03-23 22:17:14
(所有这些命令都应该在Linux路由器上执行。)
步骤1:正常创建桥接器,就像要在两个接口之间路由所有通信量一样。
ip link add name br0 type bridge
ip link set br0 up
ip link set eth0 master br0
ip link set eth1 master br0第二步:通过退潮规则,告诉内核IPv4流量应该被桥接,IPv6流量应该被路由。
ebtables -t broute -A BROUTING -p ipv4 -j ACCEPT
ebtables -t broute -A BROUTING -p ipv6 -j DROP(在BROUTING链中,“接受”表示桥,"DROP“表示忽略桥)。
Linux路由器的任何接口都不需要IPv4地址。
这个解决方案不应该在Virtualbox VM上进行测试,因为在某个地方有一些桥接虫会阻止br0工作。
https://unix.stackexchange.com/questions/432967
复制相似问题