Beranda > Routing TCP/IP Volume 1 > IPv6: Neighbor Discovery Protocol

IPv6: Neighbor Discovery Protocol

Karakteristik yang paling membedakan pada IPv6 selain meningkatnya jumlah ruang address adalah fitur plug-and-play nya. Neighbor Discovery Protocol (NDP) lah yang memungkinkan fitur plug-and-play ini. Dengan menggunakan fungsi-fungsi berikut:

  • Router Discovery, sebuah node ketika terhubung dengan link IPv6 dapat menemukan router lokal tanpa bantuan DHCP.
  • Prefix Discovery, sebuah node ketika terhubung dengan sebuah link IPv6 dapat menemukan prefix atau prefix yang diberikan pada link tersebut.
  • Parameter Discovery, sebuah node dapat menemukan parameter-parameter seperti MTU dan hop limits untuk setiap link yang terhubung.
  • Address Autoconfiguration, sebuah node dapat mengetahui address full-nya tanpa bantuan DHCP
  • Address Resolution, sebuah node dapat menemukan address link-layer dari node-node yang lain pada link yang sama tanpa menggunakan ARP.
  • Next-Hop Determination, sebuah node pada link dapat mengetahui next hop link-layer untuk tujuan (destination), baik untuk lokal maupun router ke tujuan.
  • Neighbor Unreachability Detection, sebuah node dapat mengetahui apakah tetangganya (neighbor) baik berupa host ataupun router masih dapat diakses atau tidak.
  • Duplicate Address Detection, sebuah node dapat mengetahui apakah sebuah address yang akan digunakan olehnya sudah dipakai oleh node lain pada link atau tidak.
  • Redirect, sebuah router dapat memberitahukan host next-hop untuk tujuan keluar yang lebih baik dari router itu sendiri.

Pesan NDP harus selalu berupa link-local, karena itu paket yang meng-enkapsulasi nya selalu menggunakan address link-local IPv6 atau address multicast dengan lingkup link-local. Untuk alasan security, Hop Limit dari address IPv6 yang membawa pesan NDP di set 255. Jika salah satu dari paket ini diterima dengan Hop Limit kurang dari angka tersebut, berarti paket telah melintasi setidaknya 1 router, dan karena itu paket akan di drop. Hal ini mencegah NDP diserang oleh source yang tidak terhubung pada link.

NDP Messages

NDP didefinisikan dalam RFC 2461. NDP menggunakan ICMPv6 untuk saling bertukar informasi-informasi yang diperlukan untuk menjalankan fungsinya; secara khusus, 5 pesan ICMPv6 baru telah di spesifikasikan dalam RFC 2461.

  • Router Advertisement (RA), pesan yang dihasilkan oleh router-router untuk meng-advertise parameter-parameter link-specific seperti prefix link, MTU, dan hop limit. Pesan-pesan ini dikirimkan secara periodik, dan juga sebagai respon terhadap pesan Router solicitaion.
  • Router Solicitation (RS), pesan yang dihasilkan oleh host untuk me-request router mengirimkan RA.
  • Neighbor Solicitation (NS), pesan yang dihasilkan oleh node-node untuk me-request address link layer node dan juga untuk fungsi-fungsi seperti duplicate address detection dan neighbor unreachability detection.
  • Neighbor Advertisement (NA), pesan yang dikirim sebagai respon terhada pesan NS. Jika sebuah node merubah address link-layernya, ia dapat mengirimkan sebuah pesan NA tanpa adanya request untuk meng-advertise address baru.
  • Redirect, pesan yang digunakan seperti redirect pada ICMP untuk IPv4;

Gambar dibawah menunjukkan format pesan Router Advertisement. Tipe ICMPv6-nya adalah 134 dan kode nya 0. Address source dari paket IPv6 yang meng-enkapsulasi RA selalu berupa address link-local IPv6 dari interface yang mengirimkan pesan tersebut. Address destination nya berupa address multicast (FF02::1) jika RA dikirm secara periodik, atau berupa address link-local dari sebuah node yang me-request jika RA dikirimkan sebagai sebuah respon terhadap pesan Router Solicitation.

