多个具有相同 IP 的 VPN 设备

多个具有相同 IP 的 VPN 设备

嗯,这是一个相当尴尬的询问,我对此非常悲观,但让我们看看社区会怎么说。

场景:
一个服务器连接到多个 VPN 端点并执行各种操作。

问题:
同一个 IP 可以分配给多个设备。

挑战:
能够通过具有相同 IP 地址的每个设备成功地路由流量。

在以下情形中:

    tun0:192.168.200.10 192.168.200.1
    tun1:192.168.200.11 192.168.200.1
    tun2:192.168.200.12 192.168.200.1

没问题。使用 Linux 的基于源的路由功能运行良好。但是,由于我无法从客户端控制要分配给我的 IP 地址,因此我可能会得到:

    tun0:192.168.200.10 192.168.200.1
    tun1:192.168.200.10 192.168.200.1
    tun2:192.168.200.10 192.168.200.1

问题来了,有没有办法可以控制每个接口的路由表,而不管 IP 是什么?

目前,每个启动的接口都会在/etc/iproute2/rt_tables例如:

    100 tun0
    101 tun1
    102 tun2

然后针对每个设备执行以下操作:

    ip 规则从 192.168.200.X iif tunX 表 tunX 添加
    ip route 通过 192.168.200.1 表添加默认 tunX

为了测试它,我使用了“curl --interface tunX”。
第一个接口或多或少“赢得”了路由决策。
我希望正确的接口获胜。
从理论上讲,我很清楚我正在做一些很多人认为错误的事情。但是我想知道是否有办法解决这个问题,因为我认为有。
有什么想法吗?也许 iptables fwmark 可以提供帮助?

答案1

你不能在两个不同的接口上使用相同的 IP 地址,除非某物中断,并且没有好的“解决方法”。一个或多个网络将必须重新编号。

(哦,现在是时候为自己获取一些没有这个问题的 IPv6 了。)

相关内容