我在 debian squeeze 服务器中安装了两个 linux 容器(lxc),因此环境如下:
物理服务器:192.168.2.200 Linux 容器 1:192.168.2.201 Linux 容器 2:192.168.2.202 物理服务器与容器之间的桥接:10.0.0.100
我使用 parprouted、uml-utilities 和 bcrelay 包在物理服务器和 lxc 容器之间创建了桥梁。
我在 /etc/network/if-up.d 中有一个通过 post-up 命令执行的脚本。以下是该脚本的内容:
brctl addbr br0
tunctl -t tap0
brctl addif br0 tap0
ip addr add 10.0.0.100/32 dev br0
ip link set br0 up
parprouted eth0 br0
bcrelay -d -i br0 -o eth0
# Linux container 1
route add -host 192.168.2.201 dev br0
# Linux container 2
route add -host 192.168.2.202 dev br0
sysctl net.ipv4.ip_forward=1
到目前为止一切顺利。Linux 容器可以毫无问题地访问互联网,物理服务器可以 ping 和 ssh 到两个 Linux 容器。Linux 容器可以 ping 和 ssh 到物理服务器。
问题是我无法从 Linux 容器 2 访问 Linux 容器 1,反之亦然。它们无法互相 ping 通,也无法互相 ssh 连接。
我离这个目标已经很近了。
我还需要做什么才能使 Linux 容器相互通信?
提前致谢!
干杯。
答案1
似乎默认的 Squeeze 内核(2.6.32)有问题。
使用与反向移植内核(3.2)完全相同的设置将允许您直接 ping/连接主机。