1-router-advertisement-mess

Hop Limit yang mengindikasikan nilai dari sebuah field Hop Limit dari node yang terhubung pada link harus diberikan pada semua paket yang dihasilkan. Jika tidak ada Hop Limit yang dispesifikasin oleh router, maka field Hop Limit di set 0.

M adalah flag dari Managed Address Configuration. Jika bit ini diset, maka router pengirim harus memberitahukan semua host pada link agar menggunakan addres autoconfiguration stateful via DHCPv6. Jika flag tidak diset, host-host pada link harus menggunakan address autoconfiguration stateless. Address autoconfiguration akan dijelaskan nanti.

O adalah flag dari Other Stateful Configuration. Jika di set, maka router pengirim memberathukan host-host pada link agar menggunakan DHCPv6 untuk mendapatkan informasi-informasi link lain. Flag M dan O dapat digunakan bersama-sama, misalnya, jika flag M tidak di set tapi flags O di set, berarti router memberitahukan host-host agar menggunakan address autoconfiguration yang stateless tetapi kemudian bertanya pada DHCPv6 untuk parameter-parameter konfigurasi lainnya.

Router Lifetime di set dengan nilai selain 0 jika router pengirim merupakan default router. Dalam kasus ini, field ini menentukan berapa lama sebuah router  (lifetime) menjadi default router dalam satuan detik, sampai maksimal 18.2 jam.

Reachable Time digunakan oleh fungsi NDP yaitu Neighbor Unreachability Detection. Reachable Time menentukan berapa lama, dalam miliseconds, sebuah node harus mengasumsikan neighbor dapat dijangkau setelah node mengkonfirmasikan status neighbor dapat dijangkau.

Retransmit Timer digunakan oleh fungsi NDP yaitu Address Resolution and Neighbor Unreachability Detection, field ini menentukan waktu minimum, dalam miliseconds, antara pesan-pesan Neighbor Solicitation dikirim ulang.

Opsi-opsi yang mungkin dibawa dalam field Options sebuah RA antara lain:

  • Address link-layer dari sebuah interface yang menghasilkan RA.
  • Spesifikasi MTU link.
  • Satu atau lebih prefix yang diberikan pada link. Informasi ini penting bagi stateless address autoconfiguration, memberitahu host-host pada link prefix-prefix apa yang dipakai.

Gambar dibawah menunjukkan format dari pesan Router Solicitation. Tipe ICMPv6-nya adalah 133 dan kode 0. Address source dari paket IPv6 yang meng-enkapsulasi RS berupa address IPv6 yang diberikan oleh interface pengirim, atau jika tidak ada address yang diberikan, maka akan digunakan address unspecified :: (semua 0). Address destination adalah address multicast untuk semua router (FF02::2)

2-rs

Field options dapat berisi address link-layer dari interface yang mengirim, jika diketahui. Tapi, address link-layer tidak boleh disertakan jika address source dari paket yang dienkapsulasi tidak ditentukan, seperti ketika pengirim melakukan request pada router saat address autoconfiguration.

Gambar dibawah menunjukkan format pesan Neighbor Solicitation. Tipe ICMPv6-nya adalah 135 dan kode 0. Address source dari paket IPv6 yang meng-enkapsulasi NS berupa address IPv6 yang diberikan pada interface pengirim atau, jika NS tidak dikirim untuk Duplicate Address Detection, address source berupa address tak ditentukan :: (semua 0). Address destination dapat berupa address node multicast yang berkorespondensi dengan address target, atau address target.

3-neighbor-solicitation-mes

Target Address berupa address IPv6 dari target solicitation (permintaan). Address target tidak pernah berupa address multicast.

Field options pada NS dapat berisi address link-layer dari interface pengirim.

Gambar berikut menunjukkan format dari pesan Neighbor Advertisement. Tipe ICMPv6-nya 136 dan kode 0. Address source dari paket yang meng-enkapsulasi NS selalu berupa address IPv6 dari interface yang mengirimkan paket. Address destination berupa address source dari paket yang berisi NS dimana NA dikirimkan sebagai respon, atau address multicast semua node (FF02:1)

