Warum hat mein Pi immer die gleiche IP-Adresse?


22

Mein Router verwendet DHCP und jedes Mal, wenn ich meinen Himbeer-Pi neu formatiere, auch wenn ich eine andere microSD-Karte verwende, hat er immer die gleiche LAN-IP. Ich bin nicht ganz sicher, wie die IPs zugewiesen werden, aber ich gehe davon aus, dass das Gerät eine eindeutige ID im Netzwerk hat, die mein Router erkennt.


Wie ist es passiert? Ich stelle eine Frage zu SE und es hat eine positive Anzahl von Stimmen! Und das sind viele positive Stimmen.

Antworten:


36

Ihr Raspberry Pi hat eine eindeutige ID, die als MAC-Adresse bezeichnet wird, genauer gesagt zwei. Jeder Netzwerkadapter hat einen davon. Der WLAN-Adapter verfügt also über eine eindeutige ID, der Ethernet-Adapter über eine eindeutige ID.

Und aus diesem Grund erhält Ihr Raspberry Pi die gleiche IP. Für Ihren Router ist es nicht wichtig, was Sie genau mit dem Gerät machen. Es erkennt nur den MAC und bietet die gleiche IP wie zuvor.

Edit: Wie Beege betonte, kann sich die IP noch ändern, da das 'D' in DHCP für dynamisch steht. Wenn Ihr Gerät jedoch die gleiche IP-Adresse wie zuvor über DHCP erhält, liegt dies an der erkannten MAC-Adresse.


9
Gute Erklärung. Ich denke, es ist erwähnenswert, dass die gleiche MAC-Adresse nicht immer die gleiche IP vom DHCP-Server erhält - es ist immer noch ein "dynamischer" Dienst, daher ist es möglich, dass die IP von einem anderen Gerät übernommen wird und Ihr Pi eine andere erhält IP-Zuweisung.
Beege

3
@Beege oh ja, absolut danke! Man kann eine bestimmte IP für den Pi reservieren, wenn eine permanente IP gewünscht wird, zum Beispiel wenn ein Server darauf läuft. Dies muss jedoch speziell für den Router aktiviert werden (oder für ein anderes Gerät, das einen DHCP-Dienst im Netzwerk
bereitstellt

2
actually two to be precise- angenommen pi3b oder 3b +
Jaromanda X

7
Die Tatsache, dass die IP die gleiche ist, liegt NICHT am MAC. Der MAC ist eine Kennung, auf die der Router Zugriff hat. Der Router kann so konfiguriert werden, dass er versucht, Ihnen die gleiche IP zu geben, wenn die Lease erneuert wird, oder er kann Ihnen nach dem Zufallsprinzip eine andere zuweisen. Ihr Router ist (vom Hersteller) für das erstere konfiguriert. Dies verhindert tatsächlich eine Vielzahl von Netzwerkproblemen, die durch dynamische IP-Probleme verursacht werden (IP-Druckanschlüsse fallen ein). Die Möglichkeit, die gleiche IP-Adresse zu erhalten, liegt am MAC, aber ich kann den DHCP-Code auf dem Router problemlos so einrichten, dass einem Stapel verschiedener Geräte die gleiche IP-Adresse zugewiesen wird.
Nelson

1
Bei einer hochwertigen DHCP-Implementierung werden vorherige MAC-Adressen und IP-Zuweisungen zwischengespeichert. Wenn eine zwischengespeicherte MAC-Adresse angezeigt wird, wird tendenziell dieselbe IP-Adresse (sofern verfügbar) erneut angeboten. Es wird auch widerstehen, die IP einer anderen MAC-Adresse zuzuweisen, es sei denn, es sind keine freien Adressen mehr vorhanden. Da dies von der spezifischen Implementierung abhängt ... und die Qualität der Heimrouter allgegenwärtig ist ... ist das Verhalten abhängig von Ihrem Routermodell nicht unbedingt konsistent.
Tim Campbell

16

Zusätzlich zu den bereits gegebenen Antworten werde ich einige zusätzliche Hintergrundinformationen geben.

Im Allgemeinen wird das DHCP-Protokoll erstellt, um dynamische Änderungen so gering wie möglich zu halten. Es ist ein Aspekt der Stabilität. In kleinen Heimnetzwerken spielt es keine Rolle, aber große Netzwerke mit Switches und Routern benötigen einige Zeit, um in einen optimierten Zustand zu gelangen. Switches müssen ihre Nachbarn und Router die Routen lernen. Starke Änderungen der IP-Adressen sind für diesen Zustand nicht gut.

Die meisten Leute denken vielleicht, der DHCP-Server gibt einem Client nur eine IP-Adresse und das wars. Aber es ist nur die halbe Wahrheit. Hier ist ein typischer DHCP-Handshake:

(client) DHCPREQUEST for 192.168.10.75 from b8:27:eb:0e:3c:6f (raspi3) via wlan0
(server) DHCPACK on 192.168.10.75 to b8:27:eb:0e:3c:6f (raspi3) via wlan0

Wie Sie sehen, fordert der Client, der mit seiner Mac-Adresse b8: 27: eb: 0e: 3c: 6f identifiziert ist, eine bestimmte IP-Adresse an, die er bevorzugt. Es weiß, welche IP-Adresse es vorher hat, auch nach einem Neustart. Der DHCP-Server bestätigt dies nur. Das, was es dem Kunden gibt, nennt man Leasing . Es enthält eine Zeitüberschreitung (zusammen mit vielen anderen wichtigen Optionen), wie lange der Client die IP-Adresse verwenden kann, ohne sie erneut anzufordern. Das Timeout ist abhängig vom Setup und wird meist auf einige Stunden eingestellt. Der DHCP-Server speichert die Lease in seinem Cache und reserviert sie so lange wie möglich für denselben Client, auch wenn er heruntergefahren wird. Daher wird der Client beim nächsten Start nur für seine Lease bestätigt. Nur wenn der Server keine anderen unbenutzten Leases für Clients hat, wird die verwendete verwendet. Der Handshake sieht dann so aus:

(client) DHCPREQUEST for 192.168.10.75 from b8:27:eb:0e:3c:6f (raspi3) via wlan0
(server) DHCPNAK on 192.168.10.75 to b8:27:eb:0e:3c:6f via wlan0
(client) DHCPDISCOVER from b8:27:eb:0e:3c:6f via wlan0
(server) DHCPOFFER on 192.168.10.99 to b8:27:eb:0e:3c:6f via wlan0
(client) DHCPREQUEST for 192.168.10.99 from b8:27:eb:0e:3c:6f (raspi3) via wlan0
(server) DHCPACK on 192.168.10.99 to b8:27:eb:0e:3c:6f (raspi3) via wlan0

Wie Sie sehen, lehnt der DHCP-Server (DHCPNAK) die Anfrage ab und bietet eine neue IP-Adresse an, die dann im nächsten Schritt vom Client angefordert wird. Dieser zusätzliche Schritt wird ausgeführt, um dem Client die Möglichkeit zu geben, die angebotene IP-Adresse nicht zu akzeptieren ...


4
+1 IMHO das ist die richtige Antwort. Es ist einfach die Art und Weise, wie das DHCP-Protokoll funktioniert.
Jos
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.