Mengapa Pi saya selalu memiliki alamat IP yang sama?

22

Router saya menggunakan DHCP, dan setiap kali saya memformat ulang raspberry pi saya, bahkan ketika menggunakan kartu microSD yang berbeda, selalu memiliki ip LAN yang sama. Saya tidak yakin bagaimana IP diberikan, tetapi saya menganggap perangkat memiliki id unik pada jaringan yang diakui router saya?


sumber
Bagaimana ini bisa terjadi? Saya mengajukan pertanyaan pada SE dan memiliki jumlah suara positif! Dan itu banyak hal buruk.

Jawaban:

36

Raspberry Pi Anda memiliki ID unik, yang disebut alamat MAC, sebenarnya dua tepatnya. Setiap adapter jaringan memiliki salah satunya. Jadi adaptor Wi-Fi memiliki satu ID unik dan adaptor Ethernet tidak.

Dan inilah mengapa Raspberry Pi Anda mendapatkan IP yang sama. Untuk router Anda, tidak penting apa yang Anda lakukan dengan perangkat ini. Itu hanya mengenali MAC dan menyediakan IP yang sama seperti sebelumnya.

Sunting: Seperti yang ditunjukkan Beege, IP masih dapat berubah karena 'D' di DHCP berarti dinamis. Tetapi jika perangkat Anda mendapatkan IP yang sama seperti sebelumnya melalui DHCP, itu karena MAC yang dikenali.

ItsKiddow
sumber
9
Penjelasan yang bagus. Saya pikir perlu disebutkan bahwa alamat MAC yang sama tidak akan selalu mendapatkan IP yang sama dari server DHCP - ini masih merupakan layanan "dinamis", jadi mungkin IP diambil oleh perangkat lain dan Pi Anda berakhir dengan yang berbeda Penugasan IP.
Beege
3
@Beege oh ya, tentu, terima kasih! Seseorang dapat memilih untuk memesan IP khusus untuk Pi ketika IP permanen diinginkan, misalnya saat menjalankan server di atasnya. Tapi ini harus diaktifkan secara khusus dengan router (atau perangkat apa pun yang menyediakan layanan DHCP di jaringan)
ItsKiddow
2
actually two to be precise- dengan asumsi pi3b atau 3b +
Jaromanda X
7
Fakta bahwa IP itu sama BUKAN karena MAC. MAC adalah pengidentifikasi bahwa router memiliki akses. Router dapat dikonfigurasikan untuk mencoba memberi Anda IP yang sama ketika sewa diperbarui, atau dapat secara acak memberikan Anda yang berbeda. Router Anda dikonfigurasikan (oleh pabrikan) untuk melakukan yang pertama. Ini sebenarnya mencegah banyak masalah jaringan yang disebabkan oleh masalah terkait IP dinamis (port pencetakan IP muncul di benak). Kemampuan untuk mendapatkan IP yang sama disebabkan oleh MAC, tetapi saya dapat dengan mudah mengatur DHCP pada router untuk memberikan setumpuk perangkat yang berbeda IP yang sama.
Nelson
1
Implementasi DHCP yang berkualitas akan membuat cache alamat MAC sebelumnya & penugasan IP. Ketika ia melihat alamat MAC yang di-cache, ia akan cenderung menawarkan IP yang sama (jika tersedia) lagi. Ini juga akan menolak memberikan IP ke alamat MAC yang berbeda kecuali jika tidak memiliki alamat gratis yang tersisa. Karena ini bergantung pada implementasi spesifik ... dan kualitas router rumah ada di mana-mana ... perilaku tidak harus konsisten tergantung pada model router Anda.
Tim Campbell
16

Selain jawaban yang sudah diberikan saya akan memberikan beberapa informasi latar belakang tambahan.

Secara umum protokol DHCP dibuat untuk mengurangi perubahan dinamis sebanyak mungkin. Ini adalah aspek stabilitas. Tidak masalah banyak pada jaringan rumah kecil tetapi jaringan besar dengan sakelar dan router memerlukan waktu untuk mencapai kondisi optimal. Switch harus mempelajari tetangganya dan router harus mempelajari rute. Perubahan berat alamat ip tidak baik untuk kondisi ini.

Kebanyakan orang mungkin berpikir server DHCP hanya memberikan alamat ip ke klien dan hanya itu. Tapi itu hanya setengah kebenaran. Inilah jabat tangan DHCP yang khas:

(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

Seperti yang Anda lihat klien diidentifikasi dengan alamat macnya b8: 27: eb: 0e: 3c: 6f meminta alamat ip tertentu yang lebih disukai. Ia tahu apa alamat ip yang dimilikinya sebelumnya, juga setelah startup baru. Server DHCP hanya mengonfirmasinya. Apa yang diberikannya kepada klien disebut sewa . Ini berisi batas waktu (bersama dengan banyak opsi penting lainnya) berapa lama klien dapat menggunakan alamat ip tanpa meminta lagi. Batas waktu tergantung pada pengaturan dan sebagian besar diatur ke beberapa jam. Server DHCP menyimpan leasing dalam cache-nya dan akan mencadangkannya selama mungkin untuk klien yang sama, juga jika shutdown. Jadi itu hanya akan mengkonfirmasi klien untuk sewa ketika boot kembali. Hanya ketika server tidak memiliki sewa yang tidak terpakai lainnya untuk diberikan kepada klien, ia akan mengambil sewanya. Jabat tangan kemudian akan terlihat seperti ini:

(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

Seperti yang Anda lihat, server DHCP menolak (DHCPNAK) permintaan dan menawarkan alamat ip baru yang kemudian pada langkah selanjutnya diminta oleh klien. Langkah tambahan ini dibuat untuk memberi klien kemungkinan untuk tidak menerima alamat ip yang ditawarkan ...

Ingo
sumber
4
+1 IMHO ini adalah jawaban yang benar. Ini hanyalah cara protokol DHCP bekerja.
Jos