Raspberry Pi DHCP-Suche dauert zu lang

2 Antworten

Der Pi sendet so lange DHCP-Discovers, bis er ein Offer vom DHCP-Server bekommt. Wenn es 110 Sekunden dauert, bis der DHCP-Server antwortet, kann der Pi da nichts zu. Wenn Du den Pi mit einer statischen IP-Adresse ausstattest, macht er kein DHCP mehr und Du sparst die Zeit beim Booten.

Ohne es verifiziert zu haben: Die Konfiguration des DHCP-Clients findet sich unter /etc/dhcp/dhclient.conf - dort findet sich auch ein Parameter "timeout" mit dem Wert 60, allerdings auskommentiert.


Adam1985 
Beitragsersteller
 20.05.2015, 00:21

Das habe ich versucht. Auskommentiert und den Wert auf 10 gesetzt aber es hat sich nichts geändert

0
franzhartwig  20.05.2015, 10:04
@Adam1985

"Auskommentiert" bedeutet normalerweise, dass die Zeile mit einer Raute am Anfang versehen und so zum Kommentar wird und deshalb nicht wirksam ist. Hast Du die Raute entfernt?

man dhclient.conf sagt, dass der Standardwert 60 Sekunden beträgt. Das würde bei Dir bedeuten, dass der erste DHCP Discover nicht beantwortet wird und der zweite auch erst ziemlich spät. Woher weißt Du überhaupt, dass der DHCP-Prozess so lange dauert? Die Tatsache, dass ein Timeout von 10 Sekunden keine Veränderung bringt, spricht für eine andere Ursache. Hast Du mal ein tcpdump gemacht und geschaut, was da passiert? Im Zweifel würde ich aber den Pi mit einer statischen Adresse versehen. Wenn sich die Zeit zum Hochfahren dann nicht wesentlich ändert, liegt es nicht am DHCP.

Der isc-dhcp-client loggt meines Wissens in /var/log/messages, allerdings finde ich bei mir keine Einträge. Das macht mich stutzig, aber vielleicht sieht es bei Dir anders aus.

0
Adam1985 
Beitragsersteller
 20.05.2015, 10:24
@franzhartwig

Hallo

Ich meinte mit auskommentiert, die Raute entfernt...

Beim Booten steht in den Meldungen, dass ein DHCP-Server gesucht wird o.Ä...

Das ist, wie zu erwarten war, passiert nachdem ich in cmdline.txt, ip=192.1... an das Ende eingetragen habe...

Damit habe ich doch eine statische IP, oder?

0
franzhartwig  20.05.2015, 11:12
@Adam1985

"in den Meldungen" - was bedeutet das konkret? Welche Meldungen meinst Du? Wie lautet die Meldung genau? Die Einstellung der IP-Adresse in der cmdline.txt habe ich noch nie getestet. Laut Doku soll der Pi damit eine statische Adresse haben. Damit ist die IP-Konfiguration aber noch nicht vollständig, deshalb wird er wohl weiterhin nach einem DHCP-Server suchen und dort die Verwendung dieser statischen IP-Adresse fordern. Vielleicht liegt da ja das Problem, ich habe ja keine Ahnung, was der DHCP-Server für eine Konfiguration hat. Auf diesem sollte auf jeden Fall die Adresse für den Pi reserviert sein, entweder über die MAC-Adresse oder indem Du die Adresse komplett aus dem DHCP-Adressbereich herausnimmst. Versuche es in der cmdline.txt mal mit:

ip=192.168.x.y::192.168.x.1:255.255.255.0::eth0:off

Die doppelten Doppelpunkte sind kein Versehen. Die Syntax soll wol sein:

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>

Die von mir genannte Zeile setzt also weder eine Netboot-Server-IP-Adresse noch den Hostname.

Ich persönlich bevorzuge jedoch die Konfiguration in der /etc/network/interfaces:

iface eth0 inet static

  address 192.168.x.y

  netmask 255.255.255.0

  gateway 192.168.x.1

Übrigens darfst Du ruhig Deine IP-Adresse ausschreiben. Mit der privaten Adresse kann niemand etwas Böses anstellen.

0
Adam1985 
Beitragsersteller
 20.05.2015, 11:30
@franzhartwig

Hi

Die Meldungen sind die, die während dem Booten des Pi's auf dem Bildschirm laufen bis der Log-In Prompt erscheint.

Was genau dort steht kann ich (noch) nicht sagen.

Mein DHCP-Server läuft auf einem Ubuntu-Rechner. Wie stelle ich da die Adressvergabe ein?

Ich werde mal die andere Methode testen. Damit wird man mir wohl eher helfen können.

Dass man mit der IP nix anstellen kann ist klar; ich wusste sie nur nicht mehr ;D...

0
franzhartwig  20.05.2015, 11:35
@Adam1985

Die Meldungen, die beim Boot über den Bildschirm laufen, finden sich in der Regel auch in den Logfiles wieder. /var/log/messages, /var/log/syslog, /var/log/boot sind da einen Blick wert. Wie Du einen DHCP-Server auf Ubuntu konfigurierst, hängt schlicht von der Software ab. Die man-Seite hilft da weiter, oder aber auch eine Suchmaschine. ubuntuusers.de hat auch sehr gute Anleitungen und Tipps.

0
Adam1985 
Beitragsersteller
 21.05.2015, 15:08
@franzhartwig

Die genaue Meldung aus /var/log/kern,log ist:

Waiting up to 100 more seconds for network

Dann zählt er in Zehner-Schritten bis 0 runter und macht dann weiter. Ich habe jetzt mal /etc/network/interfaces editiert, aber keine Änderung...

