通过 ip 规则和 ip 路由选择 IPv6 源地址

通过 ip 规则和 ip 路由选择 IPv6 源地址

我正在尝试设置 Linux 防火墙和 VPN 设置,以允许主机通过 WIFI 或 VPN 进行通话。 VPN 连接远程端的防火墙将允许 VPN 上的数据包通过,但不允许通过 WIFI,这是可行的。在远程计算机上,我使用(已清理)处理传入数据包:

# ip -4 rule add from <myblock> table <mytable>
# ip -4 route add to <remoteblock> src <myaddr> dev <vpn-dev> table <mytable>
# ip -6 rule add from <myblock> table <mytable>
# ip -6 route add to <remoteblock> src <myaddr> dev <vpn-dev> table <mytable>

这成功地处理了传入连接并使它们对称。 (即 VPN 上收到的数据包不会在 WIFI 上回复,反之亦然。)

对于 IPv4,我添加:

# ip -4 rule add from 0.0.0.0/32 table <mytable>

传出数据包通过 VPN 路由到我的受保护网络。

但是,当我尝试时:

# ip -6 rule add from ::/128 table <mytable> 

这没有帮助。数据包从 WIFI 地址发送。需要调用什么神奇的 cookie 才能使其工作?或者 IPv6 做了完全不同的事情吗?

编辑: 我补充说:

# ip -6 route add not from <wifinet>/64 table <mytable>

一切正常。所以有一个尚未明确地址在那里,但它不是::。有什么建议么?

编辑:好吧,我自己一直很困惑(这就是为什么我回滚然后恢复了上次编辑的原因),但是:事实证明:

# ip -6 route add not from 0000::/1 table <mytable>
# ip -6 route add not from 8000::/1 table <mytable>

有效,但是

# ip -6 route add not from 0000::/0 table <mytable>

不,因为它变成“不是来自任何”。

事实证明:

# ip -6 route add from 0000::/0 table <mytable>

似乎也有效......就我个人而言,我认为不应该(尽管我不太确定为什么)。

我的 VPN 位于 FC00::/7 中,WIFI 位于 2000::/3 中,这可能会有所帮助,我似乎确实需要强制src强制正确使用 VPN。

相关内容