dhclient não está funcionando na inicialização

2

Aqui está o problema:

root@home:~# ping 8.8.8.8
connect: Network is unreachable

root@home:~# dhclient eth0
RTNETLINK answers: File exists

root@home:~# ping 8.8.8.8 
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=51 time=16.8 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=51 time=16.6 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 16.654/16.737/16.820/0.083 ms
root@home:~#

A rede está funcionando somente depois de invocar manualmente o dhclient. Eu não tenho o NetworkManager (removido). Aqui estão as linhas relevantes de /etc/network/interfaces :

auto eth0
iface eth0 inet dhcp

E aqui está o log de inicialização:

root@home:~# cat /var/log/syslog | grep dhclient
May 28 21:39:44 home kernel: [    7.237076] type=1400 audit(1369762781.497:2): apparmor="STATUS" operation="profile_load" name="/sbin/dhclient" pid=405 comm="apparmor_parser"
May 28 21:39:44 home kernel: [    7.238298] type=1400 audit(1369762781.497:4): apparmor="STATUS" operation="profile_load" name="/usr/lib/connman/scripts/dhclient-script" pid=405 comm="apparmor_parser"
May 28 21:39:45 home dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 (xid=0x79607e29)
May 28 21:39:45 home dhclient: DHCPREQUEST of 192.168.0.103 on eth0 to 255.255.255.255 port 67 (xid=0x79607e29)
May 28 21:39:45 home dhclient: DHCPOFFER of 192.168.0.103 from 192.168.0.1
May 28 21:39:45 home dhclient: DHCPACK of 192.168.0.103 from 192.168.0.1
May 28 21:39:45 home dhclient: bound to 192.168.0.103 -- renewal in 234779 seconds.
May 28 21:39:45 home kernel: [   11.695666] type=1400 audit(1369762785.953:10): apparmor="STATUS" operation="profile_replace" name="/sbin/dhclient" pid=1154 comm="apparmor_parser"
May 28 21:40:11 home dhclient: DHCPREQUEST of 192.168.0.103 on eth0 to 255.255.255.255 port 67 (xid=0x2aa61c47)
May 28 21:40:11 home dhclient: DHCPACK of 192.168.0.103 from 192.168.0.1
May 28 21:40:11 home dhclient: bound to 192.168.0.103 -- renewal in 243414 seconds.

Alguma idéia do que pode causar esse problema?

Atualização: descobri que o gateway padrão não é adicionado na inicialização, mas é adicionado quando eu reinicio o networking service ou executo o dhclient manualmente. Mas ainda não encontrei o que causa tal comportamento.

    
por Poma 29.05.2013 / 19:13

2 respostas

1

EDITAR:

Em geral, você deve obter o seu gateway padrão do seu servidor DHCP através da Opção 003 . A melhor abordagem seria configurar seu servidor DHCP para fornecer corretamente essas informações aos clientes. Se você não puder fazer isso por qualquer motivo, acredito que você possa especificá-lo manualmente no seu arquivo /etc/network/interfaces usando a diretiva gateway (veja manpage ). Eu nunca fiz isso, mas acredito que deve funcionar para interfaces que não são configuradas estaticamente.

Se não, você pode adicioná-lo manualmente usando um script de inicialização.

Parece que você está recebendo corretamente uma concessão de DHCP usando o dhclient. Eu suspeito que o NetworkManager não foi completamente removido ou você tem outro utilitário de autoconfiguração de rede que está iniciando (talvez ligado ao seu ambiente de desktop) e tentando reconfigurar as configurações da sua rede.

Primeiro, confirme se o /etc/network/interfaces está configurado corretamente executando o script de inicialização de rede:

sudo /etc/init.d/networking restart

ou apenas usando ifup e ifdown :

sudo ifdown eth0 && ifup eth0


Em seguida, verifique se você não tem nenhum vestígio de Network Manager :

sudo apt-get purge network-manager
    
por 29.05.2013 / 19:43
0

No meu caso, sob o CentOS 6 / Fedora, isso estava relacionado a uma inconsistência entre / etc / sysconfig / network-scripts / ifcfg-eth0 e /etc/udev/rules.d/70-persistent-net.rules. / p>

Em ambos os arquivos, o MAC associado à interface eth0 é declarado. Em uma clonagem de VM, um novo MAC foi atribuído, mas não refletido aqui (o administrador deveria ter feito isso).

Ao inicializar, você pode ver no dmesg que a eth0 real é renomeada para eth1 (entra em conflito com ifcfg-eth0), então uma nova entrada é criada automaticamente sob 70-persistent-net.rules associando o MAC encontrado para eth1.

O dhclient não iniciou (ou começou, foi abortado) - o resultado foi que o sistema não obteve um IP do servidor DHCP.

Notavelmente, executar o dhclient manualmente força a aquisição de um IP para a eth1 falsa e a rede funciona normalmente depois disso .... até a próxima reinicialização.

Editar manualmente os arquivos citados acima para que os nomes MAC e eth * sejam coincidentes corrigiu o problema - agora o dhclient começa na inicialização & Obtém o IP por si só.

    
por 02.08.2013 / 23:46