Recipientes LXC não acessíveis usando o domínio .lxc dns no Ubuntu 14.4

0

Eu executei a configuração esperada e tive essa funcionalidade funcionando no passado. As mudanças que fiz que tiveram este trabalho anteriormente foram:

  • Descomentando a linha LXC_DOMAIN="lxc" em / etc / default / lxc-net
  • Adicionada a linha server = / lxc / 10.0.3.1 a /etc/NetworkManager/dnsmasq.d/lxc.conf

Eu adicionei adicionalmente o IP para a instância do dnsmasq no resolv.conf na minha máquina host.

Anteriormente, isso permitia que eu fiz ping em meus contêineres usando o sufixo .lxc no nome do contêiner (por exemplo, test-container.lxc) ou apenas usando o próprio nome do contêiner.

Agora ainda posso pingar meus contêineres usando apenas o nome do contêiner, mas a versão do domínio .lxc de endereçar meus contêineres parece ter parado de funcionar e não tenho ideia do motivo.

Eu também tentei adicionar a linha server = / lxc / 10.0.3.1 ao /etc/dnsmasq.d/lxc como eu li em outro lugar que alguém tinha trabalhado usando essa abordagem, mas sem sorte para mim.

Tudo que eu recebo quando tento pingar o test-container.lxc é o erro:

ping: unknown host test-container.lxc

Alguém mais viu esse problema e sabe por que esse comportamento mudou ou o que posso fazer para que essa funcionalidade funcione novamente?

    
por Dave Birch 16.11.2015 / 13:29

2 respostas

0

Eu tenho o mesmo problema com o trabalho de resolução de DNS LXC no Ubuntu 16.04 Server LTS (o host). Eu segui vários guias e adicionei as entradas necessárias a esses arquivos de configuração, mas ainda assim os contêineres não resolvem o domínio .lxc. mas apenas a nomenclatura baseada em endereços IP estava funcionando.

Como meu ambiente de host é um ambiente de servidor hospedado, isso pode ser um problema relacionado ao firewall e o tráfego de DNS é bloqueado de alguma forma pelo provedor de serviços em suas configurações de firewall ou de rede. Verifique suas configurações do iptables para ter certeza primeiro.

Em seguida, para resolver isso, verifique se os conteúdos /etc/resolv.conf e /etc/network/interfaces garantem que o servidor de nomes 127.0.0.1 seja um dos servidores que resolvem esses nomes LXC / DNS e comente quaisquer tentativas de "procura" porque Por padrão, alguns provedores de host de servidor substituem ou adicionam o 8.8.8.8 do Google, o que obviamente não é capaz de resolver nomes DNS LXC de execução local / host.

Para adicionar nameserver padrão de volta, você pode adicionar um arquivo /etc/resolvconf/resolv.conf/tail ao conteúdo do servidor de nomes 127.0.0.1 e executar sudo resolvconf -u para reconstruir a configuração do resolvedor e tentar novamente executar ping nos contêineres: ping mycont.lxc (use o LXC_DOMAIN de /etc/default/lxc-net como o sufixo para LXC-hostname).

O acima resolveu o problema no meu caso.

    
por 13.10.2016 / 02:09
0

Isso funciona em 16.04:

echo 'LXC_DOMAIN="lxc"' >> /etc/default/lxc-net
echo 'server=/lxc/10.0.3.1' >> /etc/dnsmasq.d/lxc
sed -i '1s;^;nameserver 127.0.0.1\n;' /etc/resolv.conf
apt-get install -y dnsmasq
sudo service lxc-net restart

Para garantir que /etc/resolv.conf sobreviva à reinicialização:

echo 'nameserver 127.0.0.1' >> /etc/resolvconf/resolv.conf.d/head
sudo resolvconf -u

OBSERVE que isto roda servidor DNS aberto, você deve fechá-lo com firewall ou outra forma:

echo 'interface=lo' >> /etc/dnsmasq.conf
service dnsmasq restart
    
por 22.07.2017 / 16:27