Perché il mio Pi ha sempre lo stesso indirizzo IP?


22

Il mio router utilizza DHCP e ogni volta che riformatto il mio raspberry pi, anche quando utilizzo una scheda microSD diversa, ha sempre lo stesso IP LAN. Non sono sicuro di come siano assegnati gli IP, ma suppongo che il dispositivo abbia un ID univoco sulla rete riconosciuto dal mio router?


Come è successo? Faccio una domanda su SE e ha un numero positivo di voti! E questo è un sacco di voti.

Risposte:


36

Il tuo Raspberry Pi ha un ID univoco, chiamato indirizzo MAC, in realtà due per essere precisi. Ogni scheda di rete ne ha una. Quindi l'adattatore Wi-Fi ha un ID univoco e l'adattatore Ethernet ha.

Ed è per questo che Raspberry Pi ottiene lo stesso IP. Per il tuo router non è importante cosa stai facendo esattamente con il dispositivo. Riconosce solo il MAC e fornisce lo stesso IP di prima.

Modifica: Come ha sottolineato Beege, l'IP può ancora cambiare poiché la "D" in DHCP sta per dinamico. Ma se il tuo dispositivo ottiene lo stesso IP di prima tramite DHCP, è a causa del MAC riconosciuto.


9
Buona spiegazione Penso che valga la pena ricordare che lo stesso indirizzo MAC non otterrà sempre lo stesso IP dal server DHCP: è ancora un servizio "dinamico", quindi è possibile che l'IP venga preso da un altro dispositivo e il tuo Pi finisca con un diverso Assegnazione IP.
Beege

3
@ Bee oh sì, assolutamente, grazie! Si può scegliere di riservare un IP specifico per il Pi quando si desidera un IP permanente, ad esempio quando si esegue un server su di esso. Ma questo deve essere abilitato specificamente con il router (o qualunque altro dispositivo fornisca il servizio DHCP nella rete)
ItsKiddow

2
actually two to be precise- supponendo pi3b o 3b +
Jaromanda X

7
Il fatto che l'IP sia lo stesso NON è dovuto al MAC. Il MAC è un identificatore a cui il router ha accesso. Il router può essere configurato per provare a fornire lo stesso IP quando il contratto di locazione viene rinnovato, oppure può assegnarne uno in modo casuale. Il router è configurato (dal produttore) per eseguire il primo. Questo in realtà previene molti problemi di rete causati da problemi dinamici relativi all'IP (vengono in mente le porte di stampa IP). La possibilità di ottenere lo stesso IP è dovuta al MAC, ma posso facilmente impostare il DHCP sul router per dare a un mucchio di dispositivi diversi lo stesso IP.
Nelson,

1
Un'implementazione DHCP di qualità memorizzerà nella cache gli indirizzi MAC e le assegnazioni IP precedenti. Quando vede un indirizzo MAC memorizzato nella cache, tenderà a offrire di nuovo lo stesso IP (se disponibile). Resisterà anche a fornire l'IP a un indirizzo MAC diverso a meno che non rimangano indirizzi liberi. Poiché ciò si basa sull'implementazione specifica ... e la qualità dei router domestici è ovunque ... il comportamento non sarà necessariamente coerente a seconda del modello del router.
Tim Campbell,

16

Oltre alle risposte già fornite, fornirò alcune informazioni di base aggiuntive.

In generale, il protocollo DHCP è realizzato per ridurre il più possibile le modifiche dinamiche. È un aspetto della stabilità. Non importa molto su piccole reti domestiche, ma le grandi reti con switch e router richiedono del tempo per entrare in uno stato ottimizzato. Gli switch devono imparare i vicini e il router deve imparare i percorsi. Forti cambiamenti di indirizzi IP non vanno bene per questo stato.

Molte persone potrebbero pensare che il server DHCP fornisca semplicemente un indirizzo IP a un client e basta. Ma è solo metà della verità. Ecco una tipica stretta di mano DHCP:

(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

Come puoi vedere il client identificato con il suo indirizzo mac b8: 27: eb: 0e: 3c: 6f richiede un indirizzo IP specifico che preferisce. Sa quale indirizzo IP ha prima, anche dopo un nuovo avvio. Il server DHCP lo conferma solo. Che ciò che dà al cliente è chiamato un contratto di locazione . Contiene un timeout (insieme a molte altre opzioni importanti) per quanto tempo il client può utilizzare l'indirizzo IP senza richiedere nuovamente. Il timeout dipende dall'impostazione ed è principalmente impostato su alcune ore. Il server DHCP memorizza il contratto di locazione nella sua cache e lo riserverà il più a lungo possibile per lo stesso client, anche in caso di arresto. Quindi confermerà il client per il suo contratto di locazione al riavvio. Solo quando il server non ha altri contratti di locazione inutilizzati da dare ai client, prenderà quello usato. La stretta di mano apparirà così:

(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

Come puoi vedere il server DHCP rifiuta (DHCPNAK) la richiesta e offre un nuovo indirizzo IP che nel passaggio successivo viene richiesto dal client. Questo passaggio aggiuntivo è fatto per dare al cliente la possibilità di non accettare l'indirizzo IP offerto ...


4
+1 IMHO questa è la risposta corretta. È semplicemente il modo in cui funziona il protocollo DHCP.
Jos
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.