Você pode usar uma ponte ou um macvlan, mas não precisa dos dois. Desde que você parece saber sobre macvlans, vou delinear uma abordagem macvlan.
Você só precisa criar placas de rede virtuais (VLANs) em seu contêiner da Web e vinculá-las à NIC dedicada a hospedar o tráfego de contêineres.
As placas de rede virtual são expostas da mesma forma que as NICs do contêiner e recebem DHCP ou você pode usar IPs estáticos.
Abaixo estão as principais instruções, mas etapas detalhadas e em segundo plano vêm deste artigo da Bonsai Framework .
Crie um macvlan permanente no host
Adicione à parte inferior do arquivo
/etc/network/interfaces
do host,# Creates a macvlan interface called macvlan0 without an IP address iface mvlan0 inet manual pre-up ip link add mvlan0 link eth0 address 8a:38:2a:cc:d7:aa type macvlan mode bridge post-down ip link del macvlan0 auto mvlan0
Reinicialize seu sistema para que a alteração tenha efeito. Você notará um mvlan0
agora ao visualizar seus dispositivos de rede com ifconfig -a
.
Conecte o Container a macvlan
no Host, modificando o arquivo de configuração localizado em /var/lib/lxc/[container]/config
.
As entradas para adicionar à sua nova placa de rede,
# macvlan for external IP lxc.network.type = macvlan lxc.network.macvlan.mode = bridge lxc.network.flags = up lxc.network.link = mvlan0 lxc.network.hwaddr = 00:16:3e:8d:4f:51 lxc.network.name = eth0
Para o hwaddr, gere um único endereço MAC unicast administrado localmente por meio de um site gratuito como helion.org .
Por fim, ajuste o arquivo de interfaces dentro do contêiner para vincular via estática ou se preferir usar dinâmico.
No meu caso, eu ajustei meu roteador doméstico para que 192.168.0.1 a 192.168.0.20 não sejam designados dinamicamente e usem estáticos em meu LXC.
Portanto, modifico o arquivo de interfaces de contêineres da seguinte forma,
auto eth0
iface eth0 inet static
address 192.168.0.12
gateway 192.168.0.1
netmask 255.255.255.0
auto eth1
iface eth1 inet dhcp
Reinicie seu contêiner de Linux.