Como definir os IPs DHCP dos contêiners LXC padrão?

3

Quando você cria alguns contêineres em um host, por exemplo:

sudo lxc-create -n container1 -t ubuntu
sudo lxc-create -n container2 -t ubuntu

o sistema LXC cria um endereço IP para os hosts em uma nova sub-rede, por exemplo,

lxc-ls --fancy
NAME            STATE    IPV4        IPV6  AUTOSTART
----------------------------------------------------
container1  RUNNING  10.0.3.143  -     NO
container2  RUNNING  10.0.3.12   -     NO

A questão é, onde está o serviço DHCP que está alocando esses endereços e como podemos alocar um IP fixo com base no nome do servidor ou no endereço MAC?

Nós tentamos editar /etc/lxc/default.conf e adicionar:

    dhcp-host=container1,10.0.3.10
    dhcp-host=container2,10.0.3.20

Em seguida, parando e iniciando os contêineres e fazendo sudo service lxc-net restart , mas isso não teve efeito. Eu poderia editar /etc/network/interfaces em cada contêiner e codificar um IP em vez de usar o DHCP, mas eu preferiria controlá-lo centralmente.

Existe uma maneira de fazer isso?

    
por eos 06.06.2015 / 23:26

1 resposta

4

OK, encontrei outra maneira de fazer isso:

  1. Pare todos os contêineres
  2. Edite / etc / default / lxc-net
  3. descomente "LXC_DHCP_CONFILE = / etc / lxc / dnsmasq.conf"
  4. crie o arquivo /etc/lxc/dnsmasq.conf
  5. edite o dnsmasq.conf:

    dhcp-host = container_name, 10.0.2.10

  6. serviço reiniciar o lxc-net

Agora reinicie os contêineres e aproveite a glória de seus próprios IPs.

- EDITAR

Falou cedo demais - isso só funciona pela metade.

Existem 4 containers, e no dnsmasq.conf eu tenho:

dhcp-host=host01,10.0.2.10
dhcp-host=host02,10.0.2.20
dhcp-host=host03,10.0.2.30
dhcp-host=host04,10.0.2.40

Agora, quando eu reinicio o evertying, incluindo os containers, recebo isso:

# lxc-ls --fancy
NAME       STATE    IPV4        IPV6  AUTOSTART
-----------------------------------------------
host01    RUNNING  10.0.2.99   -     YES
host02    RUNNING  10.0.2.20   -     YES
host03    RUNNING  10.0.2.198  -     YES
host04    RUNNING  10.0.2.40   -     YES

A metade deles está certa. Todos os containers que criamos da mesma forma e que não foram editados de forma alguma.

Alguém tem alguma ideia do que está acontecendo?

Este é o conteúdo das interfaces / etc / network / em um dos contêineres ofensivos:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Nada diferente dos que trabalham.

- EDIT 2 ---

parando todos os contêineres e executando isso:

$ sudo restart lxc-net

Corrigido o problema!

    
por 07.06.2015 / 14:49

Tags