【发布时间】:2017-09-11 23:47:51
【问题描述】:
架构见下图。
我知道有很多类似的问题。但是,在阅读了多篇文章并尝试了一些之后,我仍然无法按要求进行设置。所以我将其作为一个新问题发布。
场景:
- 我有三个容器(c1、c2 和 c3)
- 我有不同的接口,每个接口都在三个容器中运行(eth0 和 peervpnXX)
- c1 有接口:eth0 和 peervpn12
- c2 有接口:eth0 和 peervpn12 和 peervpn23
- c3 有接口:eth0 和 peervpn23
虽然 eth0 接口在同一个子网上,但 peervpnXX 接口在不同的子网上:
- peervpn12 - 10.12.0.0/24
- peervpn23 - 10.23.0.0/24
请注意,peervpnXX 接口是运行在 eth0 之上的隧道接口
现在分配给每个容器的ip_addresses如下:
- c1 : 172.17.0.2 (eth0) 和 10.12.0.2 (peervpn12)
- c2 : 172.17.0.3 (eth0) 和 10.12.0.1 (peervpn12) 和 10.23.0.1 (peervpn23)
- c3 : 172.17.0.4 (eth0) 和 10.23.0.2 (peervpn23)
我要做的是让 c1 通过中间人 c2 与 c3 通信。原则上,我试图:
- 通过c2将用于10.23.0.0/24的数据包从c1路由到c3。
- 通过c2将用于10.12.0.0/24的数据包从c3路由到c1。
我在 c1 和 c3 上创建了一个路由规则,以将数据包发送到子网 10.23.0.0/24 和 10.12.0.0 /24 通过接口 peervpn12 和 peervpn23。但是,我认为我缺少一些需要在 c2 上设置的转发规则。
PS:假设“eth0”接口被锁定,仅作为底层接口用于路由“peervpnXX”接口的数据包
非常感谢任何有关解决此问题的帮助。
先感谢您。
沙比尔
【问题讨论】:
标签: networking routing containers iptables ifconfig