Modificando o resolv.conf ao trazer a interface de rede para a inicialização do sistema

1

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.)

    
por FixMaker 04.04.2013 / 10:20

0 respostas