4-neighbor-advertisement-meR adalah flag Router. Jika di set menunjukkan bahwa penghasil paket adalah sebuah router. Bit ini digunakan selama Neighbor Reachibility Detection untuk mendeteksi router yang berganti menjadi host.

S adalah flag Solicited. Bit ini di set ketika NA dikirimkan sebagai respon terhadap NS.

O adalah flag Override. Jika di set berarti menunjukkan bahwa informasi didalam NA harus mengesampingkan setiap entri cache neighbor yang ada dan mengupdate address link-layer cache. Ketika O bit dihilangkan NA tidak akan mengesampingkan entri cache neighbor yang ada.

Target Address adalah address target pada field NS ketika NA dikirim sebagai respon terhadap NS. Jika NA bukan merupakan request (yang berarti dikirim untuk meng-advertise perubahan address link-layer pada pengirim), maka Target Address adalah address penghasil paket.

Filed Options NA dapat berisi address link-layer dari target, dengan kata lain address link-layer dari penghasil paket.

Gambar dibawah menunjukkan format dari pesan Redirect. Tipe ICMPv6-nya 137 dan kode 0. Address source dari paket IPv6 yang meng-enkapsulasi Redirect selalu berupa address link-local IPv6 dari interface yang mengirimkan pesan ini. Address destination selalu berupa address source dari paket yang memicu Redirect.

5-redirect-message-format

Target Address adalah address dari first-hop terbaik. Biasanya berupa address link-local dari router lain pada link.

Destination Address berupa address IPv6 dari tujuan yang di redirect ke address target.

Field Options pesan Redirect dapat berisi address link-layer dari target, dan juga header dari paket yang memicu pesan redirect, tanpa membuat paket redirect melebihi 1280 byte.

Field options dari kelima pesan ini, jika mengandung suatu informasi, akan berisi satu atau lebih Type/Length/Value (TLV) triplet. Setiap TLV berisi 8-bit field Type yang menunjukkan tipe informasi yang dibawa dalam field Value, 8-bit field Length yang menunjukkan panjang dalam unit 8 octet field Value, dan variable panjang field Value. Perhatikan gambar.

6-tlvs

Tabel dibawah menunjukkan nilai-nilai yang mungkin dan nomor tipe yang berhubungan.

Type Value
1 Source Link-Layer Address
2 Target Link-Layer Address
3 Prefix Information
4 Redirected Header
5 MTU

Router Discovery

Sebuah router memberitahukan keberadaan dirinya bersama dengan parameter-parameter yang telah dikonfigurasi untuk di advertise dengan cara mengirim RA secara periodik pada link yang terhubung. Sepertinya Link yang paling baik untuk RA adalah link broadcast seperti Ethernet, dimana host-host dapat menerima RA dan dengan begitu dapat mengetahui informasi-informasi tentang link.

RFC2461 mendefinisikan bahwa rentang waktu antara transmisi-transmisi RA seharusnya berada antara 4 dan 1800 detik, dengan default 600 detik. Juga rentang waktu minimum antara disela-sela advertisement RA dengan default 200 detik. Advertisement dilakukan antara periode minimum dan maximm untuk mencegah sinkronisasi dalam link.

RA tanpa request (unsolicited) ini dikirimkan dengan address source di set address IPv6 link-local dari interface router. Address destination adalah address semua node multicast (FF02::1)

Cisco Router otomatis mengirimkan RA kedalam Ethernet dan FDDI kapan saja IPv6 di enable dalam sebuah router dengan perintah ipv6 unicast-routing. Default interval sebesar 200 detika, dan dapat diubah dengan perintah ipv6 nd ra-interval. Router Lifetime dari RA defaultnya 1800 detik, dan dapat diubah dengan perintah ipv6 nd ra-lifetime. Jika tidak ingin sebuah router menjadi default router dalam link, kita dapat menggunakan perintah ini untuk men-set nilai Router Liftime menjadi 0. Nilai default dari Reachable Time sebuah RA adalah 0 (yang berarti belum ditentukan), dan dapat diubah dengan perintah ipv6 nd reachable-time. Field Retransmit Timer di set default 0 dan dapat diubah dengan perintah ipv6 nd ns-interval. Flag M dan ) dapat di set dengan perintah ipv6 nd managed-config-flag dan ipv6 nd other-config-flag secara berurutan. Jika tidak ingin interface mengirimkan RA sama sekali kita dapat men disable dengan perintah ipv6 nd suppress-ra.

