Acessar 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 possui conexão WLAN à minha LAN e é gerenciado pelo gerenciador de rede . Da causa, o laptop também é um nic (eth0), 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 ifconfigestá mostrando 4 interfaces: eth0, lo, wlane lxcbr0. Até o momento, ainda não há nenhuma configuração especial do iptables. É 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 contêineres, 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 eu quero fazer é permanecer na minha máquina e acessar o serviço de um contêiner a partir do próprio host LXC e de outros contêineres 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 de alguma forma? A maioria das importações para mim seria capaz de conectar-me de outros contêineres aos serviços de outros contêineres, roteando através do host LXC. (Isso me permitiria padronizar a configuração dos meus contêineres)

ITL
fonte
Seria útil ter a saída do IP Link espectáculo , espectáculo endereço ip , show ip route .
MariusMatutiae

Respostas:

1

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

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

todos
fonte