A resolução de DNS não funciona porque você esqueceu de adicionar um /etc/resolv.conf apropriado ao seu namespace de rede. Existem duas peculiaridades para isso.
Primeiro, isso é feito fora dos comandos iproute2 .
mkdir -p /etc/netns/nns
echo "nameserver 8.8.8.8" > /etc/netns/nns/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/netns/nns/resolv.conf
Altere nns com o nome do seu namespace de rede.
Em segundo lugar, isso precisa ser feito antes de você criar o namespace da rede, caso em que um novo /etc/resolv.conf aparecerá no namespace, que é totalmente não relacionado aos hosts, e que pode ser manipulado exatamente da mesma maneira que o host, deixando a cópia do host ilesa.
Você pode facilmente adicionar os comandos acima à seção de pré-up da sua estrofe br1 em / etc / network / interfaces, e também para os comandos que removem o arquivo para a seção post-down.
Também é fácil ver porque o DNS não funciona no seu sistema: você está usando o Ubuntu que, para DNS, usa o dnsmasq rodando na interface lo
, no endereço 127.0.1.1 (é só olhar em / etc / resolv .conf) para que seus pedidos de DNS vão para a interface lo, são interceptados por sua instância do dnsmasq, que toma para resolver as consultas DNS. Como você não alterou o /etc/resolv.conf, você ainda está usando o host, que se refere a lo
: mas em lo
no namespace de rede vpn
não há nenhuma instância do dnsmasq ouvindo as consultas de DNS .