Deixe o dnsmasq fazer isso por você.
Configure a instância dnsmasq da máquina host para consultar a instância dnsmasq do lxc para o domínio de nível superior .lxc.
Em / etc / default / lxc-net, remova o comentário desta linha:
LXC_DOMAIN="lxc"
Se a instância dnsmasq do seu host for iniciada pelo NetworkManager (como é o caso das instalações de desktop Ubuntu atuais), crie um arquivo chamado /etc/NetworkManager/dnsmasq.d/lxc.conf com esta linha dentro:
server=/lxc/10.0.3.1
Se o dnsmasq do seu host for iniciado por algo diferente do NetworkManager, adicione essa linha ao /etc/dnsmasq.d-available/lxc:
server=/lxc/10.0.3.1
Em seguida, reinicie as coisas para que elas captem as alterações:
service lxc-net stop
service lxc-net start
service network-manager restart
Pode ser necessário reiniciar seus contêineres lxc ou fazê-los solicitar novas concessões DHCP antes que eles apareçam no DNS. (Não me lembro se era necessário quando fiz isso.) Também vale a pena mencionar que vi um relatório de erro sobre o lxc-net não captar as alterações do dnsmasq quando ele foi reiniciado, portanto, você pode querer reiniciar o sistema host apenas para ter certeza.
Então tente:
$ host mycontainer.lxc
mycontainer.lxc has address 10.0.3.21
$ ssh ubuntu@mycontainer.lxc
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-39-generic x86_64)
ubuntu@mycontainer:~$