Bagaimana alamat IP dipetakan ke alamat MAC?

14

Saya telah membaca tentang perbedaan antara alamat MAC dan IP, dan mengapa kita membutuhkan keduanya.

Singkatnya, alamat MAC adalah ID unik fisik yang tidak dapat diubah untuk setiap perangkat sementara alamat IP ditetapkan, dapat diubah dan virtual. Untuk menganalogikan, alamat MAC seperti orang yang memiliki nama permanen, dan alamat IP adalah tempat mereka saat ini tinggal.

Di dunia nyata, kami menautkan alamat dan nama dengan bantuan buku telepon. Mekanisme apa yang menghubungkan alamat IP ke alamat MAC dan di mana mekanisme ini berada di jaringan?

CodyBugstein
sumber
5
Setelah meninjau pertanyaan Anda, saya pikir Anda akan mendapat manfaat dari buku yang bagus. Pertimbangkan mempelajari sesuatu di sepanjang garis TCP / IP Illustrated, Vol. 1: Protokol oleh Stevens (FYI, edisi 1993 umumnya dianggap lebih baik daripada rilis ulang 2011, meskipun edisi 1993 hanya mencakup IPv4 secara mendalam).
Mike Pennington
"The Illustrated Network: Bagaimana TCP / IP Bekerja di Jaringan Modern" dan / atau "TCP / IP Guide: A, Referensi Protokol Internet Illustrated yang Komprehensif" juga layak untuk dilihat.
Jens Link
4
@ MikePennington Terima kasih, itu cara yang bagus untuk mengucapkannya, sebagai lawan dari "RTFM" dan -1. Saya membacanya sekarang online :)
CodyBugstein
1
Alamat MAC, pada kenyataannya, bukan fisik, atau tidak berubah, atau unik. Saya telah melihat perangkat yang mengacak MAC mereka di setiap reboot. Pasti ada Utilitas untuk hampir semua platform untuk mengubah MAC sementara waktu atau secara permanen dari hampir setiap antarmuka. iOS 8 bahkan akan mengacak wifi MAC untuk memindai jaringan.
MacLemon

Jawaban:

19

Mekanisme ini disebut Address Resolution Protocol (ARP) . Setiap perangkat ethernet IPv4 ARP untuk menyelesaikan alamat mac ethernet untuk IP target. Pemetaan IP ke mac disimpan di tabel ARP masing-masing perangkat (buku telepon dalam analogi Anda).

Untuk menyederhanakan: Dalam kebanyakan kasus, untuk menyelesaikan alamat MAC yang terkait dengan alamat IP, Anda mengirim paket ARP broadcast (ke semua perangkat di jaringan), menanyakan siapa yang memiliki alamat IP itu. Perangkat dengan alamat IP itu membalas ARP (dengan alamat MAC-nya).

mulaz
sumber
sebagian besar waktu itu hanya terlihat dari tabel arp lokal saya pikir. Baru pertama kali melakukan siaran
Cruncher
^ yeah tentu saja, setelah mengetahui perangkat MAC, ia menyimpan dalam tabel ARP untuk beberapa waktu (beberapa menit), jadi itu tidak harus mengulangi proses permintaan ARP untuk setiap paket.
mulaz
Oh, saya tidak menyadari bahwa itu menjatuhkan meja setelah beberapa menit. Saya pikir itu berlaku untuk sementara waktu. Apakah itu berarti racun ARP, Anda perlu mengirim tanggapan ARP secara semu?
Cruncher
Ya, dan host "asli", tidak boleh mengirim paket apa pun ke mesin yang diracuni, atau mesin akan menyimpan MAC 'asli'.
mulaz
1
Tergantung pada apa yang ingin Anda capai.
mulaz
13

Karena pertanyaan ini ditandai dengan IPv6, saya akan menjawabnya karena IPv6 sangat berbeda dari IPv4.

