Usando interface de ligação aliada no host por um contêiner lxc

1

Como o título diz, como faço para editar a configuração do contêiner lxc para usar a interface bond0 com alias no host? Isso é o que eu tenho no arquivo / etc / network / interfaces agora:

# 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

Posso adicionar isso no final:

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

e fazer o contêiner lxc usar esse endereço? Eu não quero bridging, eu só quero o host e lxc cont. na mesma rede. Eu não sei quais opções de configuração vão para o arquivo / var / lib / lxc / lxc_cont / config. Eu tentei isso

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

mas receba este erro:

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

No futuro, eu estaria adicionando outros contêineres na interface bond0, como:

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

auto bond0:102

etc.

Já configurei contêineres usando interface em ponte antes, mas estou preso no que diz respeito a essa ligação.

Qualquer ajuda ou ponteiros são muito apreciados!

Obrigado pelo seu tempo!

P.S. parece-me que a minha pergunta é semelhante a esta

link

    
por antisa 12.09.2016 / 17:23

1 resposta

0

Tivemos alguma ajuda de um colega admin no trabalho. Esta é a configuração de trabalho:

# 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

Então você precisa mover o endereço IP para a ponte. O lxc-config é assim:

...
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
...

Eu normalmente edito o arquivo de interfaces para o guest também, embora isso não deva ser necessário já que a configuração acima controla a atribuição de 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

Agora, a máquina host e os futuros contêineres lxc de convidados residirão na mesma rede. Para o outro contêiner lxc, você simplesmente atribui o próximo ip na sub-rede. Eu acho que você não precisa de macvlans, eu tentei usá-los, mas não consegui fazê-lo funcionar.

Espero que alguém ache isso útil, se eles marcarem isso como resposta aceita.

Se eu perdi alguma informação, por favor me avise.

    
por 26.09.2016 / 12:47