Altere o dhclient para tentar novamente o endereço IP

10

Acontece que o raspberry pi não se esforça muito para obter um endereço IP com dhcp, durante uma falha de energia, meu rpi inicializou mais rápido que o servidor dhcp e nunca obteve um endereço IP. Em tal situação, o rpi parece ser inicializado, mas não obtém um endereço IP, e nunca vejo uma solicitação dhcp dele até reiniciá-lo novamente.

O dhclient é executado da seguinte maneira:

dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0

Não consigo encontrar nenhuma maneira de alterar os argumentos para dhclient, o argumento -1 pode ser o culpado. Como posso fazer minhas raspberrypi repetir solicitações dhcp até receber uma resposta?

Edit: trata-se da distração Raspbian “chiado”.

n
fonte
11
Mesmo problema com wifi. Se o Roteador Wifi estiver ligado na inicialização, tudo correrá bem, mesmo com a reinicialização do roteador. Mas se o roteador estiver desligado quando o raspberry iniciar, ele nunca obterá um IP. Saudações
Eu também tenho o mesmo problema. No entanto, não sei como o dhclient é executado. Existe alguma configuração ou preciso fazer algo para isso?
Kangkan #

Respostas:

7

Remova os -1argumentos da linha de comando e edite os valores timeoute ao seu gosto. Você pode ver a página do manual ( ) para mais detalhes.retry/etc/dhclient.confman dhclient.conf

Munkeh
fonte
O problema é que, como disse, não consigo encontrar nenhuma maneira de alterar a linha de comando do dhclient, parece que de alguma forma magicamente foi iniciado na inicialização por algo no pacote ifupdown .deb, pois algo analisa as interfaces / etc / network /
nos
@nos Você precisa encontrar o script de inicialização da rede. Não me lembro onde está fora de controle.
Alex Chamberlain
@Alex Chamberlain Parece que a linha de comando para iniciar o dhclient está codificada no binário / sbin / ifup. Então, eu estou procurando soluções alternativas neste momento.
nºs
Me desculpe por isso. Enfim, que distro é essa? Estranho que eles codificassem coisas em um binário. Solução-sábio, você poderia apenas adicionar algumas linhas para rc.local para matar o processo dhclient existente e, em seguida, iniciar o seu próprio com o costume args etc.
Munkeh
Editet the post - Estou usando rasbpian
nos
1

Qual é o conteúdo do seu / etc / network / interfaces?

Estou assumindo que existe auto eth0, uma vez que consulta o DHCP na inicialização.

E se você mudar isso para allow_hotplug eth0? Isso deve reagir a alterações na interface (cabo inserido / removido), se bem entendi.

(Tudo isso é apenas meu palpite).

The Gruffalo
fonte
Essa dica funciona muito bem para mim: permite a conexão a quente e acelera o tempo de inicialização. Mas deve ser escrito como "allow-hotplug eth0".
user27164
0

Existe uma solução alternativa fornecida aqui por Jeroen: https://bugs.launchpad.net/raspbian/+bug/1125066

Eu configurei a solução alternativa e reiniciei - parece ok no momento. Confirmará se o problema foi resolvido em uma atualização após o teste por um tempo.

Aqui está a solução alternativa:

Uma solução alternativa é criar um script de wrapper renomeando / sbin / dhclient para / sbin / dhclient-bin e, mas o texto abaixo em / sbin / dhclient e posteriormente modificado para 777:

#!/bin/sh
/sbin/dhclient-bin -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0
Andy Boura
fonte