Tenho vários contêineres lxc que precisam de acesso à rede. No momento, estou alocando manualmente os endereços IP no arquivo de configuração relevante da seguinte forma:
lxc.network.type = veth
lxc.network.flags = up
lxc.network.name = eth0
lxc.network.link = br0
lxc.network.ipv4 = 192.168.1.6/24
lxc.network.ipv4.gateway = 192.168.1.1
Isso funciona, mas não é escalonável e pode entrar em conflito com a alocação de DHCP dos meus roteadores. Tento usar meu roteador dhcp deixando de fora as linhas lxc.network.ipv4 (conforme descrito on-line em outro lugar) e o contêiner é iniciado, mas o dhcpcd não relata nenhuma operadora. lxc-ls --fancy também não mostra que meu contêiner tem um endereço IP. A noiva está ativa e lxc.network.link definido no arquivo de configuração.
Como posso usar DHCP com meus contêineres? É possível usar o DHCP dos meus roteadores ou preciso executar um servidor no meu host? Alguns dos meus contêineres precisam ser acessíveis externamente, enquanto alguns só precisam se comunicar com outros contêineres/host.
Estou executando o Arch Linux, a maior parte da ajuda on-line parece específica do Ubuntu.
Responder1
Certifique-se de que netctl e dhcpcd estejam instalados dentro do contêiner (pacman -Q netctl dhcpcd) e execute o seguinte no contêiner:
cat > /etc/netctl/eth0
Connection=ethernet
IP=dhcp
Interface=eth0
Pressione CTRL-D para gravar o arquivo. Em seguida, habilite o perfil executando:
netctl enable eth0
Por fim, reinicie o contêiner e você deverá ter um endereço IP atribuído ao DHCP.
Responder2
cat <<\EOF >> /etc/netctl/eth
Connection=ethernet
IP=dhcp
Interface=eth0
EOF
Achei que essa seria a melhor maneira de criar o arquivo.