Secara default, router Cisco menyertakan kedalam RA semua prefix IPv6 yang telah dikonfigurasi pada interface pengirim. Kita dapat mengontrol prefix-prefix yang di advertise, dan parameter-parameter yang berkaitan dengan prefix tersebut dengan perintah ipv6 nd prefix.

Tentu saja 200 detik adalah waktu yang panjang bagi sebuah host yang baru saja terhubung untuk menunggu sebuah RA agar host dapat menemukan router dan mengetahui parameter-parameter link. Jadi ketika sebuah host pertama kali aktif dalam suatu link, host dapat mengirimkan RS untuk meminta transmisi RA seketika. Source dari RS dapat berupa unspecified address (::) address IPv6 link-lokal host. Address destination selalu berupa address multicast semua router. (FF02::2).

Ketika router menerima sebuah RS, router akan mengirimkan RA sebagai respon (setelah delay 0.5 detik). Jika address source dari RS yang memicu RA adalah sebuah address link-local host, maka RA berupa unicast untuk host menggunakan address link-local. Jika address source tidak ditentukan (::) maka RA berupa multicast untuk address semua node.

Ketika host menerima RA, host akan menambahkan router kedalam list default router (kecuali RA diterima dengan nilai Router Lifetime 0 yang berarti tidak bisa dipakai sebagai default router). Jika ada lebih dari satu router dalam list, cara sebuah host memilih default router tergantung implementasi. Bisa saja router dalam list di rotasi, atau memilih salah satu sebagai default router. Fungsi Redirect dalam hal ini menjadi penting untuk mengupdate host ketika default router yang berbeda harus digunakan.

Address Autoconfiguration

Ketika host IPv6 pertama kali aktif dalam sebuah link, host dapat mengkonfigurasi address interfacenya sendiri. Langkah pertama dalam proses ini adalah penentuan porsi 64-bit Interface ID  dari address. Dalam interface broadcast, digunakan sebuah mekanisme yang disebut MAC-to-EUI164 conversion. Cukup sederhana, mekanisme ini mengambil 48-bit Media Access Control (MAC) address dari interface yang bisa diasumsikan unik dan kemudian mengkonversinya menjadi 64-bit Interface ID dengan memasukkan nilai 16-bit 0xFFFe yang telah disediakan ketengah-tengah MAC address dan membalik bit Universal/Local (U/L) MAC address menjadi 1 (Universal)

Gambar dibawah ini menunjukkan prosesnya. Sebuah MAC address, 0000:0B0A:2D51, dikonversi. Langkah pertama adalah dengan men-split MAC address di tengah dan memasukkan 0xFFFE diantara keduanya. Kini address menjadi 64 bit panjangnya. Kemudian, bit U/L dari MAC address original yang selalu berupa bit ke-7 dibalik dari 0 menjadi 1, menghasilkan address, 0200:0BFF:FE0A:2D51

7-mac-to-eui64

Tentu saja, interface ID ini hanya separuh dari address IPv6; prefix 64-bit juga dibutuhkan. Dari tabel pada postingan kita ketahui prefix link-local telah disediakan, 0xFF80::/10. Dengan menggunakannya sebagai prefix full 64-bit (0xFF80::/64), prefix tersebut dapat ditambahkan pada Interface ID yang tadi kita dapatkan, dan address IPv6 host kini telah lengkap dan dapat digunakan untuk berkomunikasi dengan perangkat-perangkat lain dalam link yang sama.

Jika host hanya harus berkomunikasi dengan mesin-mesin pada satu link, maka address link-local hasil autoconfiguration sudah cukup untuk digunakan. Tetapi jika harus berkomunikasi keluar link maka host harus memiliki address IPv6 dengan lingkup global. Ada beberapa jalan untuk mendapatkan address ini : address stateful atau stateless autoconfiguration.

If the host only needs to communicate with devices on the link, autoconfiguring its link-local address is sufficient. But if it needs to communicate with devices off-link, it needs an address with a wider scopenormally a global IPv6 address. There are two ways it can acquire this address: stateful or stateless address autoconfiguration.

Yang lebih menarik adalah stateless autoconfiguration. Dengan cara sederhana ini, host mendapatkan lebih dari satu prefix dari RA yang diterima. Kemudian host menambahkan prefix tersebut kepada Interface ID yang didapatkan sebelumnya, dan kini host memiliki IPv6 unik yang global. Misalnya jika host menerima RA yang meng-advertise prefix 3FFE:1104:404:1::/64, maka address IPv6 global host akan menjadi 3FFE:1104:404:1:0200:0BFF:FE0A:2D51.

Deteksi Address Duplikat

Meski penggunaan MAC address untuk memperoleh Interface ID hampir menjamin keunikan address yang didapat dalam semua lingkup, akan lebih bijak jika memastikan lagi keunikan suatu address. Jadi kapansaja sebuah perangkat memperoleh address unicast, perangkat tersebut harus melakukan Duplicate Address Detection sebelum menggunakan address. Tidak peduli apakah address tersebut diperoleh via konfigurasi stateful atau stateles, atau bahkan jika address dikonfigurasi secara statik. Satu-satunya pengecualian adalah address anycast, karena address anycast menurut definisi dapat dipakai oleh beberapa perangkat.

Ada juga sebuah asumsi yang menyatakan bahwa jika Duplicate Address Detection telah dilakukan pada sebuah address link-local yang telah memiliki Interface ID yang diperoleh dari konversi MAC-to-EUI64, maka address yang lain yang menggunakan Interface ID yang sama juga akan unik, dan tidak perlu mengulangi Duplicate Address Detection.

Sebuah node yang telah memperoleh address yang baru menggolongkan address tersebut sebagai address sementara. Address tidak dapat digunakan sampai operasi Duplicate Address Detection telah dilakukan dengan sempurna. Node mengirimkan sebuah NS dengan field Target Address diisi dengan address yang ingin di verifikasi. Address source dari NS adalah unspecified address (::), dan destination-nya adalah address multicast solicited-node.

Address multicast solicited-node dibuat dari menempelkan prefix FF02:0:0:0:0:1:FF00::/104 ke 24 bit terakhir dari address target. Misalnya, dengan Interface ID yang diperoleh pada contoh gambar diatas, address multicast solicited-node akan berupa FF02::1:FF0A:2D51. Alasannya adalah bahwa jika sebuah node yang melakukan autoconfigurasi lebih dari satu address interface, maka 24 bit terakhir dari address-address yang didapatkan seharusnya identik. Jadi satu NS dengan address multicast solicited-node sudah dapat mencocoki semua address interface. Lebih penting lagi, dengan menggunakan address multicast solicited-node dapat memastikan jika 2 node berusaha melakukan Duplicate Address Detection pada address yang sama secara bersamaan, maka mereka akan saling mendeteksi satu sama lain.

Jike sebuah node menerima NS dan target address cocok dengan salah satu address yang ia punya, maka node akan mengirimkan NA dengan field Target Address dan address destination berisi address sementara. Node yang memulai NS, sebagai tanda terima NA, akan mengetahui bahwa address sementara termasuk address duplikat dan tidak dapat digunakan.

Neighbor Address Resolution

Ketika node IPv4 berusaha berkomunikasi dengan node IPv4 lain dalam satu link, maka node harus mencari address link-layer (data link) dari node tujuan terlebih dulu. Address ini kemudian digunakan sebagai address destination dalam frame yang meng-enkapsulasi paket pada node tersebut. Misalnya, sebuah node menginginkan untuk mengirimkan sebuah paket kepada examplehost.com. Sebuah query DNS mengembalikan address 3FFE:521:2400:15:211:24FF:FE23:334E. Node pengirim harus mengetahui address link-layer untuk digunakan sebagai address destination dalam frame pada link local. IPv4 menggunakan ARP untuk fungsi ini, sedangkan IPv6 menggunakan NDP.

Ketika sebuah node memeriksa prefix address IPv6 yang dikirimkan oleh DNS, node kemudian menyimpulkan bahwa destination merupakan neighbor dalam link local atau merupakan node yang berada diluar link dan karena itu hanya dapat dicapai melalui router. Untuk kasus kedua, node harus sudah mengetahui address link-layer default router dari RA. Tetapi jika destination berada pada link local, maka node akan melihat neighbor cache terlebih dulu untuk memastikan apakah destination telah dikenali dalam cache. Neighbor cache pada IPv6 sangat mirip dengan ARP cache pada IPv4; keduanya menyimpan address link-layer dan address network layer yang bersesuaian. Berikut contoh neighbor cache pada host dengan OS Windows XP

C:\Documents and Settings\ngadimin>ipv6 nc
11: fe80::21d:72ff:fe60:78ae 00-1d-72-60-78-ae permanent
10: fe80::250:56ff:fec0:1 00-50-56-c0-00-01 permanent
9: fe80::250:56ff:fec0:8 00-50-56-c0-00-08 permanent
8: fe80::250:56ff:fec0:2 00-50-56-c0-00-02 permanent
7: fe80::250:56ff:fec0:3 00-50-56-c0-00-03 permanent
6: fe80::250:56ff:fec0:4 00-50-56-c0-00-04 permanent
5: fe80::250:56ff:fec0:5 00-50-56-c0-00-05 permanent
4: fe80::5445:5245:444f 0.0.0.0:0         permanent
3: 2002:a7cd:220a::a7cd:220a 167.205.34.10     permanent
2: fe80::5efe:192.168.0.11 192.168.0.11      permanent
2: fe80::5efe:167.205.34.10 167.205.34.10     permanent
2: fe80::5efe:172.16.1.1 127.0.0.1         permanent
2: fe80::5efe:192.168.201.1 127.0.0.1         permanent
2: fe80::5efe:172.16.9.1 127.0.0.1         permanent
2: fe80::5efe:192.168.30.152 127.0.0.1         permanent
2: fe80::5efe:192.168.40.152 127.0.0.1         permanent
2: fe80::5efe:192.168.50.152 127.0.0.1         permanent
1:            fe80::1                   permanent
1:                ::1                   permanent

Jika sebuah address tidak berada dalam neighbor cache, telah di entri tetapi diberi label Incomplete, hal ini menunjukkan sedang dalam proses address resolution. Node kemudian mengirimkan NS kepada address multicast solicited-node yang bersesuaian dengan node target. NS harus menyertakan option Source Link-Layer (type 1), agar node yang diminta tersebut memiliki address link-layer dari node yang melakukan request, dan dengan begitu dapat mengetahui kemana respon NA harus dikirimkan.

Jika nilai selain 0 disertakan dalam RA, multiple NS dapat dikirimkan dalam interval tertentu. Jika nilai Retransmit Timer dalam RA tidak ditentukan (0), NS akan dikirim ulang setiap 1000ms samapi sebuah NA diterima. Jika tidak ada NA yang diterima dari node yang diminta setelah 3 kali transmisi NS, berarti neighbor address resolution mengalami kegagalan dan pesan ICMP tipe1/code3 (Destination Unreachable/Address Unreachable) akan dikembalikan bagi setiap paket yang mengantri untuk transmisi ke destination yang kini tidak diketahui.

Jika node yang diminta (solicited) ada dan NS valid, maka node akan memberikan respon dengan sebuah NA. field Target Address dari NA akan di set dengan nilai field Target Address dari NS yang memicunya. Node yang merequest, setelah menerima NA, dapat menambahkan address link-layer target pada neighbor cache dan mengganti entri dari Incomplete menjadi Reachable.

Neighbor cache pada router Cisco dapat dilihat dengan perintah show ipv6 neighbors, seperti pada contoh berikut.

Example 2-1. The neighbor cache of a Cisco router can be displayed with the command show ipv6 neighbors.
Confucius# show ipv6 neighbors

IPv6 Address                            Age  Link-layer Addr  State  Interface
2001:201:1502:1:210:a4ff:fea0:bc97        0  0010.a4a0.bc97   REACH  Ethernet0
fe80::210:a4ff:fea0:bc97                  0  0010.a4a0.bc97   REACH  Ethernet0
fe80::260:83ff:fe4c:5df2                  0  0060.834c.5df2   REACH  Ethernet0
3ffe:1300:a47:20:d9e6:b9d:14c6:45ee       0  0002.2d25.5e4c   REACH  Ethernet1

Privacy Addresses

Address autoconfiguration secara stateless dapat meningkatkan resiko security untuk beberapa hal: meskipun perangkat berpindah dari satu subnet ke subnet lain atau dari major network ke major network lain, Interface ID yang dimiliki akan selalu sama, hal itu dapat ditelusuri jejaknya. Setidaknya, hal ini menjadi isu privasi. Misalnya, ketika kita menggunakan IPv6 untuk koneksi ke network perusahaan. Dengan merekam dan memeriksa setiap paket yang data pada bagian-bagian network akan dapat mengenali kita dengan Interface ID yang tidak berganti-ganti. Dan dengan analisis lebih lanjut prefix-prefix yang berbeda yang ditempelkan pada Interface ID, boss kita bisa tahu dimana saja kita setiap saat: ditempat kerja, dirumah, dalam perjalanan, atau apa saja. Penggunaan yang Lebih membahayakan lagi misalnya dengan menelusuri, merekam lokasi-lokasi dan semua aktivitas yang kita lakukan dari marketing sampai exploitasi kriminal.

RFC 3041 mengatasi isu sekuriti ini dengan mendefinisikan address IPv6 private. Address privat adalah address yang menghasilkan Interface ID dengan memanfaatkan algoritma yang menggunakan angka pseudo-random. Yang penting dan membuatnya privat adalah, Interface ID yang dihasilkan akan berubah-ubah kira-kira setiap sehari sekali (atau periode yang ditentukan) dan juga kapan saja node meminta prefix IPv6 yang baru.

Tentu saja, dengan terus menerus berganti address tidaklah praktis. Node-node yang ingin berkomunikasi dengan kita dan juga DNS server harus mengenali kita dengan hanya satu address statik. Jadi standard address IPv6 yang dikonfigurasi stateless tetaplah address public kita. Siapa saja yang menginginkan untuk mengirimkan paket kepada kita akan menggunakan address tersebut sebagai destination. Tetapi ketika kita mengirimkan paket balasan, dapat menggunakan address privat. Hal ini seperti menggunakan handphone pribadi teteapi dengan menyembunyikan Caller ID sehingga tidak nampak pada handphone penerima. Kita dapat melihat siapa yang menelepon kita tetapi orang lain tidak dapat melihat ID kita saat kita yang melakukan panggilan telepon.

