2个独立连接和路由的VPN隧道

我们曾经有1个VPN隧道通过1个Internet连接,将2个数据中心连接到1个虚拟LAN(10.xxx)。 路线表等非常简单

现在我们在第二个独立的物理连接上增加了另一个通道,处理路由变得非常困难。 将新的连接全部路由很容易,但是如果我们只想将特定的主机路由到主机或子网到子网呢?

eg client1-site1 <--> vpn-on-site1 <--tun1--> vpn-on-site2 <--> service1-on-site2 client2-site1 <--> vpn-on-site1 <--tun2--> vpn-on-site2 <--> service2-on-site2 

请注意,每边只有1个VPN节点。 我们设法做的是将数据包从client2-site1正确路由到service2-on-site2,但是返回的数据包有时会传送到tun1 …

你需要ip规则+ iptables和ip路由表。 2路线表:

 1st -- with default output via tun1. 2nd -- with default output via tun2. 

当在tun1 – > iptables mangle上接收到数据包时,将其标记为0x1,然后ip规则将它通过标记0x1路由到第一个路由表。 所以当答案将被给予包将通过接口去接收它,而不是默认的一个。

tun2的相同逻辑。

我不知道,如果这有帮助,但也尝试与rp_filter = 0(这个内核选项接收数据包接收,有助于局域网)

我做了类似的事情,这里是文章发现并重新发布在我的老lj。 没有发现源。

检查这篇文章,我转贴在lj上