Untuk memulainya, tidak ada yang namanya ARPv6. Pemetaan antara alamat layer 2 dan IPv6 dilakukan oleh Neighbor Discovery Protocol (NDP), yang dikirim melalui ICMPv6. Dengan demikian, Anda tidak boleh mengabaikan ICMPv6 dan memfilternya, seperti kebiasaan dengan IP lama. NDP menyediakan dua jenis pesan yang menarik di sini: Permintaan Tetangga dan Iklan Tetangga. Sebuah node yang ingin mempelajari alamat layer-link untuk alamat IP tertentu mengirimkan Neighbor Solicitation ke alamat multicast-node solicited-node yang sesuai - tidak ada siaran untuk IPv6 lagi.

Sebagai contoh, jika alamat yang dimaksud adalah 2001:db8::0011:2233:4455:6677, maka alamat multicast solicited-node yang sesuai adalah ff02::1:ff55:6677, dan alamat multicast ethernet yang sesuai adalah 33:33:ff:55:66:77. Semua node dengan alamat yang berakhir pada *55:6677milik grup multicast dan akan mendengarkan itu - ini kemungkinan besar hanya sistem target itu sendiri. Permohonan Neighbor juga berisi alamat IPv6 unicast dan alamat MAC dari sistem yang diminta.

Pada tanda terima, simpul target menjawab dengan Iklan Tetangga, yang dikirim ke alamat unicast (lapisan tautan dan IPv6) dari simpul yang diminta. Dengan demikian, simpul yang diminta mempelajari alamat MAC dari simpul target.

Dan ya, spoofing NDP bekerja seperti spoofing ARP. Dan tidak, IPsec bukanlah jawabannya.

countermode
sumber
" ARP sendiri tidak dapat digunakan, karena itu dibuat untuk alamat lapisan jaringan 4-byte (yaitu IPv4). " Ini tidak benar. ARP menggunakan bidang panjang alamat untuk menentukan panjang alamat (hingga 255 oktet) untuk alamat layer-2 dan layer-3 (lihat RFC 826). Alasan ARP tidak dapat digunakan dengan IPv6 adalah karena IPv6 tidak memiliki siaran.
Ron Maupin
1
ARP diganti dengan NDP di v6 untuk alasan keamanan (dan kemudian, seperti semua protokol yang berdekatan dengan v6 yang baik, mengalami creep fitur signifikan), bukan karena v6 tidak memiliki siaran - ARP hanya menggunakan siaran L2 dan dengan mudah dapat diperluas untuk menyediakan alamat v6.
Nick Bastin
2
Saya tidak tahu apakah ARP diganti karena alasan keamanan. Sejauh yang saya lihat ada keinginan untuk menutup semua protokol kontrol oleh ICMPv6. Sebagai efek samping, ya, Anda dapat mengamankan ICMPv6 dengan IPsec. Namun, IPsec memerlukan pertukaran kunci, dan IKE menggunakan lebih dari UDP - yang membutuhkan alamat IP. Salah satu tugas NDP adalah untuk menegosiasikan alamat IP, dan pertukaran kunci manual tidak skala, sehingga gagasan NDP + IPsec = aman NDP tidak berfungsi seperti ini. Alternatif seperti SeND belum lepas landas (dan kemungkinan tidak akan pernah). Pada akhirnya saya tidak melihat keuntungan keamanan NDP dibandingkan ARP.
countermode
4

Jawabannya bagus. Jika itu membantu, berikut ini adalah deskripsi dalam hal analogi buku telepon Anda. Istilah jejaring nyata dalam tanda kurung.

Berdasarkan nama mereka (alamat IP) Anda tahu mereka tinggal di lingkungan Anda (domain siaran). Pertama Anda melihat di buku telepon (cache ARP) Anda untuk melihat apakah Anda sudah tahu alamatnya (alamat MAC). Jika mereka tidak ada di buku telepon, Anda keluar dan berteriak (menyiarkan), "Di mana Steve tinggal?" Cukup keras untuk didengar semua orang (permintaan ARP). Dengan asumsi Steve memang tinggal di sana dan dia bangun, dia menjawab — hanya untukmu, tidak berteriak— “Ini alamat saya” (balasan ARP). Anda menuliskannya di buku telepon untuk referensi di masa mendatang (caching ARP).

