通过 lxc 容器使用主机上的别名 bond 接口

通过 lxc 容器使用主机上的别名 bond 接口

正如标题所述,我该如何编辑 lxc 容器的配置以使用主机上的别名 bond0 接口?这是我现在在 /etc/network/interfaces 文件中的内容:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#allow-hotplug eth0
#iface eth0 inet static
#   address 192.168.100.90/22
#   gateway 192.168.101.1


auto bond0
iface bond0 inet static
    address 192.168.100.90/22
    gateway 192.168.101.1
    bond-slaves eth0 eth1
    bond-mode active-backup
    bond-miimon 100
    bond-primary eth0 eth1

我可以在最后添加这一点吗:

auto bond0:101
iface bond0:101 inet static
    address 192.168.100.101
    netmask 255.255.252.0

并让 lxc 容器使用此地址?我不想桥接,我只希望主机和 lxc cont。在同一个网络上。我不知道 /var/lib/lxc/lxc_cont/config 文件中有哪些配置选项。我试过这个

lxc.network.type = phys
lxc.network.flags = up
lxc.network.link = bond0:101
lxc.network.hwaddr = 00:00:00:fe:fe:01
lxc.network.ipv4 = 192.168.100.101/22
lxc.network.ipv4.gateway = 192.168.101.1

但出现此错误:

lxc-start 20160912185144.642 ERROR    lxc_conf - conf.c:lxc_assign_network:3044 - failed to move 'bond0:101' to the container : Invalid argument
      lxc-start 20160912185144.642 ERROR    lxc_start - start.c:lxc_spawn:1197 - failed to create the configured network

将来我会在 bond0 接口上添加其他容器,例如:

auto bond0:102
iface bond0:102 inet static
    address 192.168.100.102
    netmask 255.255.252.0

auto bond0:102

etc.

我之前曾使用桥接接口设置过容器,但是对于这个绑定的事情我却束手无策。

非常感谢任何帮助或指点!

谢谢你的时间!

PS 我觉得我的问题与这个问题类似

https://serverfault.com/questions/744443/is-there-a-way-to-get-the-kvm-guest-using-alias-interfaces-to-communicate-with-o

答案1

得到了同事管理员的帮助。这是工作配置:

# interfaces file

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#allow-hotplug eth0
#iface eth0 inet static
#   address 192.168.100.90/22
#   gateway 192.168.101.1

auto bond0
iface bond0 inet manual
    bond-slaves eth0 eth1
    bond-mode active-backup
    bond-miimon 100
    bond-primary eth0 eth1

auto br0
iface br0 inet static
    address 192.168.100.90
    netmask 255.255.252.0
    gateway 192.168.101.1
    bridge-ports bond0
    bridge-fd 0
    bridge-stp off
    bridge-maxwait 5

因此您需要将 IP 地址移至网桥。lxc-config 如下所示:

...
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.name = eth0
lxc.network.mtu = 1500
lxc.network.hwaddr = 00:00:00:fe:fe:01
lxc.network.ipv4 = 192.168.100.91/22
lxc.network.ipv4.gateway = 192.168.101.1
...

我通常也会为客户机编辑接口文件,尽管这不是必需的,因为上述配置控制着 IP 分配:

# guest interfaces file
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.100.91
    netmask 255.255.252.0

因此现在主机和未来的客户 lxc 容器将驻留在同一个网络上。对于其他 lxc 容器,您只需分配子网中的下一个 ip。我猜你不需要 macvlans,我尝试使用它们但无法使其工作。

希望有人会发现这很有用,如果他们发现我会将其标记为可接受的答案。

如果我遗漏了某些信息,请告诉我。

相关内容