0

我有 2 个 HN(每个都有 2 个上行链路和 3 个 IP 地址范围),上面有多个容器。

HN1 和 HN2 可以到达所有容器。来自同一地址范围的容器可以相互访问。但是来自不同 HN 的容器不能相互访问,如果它们的 IP 地址来自不同的范围。

网络结构:

Cont1 (5.yy.yy.171) - HN1 (5.yy.yy.162, 85.xx.xx.51) - 开关 - HN2 (5.yy.yy.163, 85.xx.xx.52) - 续 2 (85.xx.xx.54)

来自 HN2 的路由(它们在 HN1 上是相同的,唯一的区别是它的 IP 地址):

# ip ru l
0:      from all lookup local
1:      from all lookup main
32748:  from 5.yy.yy.160/27 lookup 120
32749:  from 85.xx.xx.18/28 lookup 130
32750:  from 85.xx.xx.48/28 lookup 140
32766:  from all lookup 130
32767:  from all lookup default

# ip ro l table main: 
5.yy.yy.189 dev venet0  scope link
5.yy.yy.175 dev venet0  scope link 
85.xx.xx.54 dev venet0  scope link 
85.xx.xx.55 dev venet0  scope link 
85.xx.xx.48/28 dev eth0  proto kernel  scope link  src 85.xx.xx.52 
85.xx.xx.16/28 dev eth0  proto kernel  scope link  src 85.xx.xx.22 
5.yy.yy.160/27 dev eth1  proto kernel  scope link  src 5.yy.yy.163 

# ip ro l table 120: 
5.yy.yy.160/27 dev eth1  scope link  src 5.yy.yy.163
default via 5.yy.yy.161 dev eth1

# ip ro l table 130: 
85.xx.xx.16/28 dev eth0  scope link  src 85.xx.xx.22 
default via 85.xx.xx.17 dev eth0 

# ip ro l table 140: 
85.xx.xx.48/28 dev eth0  scope link  src 85.xx.xx.52 
default via 85.xx.xx.49 dev eth0 

iptables 为空,默认接受。

有什么建议么?

4

1 回答 1

0

解决方案非常简单,除了源路由之外,我还需要一个非对称路由。

设置 rp_filter=0 解决了我的问题。

于 2014-04-04T08:25:55.857 回答