0
franzhartwig  21.05.2015, 15:23
@Adam1985

Dann unterhalten wir uns ja über ein anderes Problem. Wo steht denn in der Fehlermeldung etwas von "DHCP"? Nirgendwo. Hier liegt kein DHCP-Problem vor. Das hatte ich vermutet, weil ja schon die Änderung des Timeouts beim DHCP-Client keine Änderung brachte. So ist es auch kein Wunder, dass die statische IP-Adresse in der cmdline.txt oder /etc/network/interfaces nichts bringt. Unter https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=80330 finde ich, dass genau der Eintrag in der cmdline.txt für eben dieses Verhalten sorgt.

0
Adam1985 
Beitragsersteller
 23.05.2015, 18:24
@franzhartwig

OK... Habe das Problem gelöst indem ich den Eintrag aus /boot/cmdline.txt entfernt und stattdessen den Eintrag in /etc/network/interface gemacht habe.

Danke :D

0
franzhartwig  25.05.2015, 18:20
@Adam1985

Wunderbar. Ich hatte diverse Forenbeiträge, wo ich das mit /boot/cmdline.txt auch gefunden habe, so verstanden, dass das lediglich eine vorübergehende Lösung zum Start ist. Die meisten Nutzer haben Windows-Rechner, mit denen sieht man nur die Boot-Partition der SD-Karte. Das Editieren der /etc/network/interface ist deshalb nicht möglich.

0

bei mir habe ich das ganz einfach gelöst:

In die Datei /etc/init.d/rc habe ich ans  Ende ( vor trap - EXIT # .... ) 

die Zeilen

ifconfig eth0 192.168.1.90/24

route add default gw 192.168.1.1 

geschrieben. Da musst du natürlich deine eigenen Daten für die IP-Adresse und die des Gateway ( wenn es den überhaupt bei dir gibt ) schreiben. Die /24 hinter der IP-Adresse ist eine andere Schreibweise für die Netzwerkmaske 255.255.255.0 . ifconfig versteht auch diese Art.

Woher ich das weiß:Berufserfahrung – openSuSE seit 1995

Adam1985 
Beitragsersteller
 20.05.2015, 12:51

Wenn ich nur ein Patchkabel verwenden möchte, also LAN zu LAN, dann habe ich ja kein Gateway. Richtig?

0
guenterhalt  20.05.2015, 13:15
@Adam1985

das sind unterschiedliche Dinge.

Wenn du mit dem Pi nur im lokalen Netzwerk Daten austauschen willst, dann brauchst du keinen Gateway. Sobald du damit aber ins Internetgehen willst ( apt-get install ...  benötigt einen solchen Zugang ), dann muss der Pi wissen, welche  Netzwerkadresse das "Tor zu Welt" ist.

In diesem Falle ist es u.U. auch sinnvoll, die Datei /etc/resolv.conf mit Inhalt zu versehen. Der Inhalt kann so aussehen:

nameserver 83.169.134.22

nameserver 83.167.184.45

Diese Daten sollten im Router stehen, denn der bezieht sie übers Netz vom Provider. Einige Router können auch die DNS-Adresses selbst in den Datenstrom einfügen, so dass im PI der Eintrag

nameserver <IP-Adresse-desGateway>

ausreichend ist.

0
Adam1985 
Beitragsersteller
 21.05.2015, 15:09
@guenterhalt

Es geht nur um reinen Daten-Austausch über SSH ohne einen Router. Das funktioniert auch. Aber beim booten ohne ihn an meinen Rechner anzuchließen, dauert es immer über 110 sek, die er mit Netzwerk-Suche verbringt, bis er hochgefahren ist.

0
guenterhalt  21.05.2015, 18:59
@Adam1985

in dem Falle kann das mit route add und der /etc/resolv.conf entfallen.

Was ich jetzt bei mir lieber nicht ausprobieren will ( mein Pi ist im Dauereinsatz für diverse Dinge wie Heizung, Alarme, Jalousien ... )

Eretze doch mal in der Datei

/etc/network/interfaces

die in den Einträgen

iface eth0 inet dhcp

und

iface default inet dhcp

dhcp durch  static

Bei mir hat die Boot-Zeit keine Bedeutung, so dass sich das nicht weiter verfolgt habe.

Es gibt zu interfaces eine man-Page

man interfaces

mit weiteren Hinweisen.

0
Adam1985 
Beitragsersteller
 23.05.2015, 18:25
@guenterhalt

Habe es glöst mmit einem Eintrag in /etc/network/interface

Danke :D

0
guenterhalt  23.05.2015, 18:51
@Adam1985

weiß du wie man ohne Eingabe eines Passworts Daten mit ssh / scp übertragen kann?

Die notwendigen Dateien und Daten sind relativ schnell eingerichtet.

1. in beiden Rechner das Verzeichnis .ssh anlegen ( mit cmod 700 .ssh die richtigen Zugriffsrechte setzen)

2. ssh-keygen -t  rsa 

laufen lassen ( Fragen nur mit Enter beantworten)

3. In .ssh wurden dabei die Dateien id_rsa  und id_rsa.pub  erstellt.

4. kopiere  id_rsa.pub in den Pi  nach  ~/.ssh/  mit dem neuen Namen authorized_keys

5. Wenn du mit mehreren Computern auf den Pi zugreifen willst, dann muss die dort erstellte id_rsa.pub an authorized_keys  im Pi angehängt werden.

Der Aufruf scp datei <UserNameImPI>@IP-Adresse-desPI:/ZielVerzeichnis/Datei

sollte dann ohne Passwort-Abfrage erfolgen.

 

0