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
eth0
por 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 eth0
porauto br0
. -
Substituir:
iface eth0 inet dhcp
com:
iface br0 inet dhcp bridge_ports eth0
Se 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
eth0
parabr0
e adicionando a linhabridge_ports eth0
. -
Reinicie o host. Se você estava fazendo isso localmente, então executar
sudo ifdown eth0
antes de começar, esudo ifup br0
depois 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/config
e alterelxc.network.link
parabr0
. - No host, edite
/var/lib/lxc/container_name/rootfs/etc/network/interfaces
e configure seu IP público como faria normalmente (DHCP ou uma configuração estática, conforme necessário). Observe que a interface ainda é chamadaeth0
do ponto de vista do contêiner. - Reinicie o contêiner.
-
Para alterar o padrão dos novos contêineres LXC, edite
/etc/lxc/default.conf
no host e alterelxc.network.link
parabr0
. -
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/lxc
e altereUSE_LXC_BRIDGE
to"false"
e, em seguida, na execução do hostsudo service lxc restart
.