我正在处理LXC,iptables和路线,此时我甚至不确定我在做什么。为简单起见,iptables中的每个策略都设置为ACCEPT,并且在每个主机或容器的sysctl.conf中将转发设置为1。
我的目标是能够从其主机外部通过LXC容器传递ping请求。让我澄清一下:
假设我有一个客户端C,他想要ping服务器S,但我之间有一个网关G,而G中有一个LXC容器L.
C(eth0 192.168.0.3/24)< ---> (eth0 192.168.0.2/24)G(eth1 192.168.1.3/24)< ---> (eth0 192.168.1.4/24)S
然后,在G里面我们会:(eth0 192.168.0.2/24)< ---> (virbr0 10.0.0.2/24)L(virbr1 10.0.1.3/24)< ---> (eth1 192.168.1.3/24)
所以基本上,我想从C中ping S,但是请求必须通过L(并因此通过G),使用iptables和route来传输。
希望你能帮助我!
答案 0 :(得分:0)
你能分享你这样做的理由吗?这是监测吗?通过NAT进行路由是不必要的错综复杂的。
我建议建立一个桥接网络,而不是NAT-ed网络,其中:
virbr0
与eth0
virbr1
已桥接eth1
这样,您的LXC主机可以使用192.168.0.x
和192.168.1.x
的IP地址(即与eth0
和eth1
位于同一子网中)。
完成后,使用LXC主机作为路由器,在服务器和客户端中创建路由条目。基本上L
取代G
。
我们将192.168.0.10
和192.168.1.10
分配给L
。路由网络将如下所示:
C (192.168.0.3) <--> (192.168.0.10) L (192.168.1.10) <--> S (192.168.1.4)
在发布完整答案之前,请告诉我这是否适合您。这是相当多的配置。