Minha abordagem pressupõe que seu servidor tenha um único NIC e você precise compartilhar esse NIC entre o host e os convidados do LXC. Isso envolve o uso de uma ponte. A ponte possui e gerencia eth0 . O host agora configura sua própria rede em br0 em vez de eth0 . Os convidados do LXC estão configurados para se conectarem à ponte.
-
No host,
sudo apt-get install bridge-utils. -
No host, substitua
eth0por uma ponte:Isso é perigoso. Faça isso errado e você pode ser bloqueado do seu servidor. Certifique-se de ter um login local ativado e que o acesso ao console local funcione, para que você possa reverter essa alteração se tiver algum problema.
Em
/etc/network/interfaces:- Substitua
auto eth0porauto br0. -
Substituir:
iface eth0 inet dhcpcom:
iface br0 inet dhcp bridge_ports eth0Se você tivesse uma configuração de rede estática, substituiria:
iface eth0 inet static address ... netmask ... gateway ... etc.com:
iface br0 inet static bridge_ports eth0 address ... netmask ... gateway ... etc.Você está apenas alterando
eth0parabr0e adicionando a linhabridge_ports eth0. -
Reinicie o host. Se você estava fazendo isso localmente, então executar
sudo ifdown eth0antes de começar, esudo ifup br0depois também funcionaria. Note que a ponte pode demorar um pouco para aparecer, então dê cinco minutos após a reinicialização antes de assumir que tudo está perdido.
- Substitua
-
Para mover um determinado contêiner chamado LXC para um IP público:
- Pare o contêiner.
- No host, edite
/var/lib/lxc/container_name/confige alterelxc.network.linkparabr0. - No host, edite
/var/lib/lxc/container_name/rootfs/etc/network/interfacese configure seu IP público como faria normalmente (DHCP ou uma configuração estática, conforme necessário). Observe que a interface ainda é chamadaeth0do ponto de vista do contêiner. - Reinicie o contêiner.
-
Para alterar o padrão dos novos contêineres LXC, edite
/etc/lxc/default.confno host e alterelxc.network.linkparabr0. -
Se você não precisar da ponte NAT fornecida pelo LXC (ou seja, todos os seus contêineres usarão a nova ponte), então na edição do host
/etc/default/lxce altereUSE_LXC_BRIDGEto"false"e, em seguida, na execução do hostsudo service lxc restart.