我已经在 ubuntu server 12.04 中安装了 LXC,使用此链接。它已成功安装,我可以使用 ubutu/ubuntu 作为用户名和密码登录。然后我尝试为 LXC 容器设置网络。
我在 /etc/network/interface 中将其更改为
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 125.67.43.100
netmask 255.255.255.0
broadcast 178.33.40.255
gateway 125.67.43.1
/var/lib/lxc/mycontainer/config 的内容是:
lxc.utsname = mycontainer
lxc.mount = /var/lib/lxc/test/fstab
lxc.rootfs = /var/lib/lxc/test/rootfs
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.name = eth0
lxc.network.veth.pair = vethmycontainer
lxc.network.ipv4 = 125.67.43.102
lxc.network.hwaddr= 02:00:00:86:5b:11
lxc.devttydir = lxc
lxc.tty = 4
lxc.pts = 1024
lxc.arch = amd64
lxc.cap.drop = sys_module mac_admin mac_override
lxc.pivotdir = lxc_putold
容器等/网络/接口
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 125.67.43.102
netmask 255.255.255.0
broadcast 178.33.40.255
gateway 125.67.43.1
这是我的配置
------------- ----------- -----------
| LXC | -----> | Host OS | ------> | Gateway |
| Container | | Ubuntu | | |
------------- ----------- -----------
eth0 125.67.43.102 br0 <-> eth0 NAT GW:
gw 125.67.43.1 br0 125.67.43.100 125.67.43.1
gw 125.67.43.1
Ping 125.67.43.100 ping 125.67.43.1
ok OK
Ping 125.67.43.1 ping 125.67.43.102
FAIL OK
LXC 容器不了解主机外部,知道我这里犯了什么错误吗?
附加信息
用户@host$cat /proc/sys/net/ipv4/ip_forward 为 1
我已经添加了 Nat 规则
ip_tables -t nat -A POSTROUTING -s 125.67.43.102 -o eth0 -j MASQUERADE
笔记:我上面使用的 IP 不是原创的
答案1
也许这个链接可以回答你的问题: https://wiki.debian.org/LXC/SimpleBridge
似乎您应该在主机上配置 br0 而不是 eth0(示例中的第一个代码块)。
但我只是猜测!
您的广播地址与网络不匹配,在上面的例子中我将使用 125.67.43.255。
答案2
您的 br0 应该是容器的网关。还请检查 lxc.network.ipv4 语法。也许您应该输入子网掩码。