Modifique dhclient para volver a intentar recuperar la dirección IP

10

Resulta que raspberry pi no se esfuerza mucho para obtener una dirección IP con dhcp, durante un fallo de alimentación, mi rpi se inició más rápido que el servidor dhcp y nunca obtuvo una dirección IP. En tal situación, el rpi parece estar arrancado, pero no obtiene una dirección IP, y nunca veo una solicitud de dhcp hasta que lo reinicio nuevamente.

dhclient se ejecuta como tal:

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

No puedo encontrar ninguna manera de alterar los argumentos a dhclient, el argumento -1 podría ser el culpable. ¿Cómo puedo hacer que mi raspberrypi vuelva a intentar las solicitudes de dhcp hasta que reciba una respuesta?

Editar: esto se refiere a la distribución Raspbian "wheezy".

nos
fuente
1
Mismo problema con wifi. Si Wifi Router está encendido al inicio, todo va bien, incluso con el reinicio del enrutador. Pero si el enrutador está apagado cuando se inicia la frambuesa, nunca obtiene una IP. Saludos
Tengo el mismo problema. Sin embargo, no sé cómo se ejecuta el dhclient. ¿Hay alguna configuración o necesito hacer algo para eso?
Kangkan

Respuestas:

7

Elimine los -1argumentos de la línea de comandos, luego edite los valores timeouty a su gusto. Puede consultar la página de manual ( ) para obtener más detalles.retry/etc/dhclient.confman dhclient.conf

Munkeh
fuente
El problema es que, como dije, no puedo encontrar ninguna manera de alterar la línea de comando de dhclient, parece que mágicamente de alguna manera se inicia en el arranque por algo en el paquete ifupdown .deb, ya que algo analiza el / etc / network / interfaces
nos
@nos Necesitas encontrar el script de inicio de red. No puedo recordar dónde está fuera de control.
Alex Chamberlain
@Alex Chamberlain Resulta que la línea de comando para iniciar dhclient está codificada en el binario / sbin / ifup. Así que estoy buscando soluciones alternativas en este momento.
nos
Lo siento por eso. De todos modos, ¿qué distribución es esa? Es extraño que codifiquen cosas en un binario. En cuanto a la solución, puede agregar algunas líneas a rc.local para eliminar el proceso dhclient existente y luego comenzar el suyo con
argumentos
Editet the post - Estoy usando rasbpian
nos
1

¿Cuál es el contenido de su / etc / network / interfaces?

Supongo que hay auto eth0 ya que consulta DHCP en el arranque.

¿Qué pasa si cambia eso para allow_hotplug eth0? Eso debería reaccionar a los cambios en la interfaz (cable insertado / eliminado), si lo entiendo correctamente.

(Todo esto es solo mi suposición educada).

El Gruffalo
fuente
Este consejo me funciona muy bien: permite la conexión en caliente y acelera el tiempo de arranque. Pero debe escribirse como "allow-hotplug eth0".
user27164
0

Jeroen ofrece una solución alternativa aquí: https://bugs.launchpad.net/raspbian/+bug/1125066

He configurado la solución y reiniciado, parece estar bien en este momento. Confirmará si el problema se resolvió en una actualización después de probar durante un tiempo.

Aquí está la solución:

Una solución alternativa es crear una secuencia de comandos de contenedor cambiando el nombre de / sbin / dhclient a / sbin / dhclient-bin y el texto a continuación en / sbin / dhclient y luego modifíquelo a 777:

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