【问题标题】:Connectivity error between openvz containersopenvz 容器之间的连接错误
【发布时间】:2014-04-03 09:36:47
【问题描述】:

我有 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) - Cont2 (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 为空,默认接受。

有什么建议吗?

【问题讨论】:

  • @Odedra:感谢您尝试改进帖子,但请记住,代码跨度 (like this) 不是 旨在突出您认为重要的事情。在这种情况下,没有必要。代码跨度仅用于格式化句子中的实际代码。
  • @Qantas94Heavy:谢谢你这么好的指导,下次我会好好照顾的。

标签: routing openvz


【解决方案1】:

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

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

【讨论】: