Jaringan Komputer
Neighbor Discovery Protocol (NDP): Revolusi Pengganti ARP di Jaringan IPv6
Pelajari bagaimana pesan ICMPv6 Neighbor Solicitation dan Advertisement menghapus broadcast badai ARP, disertai cara kerja Solicited-Node Multicast dan DAD.

Dalam dunia IPv4, Address Resolution Protocol (ARP) telah menjadi tulang punggung resolusi alamat Layer 3 ke Layer 2 selama puluhan tahun. Namun, setiap administrator jaringan senior pasti pernah mengalami mimpi buruk yang disebabkan oleh ARP: broadcast storm (badai siaran). Ketika sebuah switch dibanjiri ratusan ribu ARP Request per detik, setiap komputer di segmen jaringan lokal terpaksa membangkitkan hardware interrupt pada CPU-nya hanya untuk membaca paket siaran yang sebenarnya ditujukan kepada perangkat lain.
IPv6 melakukan langkah revolusioner yang berani: menghapus konsep siaran (broadcast) secara total. Sebagai gantinya, IETF merancang Neighbor Discovery Protocol (NDP) yang didefinisikan dalam RFC 4861. NDP tidak lagi berjalan mentah di atas lapisan Ethernet seperti ARP, melainkan terintegrasi mulus sebagai bagian dari protokol ICMPv6 (Internet Control Message Protocol version 6).
Bayangkan perbedaan ini seperti mencari seseorang di aula pertemuan besar. Metode ARP ibarat berteriak menggunakan pengeras suara berkekuatan penuh di tengah aula: "Siapa yang memiliki KTP bernomor 192.168.1.50? Jawab ke saya!" Akibatnya, seribu orang di aula terganggu pembicaraannya dan harus memeriksa nomor KTP masing-masing. Sebaliknya, metode NDP di IPv6 ibarat memanggil nomor meja tertentu melalui walkie-talkie berfrekuensi khusus (Solicited-Node Multicast): hanya host yang memantau frekuensi tersebut yang merespons, sementara 999 orang lainnya tetap tenang tanpa gangguan sedikit pun.
Dalam artikel ini, kita akan membedah arsitektur internal NDP, lima pesan utama ICMPv6, mekanisme pengalamatan Solicited-Node Multicast, algoritma Duplicate Address Detection (DAD), hingga teknik inspeksi paket langsung dari terminal Linux dan router enterprise.
Yang akan dipelajari
Setelah menyelesaikan materi ini, Anda akan dapat:
- Menjelaskan kelemahan fundamental ARP IPv4 dan bagaimana NDP IPv6 mengeliminasinya melalui targeted multicast.
- Menguraikan struktur dan fungsi dari 5 pesan ICMPv6 NDP (RS, RA, NS, NA, dan Redirect).
- Menghitung alamat Solicited-Node Multicast dan memetakan ke alamat MAC Multicast Ethernet secara presisi.
- Menganalisis siklus hidup Duplicate Address Detection (DAD) dan status Neighbor Cache (INCOMPLETE, REACHABLE, STALE, DELAY, PROBE).
- Melakukan inspeksi, manipulasi tabel neighbor, dan pemecahan masalah NDP menggunakan CLI Linux (
ip neigh), Cisco IOS, dan MikroTik RouterOS.
Mengapa ARP Ditinggalkan: Masalah Fundamental Broadcast
Sebelum menyelami NDP, kita harus memahami mengapa arsitektur ARP pada IPv4 dianggap usang dan tidak scalable untuk jaringan modern:
- Beban CPU pada Seluruh Node Segmen L2: Paket ARP Request dikirim ke alamat MAC tujuan
ff:ff:ff:ff:ff:ff. Switch Layer 2 akan mem-flood frame ini ke seluruh port aktif dalam VLAN yang sama. Kartu jaringan (NIC) setiap perangkat tidak dapat memfilter paket ini di tingkat hardware, sehingga sistem operasi harus memproses paket tersebut hingga ke kernel Layer 3 sebelum menyadari bahwa IP tersebut bukan miliknya. - Ketiadaan Fitur Tambahan Terpadu: Di IPv4, resolusi alamat ditangani ARP, penemuan router ditangani mekanisme terpisah (seperti IRDP atau konfigurasi manual), dan autokonfigurasi membutuhkan server DHCP eksternal. Mekanisme ini terfragmentasi.
- Kerentanan Keamanan Bawaan: ARP adalah protokol stateless tanpa otentikasi. Setiap host dapat mengirimkan Gratuitous ARP palsu untuk melakukan ARP Poisoning atau serangan Man-in-the-Middle (MitM) tanpa verifikasi keabsahan.
IPv6 menyatukan fungsi-fungsi tersebut ke dalam payung besar NDP yang berjalan di atas protokol ICMPv6. Karena menggunakan pengalamatan Multicast, kartu jaringan (NIC) modern dapat memanfaatkan filter perangkat keras (multicast hardware filtering) untuk langsung membuang frame yang tidak relevan di level chip fisik tanpa mengganggu prosesor utama (CPU host).
Lima Pesan Inti ICMPv6 dalam NDP
Berdasarkan RFC 4861, Neighbor Discovery Protocol memanfaatkan 5 tipe pesan ICMPv6 khusus. Semua pesan ini dikirimkan dengan nilai IPv6 Hop Limit sebesar 255. Ini adalah mekanisme keamanan cerdas: jika sebuah router meneruskan paket ini, nilai Hop Limit akan berkurang menjadi 254 atau lebih rendah. Node penerima akan menolak paket NDP yang memiliki Hop Limit kurang dari 255, sehingga penyerang dari luar subnet lokal tidak dapat menyuntikkan paket NDP palsu.
Berikut adalah 5 pesan inti NDP:
| Tipe ICMPv6 | Nama Pesan | Sumber Pengirim | Tujuan Penerima | Fungsi Utama |
|---|---|---|---|---|
| 133 | Router Solicitation (RS) | Host | Router (ff02::2) |
Meminta router yang berada di link lokal untuk segera mengirimkan pengumuman konfigurasi jaringan (RA). |
| 134 | Router Advertisement (RA) | Router | All-Nodes (ff02::1) atau Unicast Host |
Mengumumkan parameter link lokal: prefix jaringan, default gateway, MTU, batas hop, serta flag autokonfigurasi (SLAAC / DHCPv6). |
| 135 | Neighbor Solicitation (NS) | Host / Router | Solicited-Node Multicast atau Unicast | Menggantikan ARP Request: menanyakan alamat MAC dari target IP, atau memeriksa keunikan alamat IP (DAD). |
| 136 | Neighbor Advertisement (NA) | Host / Router | Unicast Pemohon atau All-Nodes | Menggantikan ARP Reply: memberikan konfirmasi alamat MAC pemilik IPv6 kepada pemohon. |
| 137 | Redirect | Router | Unicast Host | Memberitahu host bahwa ada router hop pertama yang lebih efisien untuk mencapai tujuan tertentu di link lokal. |
Di bawah ini adalah diagram perbandingan arsitektural yang menggambarkan perbedaan mendasar antara badai broadcast ARP pada IPv4 dan efisiensi targeted multicast pada NDP IPv6:
Gambar 1: Perbandingan alur resolusi alamat. Pada IPv4, ARP Request membanjiri seluruh host via broadcast L2. Pada IPv6, NS hanya diterima oleh host target berkat Solicited-Node Multicast dan hardware filter NIC.
Rahasia Efisiensi NDP: Solicited-Node Multicast Address
Pertanyaan kritis yang sering muncul: Jika pengirim belum mengetahui alamat MAC host target, bagaimana pengirim bisa mengirimkan paket langsung ke host tersebut tanpa melakukan broadcast?
Jawabannya terletak pada Solicited-Node Multicast Address (RFC 4291). Setiap kali sebuah antarmuka IPv6 mengonfigurasi alamat Unicast (baik Link-Local maupun Global Unicast), antarmuka tersebut secara otomatis bergabung ke dalam grup multicast khusus yang dibentuk dengan formula matematis pasti:
Formula pembentukan alamat Solicited-Node Multicast:
- Ambil 24-bit terakhir (6 digit heksadesimal terakhir) dari alamat IPv6 target.
- Tempelkan 24-bit tersebut ke belakang prefix tetap
ff02:0:0:0:0:1:ff00::/104. - Format akhirnya adalah:
ff02::1:ffXX:XXXX(di manaXX:XXXXadalah 24-bit terakhir dari IP).
Pemetaan ke MAC Address Multicast Ethernet
Standar Ethernet untuk IPv6 (RFC 2464) menetapkan bahwa paket IPv6 Multicast harus dibungkus ke dalam frame Ethernet dengan MAC tujuan khusus yang diawali dengan prefix 33:33:.
32-bit terakhir dari alamat IPv6 Multicast dipetakan langsung menjadi 32-bit terakhir dari MAC Address Ethernet:
Mari kita bedah melalui contoh nyata:
Contoh Perhitungan Nyata:
Misalkan Host B memiliki alamat IPv6: 2001:db8:acad:1::a01:2345
- Tulis 24-bit terakhir dari alamat IPv6 tersebut:
- Nilai heksadesimal lengkap:
...:0a01:2345 - 24-bit terakhir (6 digit hex) =
01:23:45
- Nilai heksadesimal lengkap:
- Bentuk Alamat Solicited-Node Multicast:
ff02::1:ff+01:2345=ff02::1:ff01:2345
- Petakan ke Ethernet MAC Multicast:
- Ambil 32-bit terakhir dari
ff02::1:ff01:2345, yaituff:01:23:45. - Gabungkan dengan prefix
33:33:33:33:ff:01:23:45.
- Ambil 32-bit terakhir dari
Ketika Host A ingin mengirim pesan ke Host B (2001:db8:acad:1::a01:2345), Host A mengirimkan paket ICMPv6 Neighbor Solicitation (NS) ke:
- IP Tujuan:
ff02::1:ff01:2345 - MAC Tujuan:
33:33:ff:01:23:45
Karena Host B telah mendaftarkan MAC Multicast 33:33:ff:01:23:45 ke filter perangkat keras pada chip NIC-nya, NIC Host B akan langsung meloloskan frame tersebut ke sistem operasi. Sementara itu, Host C, D, dan E yang memiliki 24-bit akhir berbeda tidak berlangganan ke grup ini, sehingga NIC mereka langsung membuang frame tersebut di Layer 1/Layer 2 tanpa menggunakan siklus CPU sedikit pun!
Duplicate Address Detection (DAD): Menjamin Keunikan Alamat
Salah satu fitur paling krusial dari NDP adalah Duplicate Address Detection (DAD) yang distandarisasi dalam RFC 4862. Sebelum alamat IPv6 (baik Link-Local maupun Global Unicast) diizinkan untuk digunakan berkomunikasi di jaringan, antarmuka host harus memastikan bahwa tidak ada node lain di link lokal yang sudah menggunakan alamat yang sama.
Alur kerja DAD berlangsung sangat ketat:
[Host Baru / Interface Up]
│
▼
Status Alamat: "TENTATIVE"
(Host belum boleh mengirim/menerima trafik unicast normal)
│
▼
Kirim ICMPv6 Neighbor Solicitation (NS)
- Source IP : :: (Unspecified Address)
- Dest IP : Solicited-Node Multicast dari alamat target
- Target IP : Alamat IPv6 yang sedang diuji
│
┌─────┴────────────────────────────────┐
│ │
[Tidak ada balasan NA [Ada balasan NA dari node lain
setelah batas waktu] atau NS dari node lain yang sama]
│ │
▼ ▼
Status Alamat: "PREFERRED" Status Alamat: "DUPLICATE"
(Alamat valid & aktif digunakan) (Alamat dinonaktifkan, log error di OS)
Mengapa IP asal pada paket DAD harus :: (Unspecified Address)? Karena pada tahap ini, host tersebut belum memiliki kepemilikan sah atas alamat tersebut. Jika host menggunakan alamat tersebut sebagai Source IP sebelum DAD selesai, hal itu berpotensi merusak tabel ARP/Neighbor perangkat lain jika ternyata terjadi duplikasi.
State Machine: Siklus Hidup Neighbor Cache
Pada IPv4, entri ARP hanya mengenal dua status sederhana: ada atau tidak ada (dengan penghapusan berbasis waktu). Pada IPv6, pengelolaan tetangga (Neighbor Cache) jauh lebih canggih dan mengikuti state machine lima tahap sesuai RFC 4861:
[Kirim Paket Pertama]
│
▼
┌──────────────┐
│ INCOMPLETE │ ──(Gagal respon)──> [Dihapus]
└──────────────┘
│ (Menerima NA)
▼
┌──────────────┐
│ REACHABLE │
└──────────────┘
│ (Waktu ReachableTime berakhir)
▼
┌──────────────┐
│ STALE │ ──(Trafik dua arah lancar)──> [Tetap di STALE]
└──────────────┘
│ (Ada paket baru yang ingin dikirim)
▼
┌──────────────┐
│ DELAY │ ──(Menerima bukti jangkauan)──> [REACHABLE]
└──────────────┘
│ (Batas waktu 5 detik habis tanpa konfirmasi)
▼
┌──────────────┐
│ PROBE │ ──(Kirim Unicast NS berkala)
└──────────────┘
│
┌───────────┴───────────┐
▼ ▼
(Menerima NA) (Timeout 3x)
[REACHABLE] [Dihapus]
Penjelasan status tabel tetangga:
- INCOMPLETE: Host sedang mengirimkan Neighbor Solicitation multicast, namun belum menerima Neighbor Advertisement balasan. Belum ada MAC address yang tersimpan.
- REACHABLE: Alamat MAC tetangga telah diverifikasi valid dan dapat dijangkau dalam rentang waktu konfirmasi (ReachableTime, default 30 detik).
- STALE: Rentang waktu jangkauan telah lewat. Tidak ada paket yang dikirimkan dalam beberapa waktu terakhir, tetapi alamat MAC lama masih disimpan. Pada status ini, jika ada paket lewat, status berpindah ke DELAY.
- DELAY: Host memberi waktu tunda singkat (biasanya 5 detik) untuk memberikan kesempatan bagi protokol lapisan atas (seperti konfirmasi TCP ACK) guna membuktikan bahwa tetangga masih dapat dijangkau tanpa perlu mengirim paket NS baru.
- PROBE: Tidak ada konfirmasi dari lapisan atas. Host secara aktif mengirimkan pesan Neighbor Solicitation unicast secara berkala untuk memverifikasi apakah tetangga masih hidup. Jika tidak ada balasan setelah beberapa kali percobaan (MAX_UNICAST_SOLICIT), entri dihapus dari cache.
Praktik CLI: Inspeksi & Troubleshooting NDP
Mari kita pelajari perintah nyata di lingkungan Linux dan perangkat router enterprise untuk mengamati dan mengelola NDP.
1. Diagnostik di Sistem Operasi Linux
Melihat tabel tetangga IPv6 (Neighbor Table):
# Menampilkan seluruh tabel tetangga IPv6
ip -6 neigh show
# Output tipikal:
# fe80::250:56ff:fea1:2b3c dev eth0 lladdr 00:50:56:a1:2b:3c REACHABLE
# 2001:db8:acad:1::1 dev eth0 lladdr 00:50:56:a1:2b:3c STALE
# 2001:db8:acad:1::fe dev eth0 FAILED
Menghapus dan mereset entri neighbor:
# Menghapus entri spesifik
sudo ip -6 neigh del 2001:db8:acad:1::1 dev eth0
# Membersihkan seluruh cache neighbor pada interface eth0
sudo ip -6 neigh flush dev eth0
Menangkap paket NDP langsung di terminal dengan tcpdump:
# Menangkap pesan ICMPv6 tipe 135 (NS) dan 136 (NA)
sudo tcpdump -i eth0 -n -vv "icmp6 and (ip6[40] == 135 or ip6[40] == 136)"
2. Diagnostik pada Cisco IOS
Router# show ipv6 neighbors
IPv6 Address Age Link-layer Addr State Interface
2001:DB8:ACAD:1::10 0 0014.f25a.8910 REACH Gi0/0
FE80::214:F2FF:FE5A:8910 2 0014.f25a.8910 STALE Gi0/0
Router# clear ipv6 neighbors
3. Diagnostik pada MikroTik RouterOS v7
# Melihat daftar tetangga IPv6
/ipv6/neighbor/print detail
# Flags: D - dynamic; R - router
# 0 R address=fe80::1 interface=ether1 mac-address=48:8F:5A:12:34:56 status="reachable"
# 1 D address=2001:db8::100 interface=ether2 mac-address=B8:27:EB:11:22:33 status="stale"
# Menghapus seluruh cache tetangga
/ipv6/neighbor/remove [find]
Kesalahan yang Sering Terjadi (Common Pitfalls)
Dalam implementasi praktis di lapangan, kesalahan konfigurasi terkait NDP sering mengakibatkan jaringan IPv6 mati total meskipun konfigurasi alamat IP tampak sempurna.
| No | Kesalahan Fatal | Dampak Teknis | Solusi yang Benar |
|---|---|---|---|
| 1 | Memblokir seluruh ICMPv6 di Firewall | Paket NS/NA (tipe 135 & 136) terbuang. Perangkat tidak dapat menemukan MAC address tetangga. Komunikasi lokal gagal total. | Jangan pernah memblokir semua ICMPv6. Izinkan secara eksplisit tipe ICMPv6 133, 134, 135, dan 136 pada rantai filter lokal (input chain). |
| 2 | Mematikan Fitur Multicast Snooping secara Keliru | Switch Layer 2 yang murah atau salah konfigurasi memperlakukan paket multicast sebagai broadcast atau memblokirnya sama sekali. | Pastikan switch Layer 2 mendukung MLD Snooping (Multicast Listener Discovery Snooping) atau biarkan flooding multicast lokal berjalan normal untuk prefix 33:33::/16. |
| 3 | Mengabaikan Scope Identifier pada Link-Local | Melakukan ping ke alamat fe80::... tanpa mencantumkan interface (ping fe80::1) menghasilkan pesan galat: Invalid argument atau Destination unreachable. |
Selalu sertakan penanda zona antarmuka, misalnya: ping fe80::1%eth0 (Linux) atau ping fe80::1%12 (Windows). |
| 4 | Mengira DAD Menyebabkan Latensi Startup | Host menunda transmisi paket beberapa milidetik setelah link aktif untuk menunggu DAD selesai. Administrator mematikan DAD secara paksa. | Biarkan DAD aktif (default 1 detik) untuk mencegah tabrakan IP ganda yang jauh lebih merusak integritas data jaringan. |
Latihan Mandiri
Kerjakan soal-soal berikut untuk menguji pemahaman Anda secara komprehensif:
- Analisis Matematis: Diketahui sebuah server memiliki alamat IPv6 Global Unicast
2001:0db8:85a3:0000:0000:8a2e:0370:7334. Tentukan:- Alamat Solicited-Node Multicast dari server tersebut.
- Alamat Ethernet Multicast MAC Address yang sesuai untuk frame L2.
- Inspeksi Protokol: Host X baru saja menyala dan menerima alamat
2001:db8:1::55. Pada saat melakukan proses DAD, host X mengirimkan paket ICMPv6 Neighbor Solicitation ke jaringan. Jelaskan secara presisi:- Apa alamat IPv6 asal (Source IP) dari paket tersebut?
- Apa alamat IPv6 tujuan (Destination IP) dari paket tersebut?
- Apa yang terjadi jika sebelum timer habis, host X menerima balasan Neighbor Advertisement?
- Troubleshooting Kasus Lapangan: Administrator jaringan melihat bahwa entri di
ip -6 neigh showuntuk gateway lokal berada pada statusSTALE. Apakah statusSTALEmenandakan bahwa koneksi internet IPv6 sedang terputus? Jelaskan alasan teknisnya berdasarkan state machine RFC 4861!
Kunci Jawaban & Pembahasan
Pembahasan Soal 1:
- Solicited-Node Multicast Address:
- Ambil 24-bit terakhir dari IP
2001:0db8:85a3:0000:0000:8a2e:0370:7334. - 24-bit terakhir adalah 6 digit hex paling kanan:
70:7334. - Pasangkan dengan prefix
ff02::1:ff00:0/104. - Hasil:
ff02::1:ff70:7334.
- Ambil 24-bit terakhir dari IP
- Ethernet Multicast MAC Address:
- Prefix Ethernet Multicast IPv6 adalah
33:33:. - Ambil 32-bit terakhir dari alamat multicast di atas:
ff:70:73:34. - Gabungkan:
33:33:ff:70:73:34. NIC server akan memprogram chip fisiknya untuk menerima frame dengan MAC address ini.
- Prefix Ethernet Multicast IPv6 adalah
Pembahasan Soal 2:
- Source IP:
::(Unspecified Address). Hal ini wajib sesuai RFC 4862 karena host X belum memiliki hak penggunaan sah atas alamat tersebut sampai DAD membuktikan tidak ada pihak lain yang menggunakannya. - Destination IP: Solicited-Node Multicast dari IP yang diuji, yaitu
ff02::1:ff00:0055. - Dampak jika menerima NA: Jika host X menerima NA atau menerima paket NS lain dengan target IP yang sama, sistem operasi menandai alamat tersebut sebagai DUPLICATE. Antarmuka tidak akan mengaktifkan IP tersebut (status disabled untuk IP terkait), alamat tidak dapat digunakan untuk berkirim data, dan pesan log kesalahan duplikasi IP dicatat di log sistem kernel (dmesg / syslog).
Pembahasan Soal 3:
- Bukan gangguan / tidak terputus. Status
STALEadalah kondisi normal dalam siklus hidup NDP IPv6. Status ini hanya menunjukkan bahwa waktu validitas aktif (ReachableTime, ~30 detik) telah berlalu dan host belum mengirimkan paket baru ke gateway dalam beberapa waktu terakhir. - Ketika aplikasi di host ingin mengirimkan data kembali ke gateway, sistem operasi akan langsung menggunakan alamat MAC yang ada di cache tersebut dan mengubah statusnya menjadi
DELAY. Jika gateway merespons (misalnya melalui balasan TCP atau paket normal lainnya), statusnya akan langsung kembali menjadiREACHABLEtanpa perlu melakukan resolusi multicast ulang. Hal ini dirancang untuk menghemat konsumsi bandwidth jaringan secara drastis.



Diskusi (0)
Kami menyimpan nama (opsional), komentar, dan hash teknis (bukan alamat IP asli) untuk mencegah spam. Cookie fungsional dipakai agar Anda dapat mengedit atau menghapus komentar sendiri dari browser ini. Untuk permintaan penghapusan, gunakan halaman kontak.
Belum ada komentar. Mulai diskusinya.