Configurar ponte permanente para dispositivos de rede dinâmicos do contêiner lxc?

3

TL: DR Como posso fazer uma ponte permanente (sobreviver a reinicialização) sem adicionar um dispositivo de rede à configuração de ponte em / etc / network / interfaces?

Olá, comecei a brincar com o lxc no Ubuntu 14.04.

A configuração que gostaria de realizar é um contêiner com haproxy, um com nginx.

Eu vou dar pedidos externos via iptables para o haproxy e de lá para o nginx.

Todos os contêineres estarão em sua própria sub-rede. O roteamento / filtragem de pacotes entre os contêineres será feito pelo host.

Eu consegui metade da configuração até agora.

Eu criei duas pontes com brctl e adicionei IPs às pontes.

br-haproxy: 10.100.0.1/24
br-nginx: 10.100.3.1/24

Em seguida, adicionei a respectiva ponte ao contêiner correspondente por meio da configuração lxc.

nginx got br-nginx
haproxy got br-haproxy

Em seguida, configurei os endereços IP nos contêineres.

haproxy: 10.100.0.10/24 GW 10.100.0.1
nginx: 10.100.3.10/24 GW 10.100.3.1

Agora consegui fazer ping entre os dois contêineres e assim por diante. Eu agora neguei o acesso definindo a política de encaminhamento do iptables para negar. Eu agora era capaz de controlar o tráfego entre os dois containers via iptables.

Ok, até agora tudo bem. O que eu quero agora alcançar é tornar as pontes permanentes. Eu adicionei o bridgeconfig em / etc / network / interfaces, mas como não tenho um dispositivo de rede para adicionar à bridge, deixei esta parte para fora.

Quando eu tento iniciar a ponte, recebo um erro informando que o dispositivo, por exemplo, O br-haproxy não foi encontrado.

Eu descobri que o problema é o dispositivo ausente na configuração da bridge. Quando eu adiciono eth0 do host para a configuração da bridge, eu posso iniciar a bridge e ela é muito legal. Mas isso não é o que eu preciso.

O LXC cria e adiciona dinamicamente as interfaces do contêiner na inicialização do contêiner para a ponte correspondente.

Então, vem a minha pergunta. Como posso tornar as pontes permanentes sem adicionar um dispositivo de rede à bridge na inicialização?

Espero que eu tenha feito isso parecer claro sobre o problema. : -)

Obrigado antecipadamente.

    
por T-roc 30.12.2015 / 16:06

1 resposta

2

E se você usar bridge_ports none para fazer isso funcionar, sem a necessidade de adicionar membros a essa interface?

auto br-haproxy
iface br-haproxy inet static
       bridge_ports none
       bridge_fd 0 
       bridge_waitport 0
       address 10.100.0.1
       netmask 255.255.255.0

bridge_fd e waitport estão definidos para evitar atrasos de encaminhamento sempre que uma porta membro for colocada on-line e evitar atrasos na espera de uma porta ficar on-line.

    
por 30.12.2015 / 18:04

Tags