我正在尝试设置 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。