Ändern Sie dhclient, um das Abrufen der IP-Adresse erneut zu versuchen

9

Es stellt sich heraus, dass Himbeer-Pi nicht sehr bemüht ist, eine IP-Adresse mit DHCP zu erhalten. Während eines Stromausfalls bootete mein RPI schneller als der DHCP-Server und bekam nie eine IP-Adresse. In einer solchen Situation scheint das RPI gestartet zu sein, erhält jedoch keine IP-Adresse, und ich sehe erst dann eine DHCP-Anforderung, wenn ich es erneut starte.

dhclient wird als solches ausgeführt:

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

Ich kann keine Möglichkeit finden, die Argumente in dhclient zu ändern. Das Argument -1 könnte der Schuldige sein. Wie kann ich meine Himbeerpi-DHCP-Anfragen wiederholen lassen, bis sie eine Antwort erhalten?

Edit: Dies betrifft die Raspbian "wheezy" Distribution.

nr
quelle
1
Gleiches Problem mit WiFi. Wenn der WLAN-Router beim Start eingeschaltet ist, ist auch beim Neustart des Routers alles in Ordnung. Wenn der Router beim Start der Himbeere ausgeschaltet ist, erhält er nie eine IP. Grüße
Ich habe auch das gleiche Problem. Ich weiß jedoch nicht, wie der dhclient ausgeführt wird. Gibt es eine Konfiguration oder muss ich etwas dafür tun?
Kangkan

Antworten:

7

Entfernen Sie die -1von Ihrem Befehlszeilenargumente, dann bearbeiten die timeoutund retryWerte in /etc/dhclient.confnach Ihren Wünschen. man dhclient.confWeitere Informationen finden Sie auf der Manpage ( ).

Munkeh
quelle
Das Problem ist, wie gesagt, ich kann keine Möglichkeit finden, die Befehlszeile von dhclient zu ändern. Es scheint auf magische Weise beim Booten von etwas im ifupdown .deb-Paket gestartet zu werden, da etwas die / etc / network / interfaces analysiert
Nr.
@nos Sie müssen das Netzwerk-Init-Skript finden. Ich kann mich nicht erinnern, wo es von der Hand ist.
Alex Chamberlain
@Alex Chamberlain Es stellt sich heraus, dass die Befehlszeile zum Starten von dhclient in der Binärdatei / sbin / ifup fest codiert ist. Daher suche ich an dieser Stelle nach alternativen Lösungen.
Nr.
Das tut mir leid. Wie auch immer, welche Distribution ist das? Seltsamerweise würden sie hartes Code-Zeug in eine Binärdatei umwandeln. In Bezug auf die Lösung können Sie rc.local nur ein paar Zeilen hinzufügen, um den vorhandenen dhclient-Prozess zu beenden, und dann Ihre eigenen mit benutzerdefinierten Argumenten usw.
starten
Bearbeiten Sie den Beitrag - Ich benutze Rasbpian
Nr.
1

Was ist der Inhalt Ihrer / etc / network / interfaces?

Ich gehe davon aus, dass es auto eth0 gibt, da es beim Booten DHCP abfragt.

Was ist, wenn Sie dies in allow_hotplug eth0 ändern? Das sollte auf Änderungen an der Schnittstelle reagieren (Kabel eingesteckt / entfernt), wenn ich es richtig verstehe.

(All dies ist nur meine Vermutung).

Der Gruffalo
quelle
Dieser Tipp funktioniert sehr gut für mich: Er ermöglicht das Hot-Plugging und beschleunigt die Startzeit. Es muss jedoch als "allow-hotplug eth0" geschrieben werden.
Benutzer27164
0

Jeroen gibt hier eine Problemumgehung: https://bugs.launchpad.net/raspbian/+bug/1125066

Ich habe die Problemumgehung eingerichtet und neu gestartet - scheint im Moment in Ordnung zu sein. Bestätigt, ob das Problem in einem Update nach einer Weile des Testens behoben wurde.

Hier ist die Problemumgehung:

Eine Problemumgehung besteht darin, ein Wrapper-Skript zu erstellen, indem Sie / sbin / dhclient in / sbin / dhclient-bin umbenennen und den folgenden Text in / sbin / dhclient und anschließend in 777 ändern:

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