Modifica dhclient per riprovare a recuperare l'indirizzo IP


10

Si scopre che raspberry pi non si sforza molto di ottenere un indirizzo IP con dhcp, durante un'interruzione di corrente, il mio rpi si è avviato più velocemente del server dhcp e non ha mai ricevuto un indirizzo IP. In una situazione del genere, l'rpi sembra essere avviato, ma non ottiene un indirizzo IP e non vedo mai una richiesta dhcp da esso finché non lo riavvio di nuovo.

dhclient viene eseguito come tale:

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

Non riesco a trovare alcun modo per modificare gli argomenti in dhclient, l'argomento -1 potrebbe essere il colpevole. Come posso fare in modo che le mie richieste dhcp di raspberrypi vengano ripetute fino a quando non si ottiene una risposta?

Modifica: si tratta della distro "wheezy" di Raspbian.


1
Lo stesso problema con il wifi. Se il router WiFi è acceso all'avvio, tutto va bene, anche con il riavvio del router. Ma se il router è spento all'avvio di Raspberry, non ottiene mai un IP. Saluti

Ho lo stesso problema anch'io. Tuttavia, non so come viene eseguito il dhclient. C'è qualche configurazione o devo fare qualcosa per quello?
Kangkan,

Risposte:


7

Rimuovere gli -1argomenti dalla riga di comando, quindi modificare i valori timeoute a proprio piacimento. Puoi guardare la pagina man ( ) per maggiori dettagli.retry/etc/dhclient.confman dhclient.conf


Il problema è che, come detto, non riesco a trovare alcun modo per alterare la riga di comando di dhclient, sembra magicamente in qualche modo essere avviato all'avvio da qualcosa nel pacchetto ifdedown .deb mentre qualcosa analizza / etc / network / interfaces
nos

@nos Devi trovare lo script init di rete. Non ricordo dove sia fuori mano.
Alex Chamberlain,

@Alex Chamberlain Risulta che la riga di comando per l'avvio di dhclient è codificata nel binario / sbin / ifup. Quindi sto cercando soluzioni alternative a questo punto.
nn.

Mi dispiace per quello. Comunque, che distro è quella? Stranamente avrebbero codificato le cose in un binario. Per quanto riguarda la soluzione, potresti semplicemente aggiungere alcune righe a rc.local per interrompere il processo dhclient esistente e quindi iniziare il tuo con argomenti personalizzati, ecc.
Munkeh,

Modifica il post - Sto usando rasbpian
nn

1

Qual è il contenuto della tua / etc / network / interfaces?

Suppongo che esista auto eth0 poiché esegue una query DHCP all'avvio.

E se lo cambiassi in allow_hotplug eth0? Ciò dovrebbe reagire alle modifiche all'interfaccia (cavo inserito / rimosso), se lo capisco correttamente.

(Tutto questo è solo la mia ipotesi colta).


Questo suggerimento funziona molto bene per me: consente il collegamento a caldo e accelera il tempo di avvio. Ma deve essere scritto come "allow-hotplug eth0".
user27164,

0

C'è una soluzione alternativa data qui da Jeroen: https://bugs.launchpad.net/raspbian/+bug/1125066

Ho installato la soluzione alternativa e riavviato - al momento sembra ok. Confermerà se il problema è stato risolto in un aggiornamento dopo un periodo di prova.

Ecco la soluzione alternativa:

Una soluzione alternativa è quella di creare uno script wrapper rinominando / sbin / dhclient in / sbin / dhclient-bin e ma il testo sotto in / sbin / dhclient e successivamente modificarlo in 777:

#!/bin/sh
/sbin/dhclient-bin -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.