Dlaczego moje Pi zawsze ma ten sam adres IP?

22

Mój router korzysta z DHCP i za każdym razem, gdy formatuję moją pamięć Raspberry Pi, nawet gdy używam innej karty microSD, zawsze ma ten sam IP LAN. Nie jestem pewien, w jaki sposób przypisywane są adresy IP, ale zakładam, że urządzenie ma unikalny identyfikator w sieci, który rozpoznaje mój router?


źródło
Jak to się stało? Zadaję pytanie na temat SE i ma pozytywną liczbę głosów! I to jest wiele pozytywnych opinii.

Odpowiedzi:

36

Twój Raspberry Pi ma unikalny identyfikator, zwany adresem MAC, w rzeczywistości dwa, by być precyzyjnym. Każda karta sieciowa ma jedną z nich. Tak więc adapter Wi-Fi ma jeden unikalny identyfikator, a adapter Ethernet ma.

I właśnie dlatego Twoje Raspberry Pi otrzymuje ten sam adres IP. Dla routera nie jest ważne, co dokładnie robisz z urządzeniem. Po prostu rozpoznaje MAC i zapewnia taki sam adres IP jak poprzednio.

Edycja: Jak wskazał Beege, adres IP może się nadal zmieniać, ponieważ „D” w DHCP oznacza dynamikę. Ale jeśli twoje urządzenie otrzyma taki sam adres IP jak wcześniej przez DHCP, to z powodu rozpoznanego adresu MAC.

ItsKiddow
źródło
9
Dobre wytłumaczenie. Myślę, że warto wspomnieć, że ten sam adres MAC nie zawsze otrzyma ten sam adres IP z serwera DHCP - wciąż jest to usługa „dynamiczna”, więc możliwe jest, że adres IP zostanie przejęty przez inne urządzenie, a twoje Pi skończy się z innym Przypisanie IP.
Beege
3
@Beege o tak, absolutnie, dzięki! Można wybrać zarezerwowanie określonego adresu IP dla Pi, gdy pożądane jest stałe IP, na przykład podczas uruchamiania na nim serwera. Ale należy to włączyć specjalnie z routerem (lub jakimkolwiek innym urządzeniem zapewniającym usługę DHCP w sieci)
ItsKiddow
2
actually two to be precise- zakładając, że pi3b lub 3b +
Jaromanda X
7
Fakt, że adres IP jest taki sam, NIE wynika z MAC. MAC to identyfikator, do którego router ma dostęp. Router można skonfigurować tak, aby próbował podać ci ten sam adres IP po odnowieniu dzierżawy, lub może losowo przypisać ci inny. Router jest skonfigurowany (przez producenta) do wykonania pierwszego. W rzeczywistości zapobiega to wielu problemom z siecią spowodowanym problemami związanymi z dynamicznymi adresami IP (przychodzą na myśl porty drukowania adresów IP). Możliwość uzyskania tego samego adresu IP wynika z adresu MAC, ale mogę łatwo skonfigurować DHCP na routerze, aby nadać stosowi różnych urządzeń ten sam adres IP.
Nelson
1
Jakość implementacji DHCP spowoduje buforowanie poprzednich adresów MAC i przypisań IP. Kiedy zobaczy buforowany adres MAC, będzie znowu oferował ten sam adres IP (jeśli jest dostępny). Będzie również opierać się podawaniu adresu IP innemu adresowi MAC, chyba że nie pozostaną wolne adresy. Ponieważ zależy to od konkretnej implementacji ... a jakość routerów domowych jest wszędzie, zachowanie niekoniecznie będzie spójne w zależności od modelu routera.
Tim Campbell,
16

Oprócz udzielonych już odpowiedzi podam dodatkowe informacje ogólne.

Ogólnie rzecz biorąc, protokół DHCP został stworzony w celu maksymalnego ograniczenia zmian dynamicznych. Jest to aspekt stabilności. W małych sieciach domowych nie ma to większego znaczenia, ale duże sieci z przełącznikami i routerami potrzebują trochę czasu, aby uzyskać optymalny stan. Przełączniki muszą nauczyć się swoich sąsiadów, a router musi nauczyć się tras. Ciężkie zmiany adresów IP nie są dobre dla tego stanu.

Większość ludzi może myśleć, że serwer DHCP po prostu podaje adres IP klientowi i to wszystko. Ale to tylko połowa prawdy. Oto typowy uścisk dłoni 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

Jak widać, klient identyfikowany za pomocą adresu mac b8: 27: eb: 0e: 3c: 6f żąda określonego adresu IP, który woli. Wie, jaki adres IP ma wcześniej, także po ponownym uruchomieniu. Serwer DHCP tylko to potwierdza. To, co daje klientowi, nazywa się leasingiem . Zawiera limit czasu (wraz z wieloma innymi ważnymi opcjami), jak długo klient może używać adresu IP bez ponownego żądania. Limit czasu zależy od konfiguracji i najczęściej jest ustawiony na kilka godzin. Serwer DHCP przechowuje dzierżawę w swojej pamięci podręcznej i rezerwuje ją tak długo, jak to możliwe dla tego samego klienta, również w przypadku wyłączenia. Dlatego po ponownym uruchomieniu po prostu potwierdzi klient dzierżawy. Tylko wtedy, gdy serwer nie ma innych nieużywanych dzierżaw do przekazania klientom, przejmie zużyty. Uścisk dłoni będzie wyglądał następująco:

(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

Jak widać serwer DHCP odrzuca (DHCPNAK) żądanie i oferuje nowy adres IP, który następnie w następnym kroku jest wymagany przez klienta. Ten dodatkowy krok ma na celu umożliwienie klientowi nieakceptowania oferowanego adresu IP ...

Ingo
źródło
4
+1 IMHO to poprawna odpowiedź. Jest to po prostu sposób, w jaki działa protokół DHCP.
Jos