Jacktose
sumber
Tentu. Itu adalah latihan yang menyenangkan bagi saya. Hal-hal nyata seperti siaran / unicast tidak memetakan dengan sempurna analogi (berteriak / berbicara / mail?), Jadi ambil sebutir garam.
Jacktose
Untuk editor: Saya menggunakan alamat nanti dalam analogi, untuk MAC.
Jacktose
2
  1. Alamat MAC dapat diubah. Di Linux, gunakan ip atau ifconfig untuk sebagian besar Windows, lihat pengaturan driver antarmuka jaringan Anda.

  2. Anda tidak mengonversi apa pun. Alamat MAC ada di Layer-2, IP on Layer-3 dari model OSI. Untuk IPv4 ARP digunakan untuk mengetahui alamat MAC (Layer-2) mana yang dimiliki oleh alamat IP (Layer-3) tertentu. Untuk IPv6 ICMPv6 (Neighbor Discovery) digunakan.

Jens Link
sumber
Maaf, saya seharusnya mengatakan "menerjemahkan" bukan "mengubah"
CodyBugstein
0

Address Resolution Protocol (ARP)

Alamat IP ---> ARP ---> Alamat MAC

Alamat MAC ---> RARP ---> Alamat IP

Alamat IP = Alamat Logis [32 bit]

Alamat MAC = Alamat Fisik [48 bit]

Lapisan Jaringan (IP) ----> ARP ---> Lapisan Tautan Data (MAC)

Alamat IP diperlukan di Lapisan Jaringan untuk mengidentifikasi Host Sumber / Tujuan.

Alamat MAC diperlukan di Lapisan Tautan Data untuk mengidentifikasi Host Sumber / Tujuan.

Dipankar Nalui
sumber
Anda salah tentang RARP (banyak orang memiliki ide yang salah). Ini adalah sesuatu yang digunakan oleh host untuk menentukan alamat IP sendiri, bukan alamat IP host lain. Tidak lagi digunakan.
Ron Maupin
0

Tumpukan jaringan pertama-tama mencari IP tujuan dalam tabel peruteannya, dari sini menentukan dua hal.

  1. Apa antarmuka paket yang harus dikirim.
  2. Apa alamat IP dari hop berikutnya. Jika tidak ada hop berikutnya ditentukan dalam tabel routing IP dari tujuan digunakan sebagai hop berikutnya.

Perhatikan bahwa alamat IP next-hop adalah konsep yang murni lokal, tidak pernah menjadi bagian dari paket yang dikirim pada kabel.

Jika paket akan dikirim pada lapisan link multipoint (misalnya Ethernet dll), OS kemudian mencari hop berikutnya dalam tabel arp (ipv4) atau tetangga penemuan (ipv6). Jika ia menemukan entri non-basi di sana maka ia memiliki alamat MAC yang dibutuhkan dan dapat mengirim paket.

Jika tidak memiliki entri yang dapat digunakan, paket-paket itu ditakdirkan untuk menunggu hop berikutnya dan mengirimkan permintaan untuk menemukan alamat MAC. Mekanisme di sini sedikit berbeda antara v4 dan v6.

Dalam v4, permintaan arp dikirim. Ini biasanya disiarkan tetapi dalam beberapa kasus jika tuan rumah memiliki entri basi, ia dapat mencoba permintaan unicast terlebih dahulu dan hanya kembali menyiarkan jika itu gagal. Jawabannya biasanya unicast.

Dalam permintaan v6 tetangga baru dikirim ke alamat multicast yang dihasilkan dari alamat hop berikutnya. Target membalas dengan iklan tetangga unicast. Host juga dapat mengirim iklan tetangga ke grup "all-node multicast" (alias disiarkan secara efektif) untuk menyegarkan entri dalam cache penemuan tetangga rekan mereka.

Peter Green
sumber