那么,这是一个相当尴尬的调查,我对此非常悲观,但让我们看看社区有什么话要说。
场景:
一个服务器连接到多个VPN端点做各种各样的东西。
问题:
相同的IP可以分配给多个设备。
挑战:
能够通过具有相同IP地址的每台设备成功路由stream量。
在以下情况下:
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
问题来了。 有没有一种方法来控制每个接口的路由表,而不pipeIP?
目前,每个上行的接口都在/ etc / iproute2 / rt_tables中获得另一个条目,例如:
100 tun0 101 tun1 102 tun2
然后为每个设备以下:
ip规则添加从192.168.200.X iif tunX表tunX IP路由添加默认通过192.168.200.1表tunX
为了testing它,我使用了“curl –interface tunX”。
第一个接口或多或less地“赢”了路由决策。
我想要正确的界面取胜。
从理论上讲,我很清楚自己正在做的事情很多人会认为是错误的。 不过,我想知道是否有解决办法,因为我认为是有的。
有关它的任何想法? 也许iptables fwmark可以帮助,如果有的话?
您不能在两个不同的接口上使用相同的IP地址,而不会有任何中断,并且没有好的“解决方法”。 一个或多个networking将不得不重新编号。
(哦,现在是时候让自己一些IPv6,这没有这个问题。)