Acessa serviços de contêiner lxc de outros contêineres lxc via host

1

Eu tenho um laptop com o Ubuntu 14 Desktop. O laptop tem conexão WLAN na minha LAN e é gerenciado pelo gerenciador de rede . De causa, o laptop um nic (eth0), também, mas não está conectado. Eu uso este laptop como um host LXC. Eu tenho vários contêineres servindo aplicativos. Com a configuração básica do LXC (configurações padrão como o uso do dnsmasq, rede em ponte).

A saída de ifconfig está exibindo 4 interfaces: eth0 , lo , wlan e lxcbr0 . Até agora, não há configuração especial do iptables feita, ainda. É um novo sistema instalado

Agora, configurando o NAT no meu host LXC ...

iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 21404 -j DNAT --to 10.0.3.180:3142

... consigo acessar serviços em meus containers, ao acessar de outra máquina na minha LAN, por exemplo:

foo@LANMachine2: wget -O - http://lxc-host:21404 #it works

Dica: lxc-host é um nome DNS para o laptop gerenciado pelo meu roteador.

Agora, o que quero fazer é permanecer na minha máquina e acessar o serviço de um contêiner do próprio host LXC e de outros recipientes hospedados usando o mesmo nome DNS, assim:

bar@lxc-host: wget -O - http://lxc-host:21404 
#or
bar@lxc-container: wget -O - http://lxc-host:21404

#both not working and leading to output:
Connecting to lxc-host (lxc-host)|The.IP.shown.here|:21404... failed: Connection refused.

Como fazer isso funcionar? É possível, afinal? A maior parte da importação para mim seria poder conectar-me de outros contêineres aos serviços de outros contêineres, roteando-os pelo host LXC. (Isso me permitiria padronizar a configuração dos meus contêineres)

    
por ITL 13.09.2014 / 15:53

1 resposta

1

Os pacotes do mesmo host nunca alcançam a tabela PREROUTING (ou qualquer outra tabela nat), pois eles não são roteados de uma interface para outra.

Para a rede de contêiner para contêiner, você pode usar uma ponte compartilhada (que não precisa ser a mesma que compartilha com o host) ou realmente usar o roteamento e a tabela PREROUTING iptables, se eles estiverem em interfaces diferentes .

    
por 12.01.2015 / 19:45