使用公共 IP 的 LXC 网络

使用公共 IP 的 LXC 网络

我已经在 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 语法。也许您应该输入子网掩码。

相关内容