Contoh berikut menunjukkan address-address yang diberikan kepada mesin Windows XP. Ada beberapa address IPv6 publik yang diberikan pada interface, kita dapat melihat bahwa meski prefix-prefixnya berbeda, tetapi Interface ID yang dihasilkan dari MAC-to-EUI64 adalah sama. Kita juga dapat dengan mudah mengenali Interface ID publik dengan FFFE yang disisipkan ditengahnya. Tapi untuk kedua address publik tersebut ada juga address private (windows melabelinya sebagai “anonymous”). Address-address private ini dibuat dengan menempelkan prefix IPv6 dari RA-discovered kepada Interface ID yang digenerate secara random. Publik dan private (“anonymous”) digunakan bersama-sama untuk membentuk anonymity bagi host tapi pada saat yang sama tetap dapat dijangkau.

  C:\Documents and Settings\Jeff Doyle>ipv6 if 4
  Interface 4: Ethernet: Local Area Connection 2
    uses Neighbor Discovery
    uses Router Discovery
    link-layer address: 00-10-a4-a0-bc-97
      preferred global 2001:484:1200:1:d9e6:b9d:14c6:45ee,
       life 6d21h14m26s/21h12m4s (anonymous)
      preferred global 2001:468:1200:1:210:a4ff:fea0:bc97,
       life 29d23h59m25s/6d23h59m25s (public)
      preferred global 3ffe:3705:1200:1:d9e6:b9d:14c6:45ee,
       life 6d21h14m26s/21h12m4s (anonymous)
      preferred global 3ffe:3705:1200:1:210:a4ff:fea0:bc97,
       life 29d23h59m25s/6d23h59m25s (public)
      preferred link-local fe80::210:a4ff:fea0:bc97, life infinite
      multicast interface-local ff01::1, 1 refs, not reportable
      multicast link-local ff02::1, 1 refs, not reportable
      multicast link-local ff02::1:ffa0:bc97, 3 refs, last reporter
      multicast link-local ff02::1:ffc6:45ee, 2 refs, last reporter
    link MTU 1500 (true link MTU 1500)
    current hop limit 64
    reachable time 22000ms (base 30000ms)
    retransmission interval 1000ms
    DAD transmits 1

Deteksi Neighbor Tak Terjangkau

Sebenarnya, entri pada neighbor cache dapat berupa salah satu dari 5 status berikut:

  • Incomplete address neighbor resolution sedang dalam proses. Pesan NS telah dikirimkan pada address multicast solicited-node (host target) untuk kemudian dijadikan entry, tetapi belum ada NA yang diterima.
  • Reachable address baru saja dikonfirmasi sebagai address yang dapat dijangkau. “baru saja dikonfirmasi” berarti beberapa indikasi bisa keterjangkaun address target telah diterima dalam waktu yang telah ditentukan dalam field Reachable Time pada paket RA. Jika field Reachable Time tidak ditentukan dalam RA, maka defaultnya adalah 30 detik.
  • Stale berarti Reachable Time yang ditentukan (atau default) telah habis semenjak konfirmasi positif keterjangkauan address yang terakhir diterima.
  • Probe konfirmasi keterjangkauan address target sedang dalam pencarian oleh pengirim kepada tujuan dan ditransmit setiap Retransmit time atau (jika Retransmit Time tidak ditentukan) setiap 1000ms.
  • Delay sebuah address diletakkan dalam status delay jika paket dikirim kepada destination yang sedang dalam status Stale. Status akan tetap sebagai Delay selama 5 detika, dan jika belum ada konfirmasi keterjangkauan yang diterima dalam waktu itu, status akan dirubah menjadi Probe. Status ini adalah optimisasi untuk memberi kesempatan protokol pada upper-layer untuk mengkonfirmasi keterjangkauan sebelum probe NS dikirmkan.

Keterjangkauan neighbor dapat dikonfirmasi dengan 2 cara :

  • “Hints” dari protokol pada upper-layer, seperti sebuah ACK dari pesan TCP.
  • Tanggapan terhadap probe address destination yang dilakukan dengan merequest RA atua NA. hal ini diperlukan karena untuk beberapa protokol upper-layer, misal UDP, tidak secara aktif memberikan acknowledge bagi pesan-pesan yang telah diterima.

Neighbor Unreachability Detection tidak hanya mengkonfirmasi keterjangkauan dari sudut pandang neighbor, tapi juga mengkonfirmasi keterjangkauan 2 arah dari sudut pandang node lokal. Untuk alasan ini, sebuah NA atau RA yang tidak direquest tidak dapat mengubah status entri pada neighbor cache menjadi Reachable; pesan yang diterima hanya mengindikasikan keterjangkauan satu arah dari sudut pandang node yang mengirimkan pesan kepada node lokal. Keterjangkauan 2 arah hanya bisa dikonfirmasi dengan response remote kepada pesan yang dikirimkan (seperti ACK dari paket TCP) atau RA/NA yang dikirimkan sebagai jawaban atas request.

  1. Belum ada komentar.
  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: