具有多个IP地址的LXC桥接器

在尝试使用LXC容器设置小型服务器时,遇到了一个问题:

我想分配4个不同的IP地址:1个主机地址和3个不同networking地址的容器。

使用虚拟接口(eth0:1,eth0:2等)设置4个IP地址完全没有问题,但是LXC不支持这些虚拟接口。

主机的IP地址是2.2.2.2(networking掩码255.255.252.0)。 3个容器IP地址分别为33.33.33.33,33.33.33.44和33.33.33.55。 所有的networking掩码:255.255.255.255。

我在为主机和容器build立networking的时候挣扎着。 其他post解释了类似的设置,使用不同但可控制的子网( 将LXC容器桥接到具有不同IP范围的主机networking )或build议使用虚拟接口( 同一主机上同一子网内的多个IP地址 ),这是我们不能在这里完成的。

这是我的configuration:

主机:接口文件

source /etc/network/interfaces.d/* auto lo iface lo inet loopback auto br0 iface br0 inet static address 2.2.2.2 netmask 255.255.252.0 broadcast 2.2.2.255 gateway 2.2.2.1 bridge_ports eth0 bridge_fd 0 bridge_maxwait 0 auto br0:1 iface br0:1 inet static address 33.33.33.33 netmask 255.255.255.255 auto br0:2 iface br0:2 inet static address 33.33.33.44 netmask 255.255.255.255 auto br0:3 iface br0:3 inet static address 33.33.33.55 netmask 255.255.255.255 

这是我知道将几个IP地址绑定到一个接口的唯一方法。 网桥需要侦听容器的IP地址来检索数据包,不是吗?

容器:interfaces文件

小文件,因为所有参数都保存在LXCconfiguration中。

 auto lo iface lo inet loopback auto eth0 iface eth0 inet manual 

LXC:networkingconfiguration

这是我的LXCconfiguration文件的networking部分:

 lxc.network.type = veth lxc.network.flags = up lxc.network.link = br0 lxc.network.name = eth0 lxc.network.ipv4 = 33.33.33.33/32 lxc.network.ipv4.gateway = 2.2.2.2 

但是,连接不起作用。 地址被分配给容器,但是从容器发送的IP分组不能到达主机。

这里是iproute的输出:

 root@container:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 2.2.2.2 0.0.0.0 UG 0 0 0 eth0 2.2.2.2 0.0.0.0 255.255.255.255 UH 0 0 0 eth0 root@container:~# ip 1: lo: <LOOPBACK,UP,LOWER_UPmtu 65536 qdisc noqueue state UNKNOWN group link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00: inet 127.0.0.1/8 scope host valid_lft forever preferred_lft inet6 ::1/128 scope valid_lft forever preferred_lft 15: eth0: <BROADCAST,MULTICAST,UP,LOWER_UPmtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether ae:af:7c:e4:b5:4d brd ff:ff:ff:ff:ff: inet 33.33.33.33/32 brd 255.255.255.255 scope global valid_lft forever preferred_lft inet6 fe80::acaf:7cff:fee4:b54d/64 scope valid_lft forever preferred_lft forever 

和主持人给出的细节一样:

 root@host:~# route -n Routing Table Destination Router Genmask Flags Metric Ref Use Iface 2.2.2.0 0.0.0.0 255.255.252.0 U 0 0 0 br0 0.0.0.0 2.2.2.1 0.0.0.0 UG 0 0 0 br0 root@host:~# ip 1: lo: <LOOPBACK,UP,LOWER_UPmtu 65536 qdisc noqueue state UNKNOWN group link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00: inet 127.0.0.1/8 scope host valid_lft forever preferred_lft inet6 ::1/128 scope valid_lft forever preferred_lft 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UPmtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000 link/ether 2e:cf:22:12:dd:e2 brd ff:ff:ff:ff:ff: 16: veth93SMLW: <BROADCAST,MULTICAST,UP,LOWER_UPmtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether dd:c1:1e:68:90:47 brd ff:ff:ff:ff:ff: inet6 fe80::fcc1:1eff:fe68:9047/64 scope valid_lft forever preferred_lft 17: br0: <BROADCAST,MULTICAST,UP,LOWER_UPmtu 1500 qdisc noqueue state UP group default link/ether 4d:cf:22:12:dd:e2 brd ff:ff:ff:ff:ff: inet 2.2.2.2/22 brd 1.1.1.255 scope global valid_lft forever preferred_lft inet 33.33.33.33/32 brd 2.2.2.2 scope global br0: valid_lft forever preferred_lft inet 33.33.33.44/32 brd 3.3.3.3 scope global br0: valid_lft forever preferred_lft inet 33.33.33.55/32 brd 4.4.4.4 scope global br0: valid_lft forever preferred_lft inet6 fe80::829:caff:fece:bbd7/64 scope valid_lft forever preferred_lft forever 

你有没有提示哪个部分的configuration我搞砸了?

谢谢你的帮助!