Minha caixa Linux atualmente tem uma interface de rede que me permite conectar a uma rede em uma sub-rede diferente. Consegui isso modificando a tabela de roteamento quando a interface de rede é ativada. A rede 'remota' também tem um servidor DNS, então eu quero adicionar isso ao meu arquivo /etc/resolv.conf quando a interface estiver ativada.
Meu arquivo /etc/network/interfaces
atualmente tem o seguinte:
# Secondary network interface (using NAT)
allow-hotplug eth1
iface eth1 inet dhcp
post-up route add -net 172.16.0.0 netmask 255.255.255.0 gw 10.0.3.2
post-up echo 'Up and running...' >> /home/sysadmin/net-result.txt; date >> /home/sysadmin/net-result.txt
post-up sed -i '1inameserver 172.16.0.1' /etc/resolv.conf
post-down sed -i '/^nameserver 172.16.0.1/d' /etc/resolv.conf
(A linha post-up echo...
está ali apenas para provar que os comandos estão sendo executados e que eles têm acesso ao sistema de arquivos.)
Isso funciona bem quando uso ifup eth1
e ifdown eth1
da linha de comando para controlar a interface. A linha nameserver 172.16.0.1
aparece (e desaparece) em /etc/resolv.conf
como esperado.
No entanto, não está funcionando na inicialização do sistema por algum motivo. O comando route
está sendo executado (porque eu posso ver as modificações na tabela de roteamento) e o arquivo /home/sysadmin/net-status.txt
também está sendo modificado conforme o esperado, mas /etc/resolv.conf
não muda.
Eu não consigo descobrir qual é o problema. Alguém tem alguma sugestão?
(A caixa do Linux é, na verdade, uma máquina virtual, e a rede remota é acessada por meio de uma VPN, mas não acredito que nenhum desses detalhes realmente tenha relação com o problema nesse contexto.)
Tags networking startup linux