Spesifikasi Internet Control Message Protocol (ICMPv6) untuk Internet Protocol Version 6 (IPv6)
Internet Protocol (IP) versi 6 (IPv6) adalah versi baru dari IP. IPv6 menggunakan Internet Control Message Protocol (ICMP) seperti yang didefinisikan untuk IPv4 dalam RFC 793 dengan sejumlah perubahan. Hasil dari protokol ini disebut ICMPv6 dan mempunyai nilai 58 pada next header IPv6.
- ICMPv6 (ICMP untuk IPv6)
- Format Umum Pesan
Format untuk pesan ICMPv6 :
Pesan kesalahan ICMPv6:
- Destination unreachable
- Packet Too Big
- Time Exceeded
- Parameter Problem
128 Echo Request
129 Echo Reply
Setiap pesan ICMPv6 diawali oleh header IPv6 dan nol atau lebih header tambahan. Header ICMPv6 diidentifikasi oleh next header dengan nilai 58 dalam yang terdapat pada header sebelum header ICMPv6.
Pesan-pesan ICMPv6 mempunyai format umum seperti pada gambar :
0 | 1 | 2 | 3 |
|
||||||||||||||||||||||||||||
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
0
|
1
|
|
Type
|
Code
|
Checksum
|
||||||||||||||||||||||||||||||
Message Body
|
Gambar Format Pesan ICMPv6
Kolom tipe mengidentifikasikan tipe dari pesan. Nilai ini menentukan format sisa data. Kolom kode tergantung pada tipe pesan. Ini digunakan untuk membuat tingkatan tambahan ukuran pesan.Kolom checksum digunakan untuk mendeteksi data yang hilang/rusak dalam pesan ICMPv6 dan bagian dari header IPv6.
- Penentuan Asal Alamat Pesan
- Jika pesan yang akan dikirim adalah respon ke pesan yang dikirim ke salah satu dari alamat unicast node, alamat asal dari pesan yang akan dibalaskan harus alamat yang sama dengan alamat tujuan dimana pesan tesebut dikirim (ke alamat unicast node). Contoh, jika pesan ICMPv6 dikirim ke a, maka alamat asal dari pesan balasan adalah.
- Jika pesan yang akan dikirim adalah respon dari pesan yang dikirim ke group multicast atau anycast yang terdapat node-node sebagai anggora, alamat asal dari pesan balasan harus alamat unicast milik interface node yang menerima paket multicast atau anycast.
- Jika pesan adalah respon pesan yang dikirim ke alamat yang tidak milik dari node, alamat asal harus alamat unicast milik node yang akan sangat membantu dalam mempelajari kesalahan. Sebagai contoh, jika pesan adalah respon ke suatu tindakan penerusan paket (dalam router) yang tidak dapat berlangsung secara sukses, alamat asal harus alamat unicast milik interface dimana tindakan penerusan paket gagal.
- Jika tidak, tabel routing dari node harus dipelajari guna menentukan interface ana akan digunakan untuk mengirimkan pesan ke tujuannya dan alamat unicast milik interface tersebut harus digunakan sebagai alamat asal dari pesan.
Pesan Error ICMPv6
Pesan Destination Unreachable
0
|
1
|
2
|
3
|
|||||||||||||||||||||||||||||
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
0
|
1
|
|
Type
|
Code
|
Checksum
|
||||||||||||||||||||||||||||||
MTU
|
||||||||||||||||||||||||||||||||
As much of
invoking packet
|
||||||||||||||||||||||||||||||||
as will fit
without the ICMPv6 packet
|
||||||||||||||||||||||||||||||||
exceeding 576 octets
|
Gambar Format Pesan Destination Unreachable
Kolom IPv6 : alamat tujuan dilihat dari kolom alamat asal yang terdapat dari paket
Kolom ICMPv6:
Tipe
|
1
|
Kode
|
0 - tidak ada rute ke tujuan
|
|
1 - komunikasi dengan tujuan secara adminitrasi tidak diperbolehkan
|
|
2 - (belum diberikan)
|
|
3 - Address unreachable
|
|
4 - port unreacheable
|
Unused
|
kolom ini tidak digunakan untuk semua nilai kode. Kolom ini harus
diinisialisasi nol oleh pengirim dan diabaikan oleh penerima
|
Deskripsi:
Pesan Destination unreachable seharusnya dihasilkan oleh router atau layer IPv6 dalam node asal, untuk memberitahu bahwa paket tidak dapat dikirimkan ke alamat tujuan untuk asalan selain kongesti. Pesan ICMPv6 tidak harus dihasilkan jika paket drop/hilang karena kongesti.
Jika alasan kesalahan pengiriman adalah karena ketidaktepatan antara alamat tujuan dengan tabel routing dalam perutean ke arah node, kolom kode diset ke 0.
Jika alasan untuk kesalahan pengirim adalah larangan secara administratif seperti filter firewall, kolom kode diset 1.
Jika terdapat alasan lain dalam kesalahan pengiriman seperti ketidakmampuan untuk memutuskan alamat tujuan IPv6 ke dalam alamat link yang sesuai, atau link yang secara spesifik digunakan mengalami masalah yang singkat maka kolom kode diset ke 3.
Node tujaun harus mengirim pesan Destination unreachable dengan kode 4 untuk merespon jika paket dengan tujuan protokol transport (misal UDP) tidak mendengarkan atau merespon, atau jika protokol transport tersebut tidak mempunyai alternatif lain untuk menginformasikan pengirim. Node yang menerima pesan ICMP Destination unreachable harus memberitahu pada proses layer di atasnya.
- Pesan Packet Too Big
0
|
1
|
2
|
3
|
||||||||||||||||||||||||||||
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
0
|
1
|
Type
|
Code
|
Checksum
|
|||||||||||||||||||||||||||||
MTU
|
|||||||||||||||||||||||||||||||
As much of
invoking packet
|
|||||||||||||||||||||||||||||||
as will fit
without the ICMPv6 packet
|
|||||||||||||||||||||||||||||||
exceeding 576 octets
|
Gambar Format Pesan ICMPv6 Packet Too Big
Kolom IPv6: Alamat tujuan, dilihat dari kolom alamat asal yang terdapat dari paket.
Kolom ICMPv6:
Tipe
|
2
|
Kode
|
Di set ke 0 (nol) oleh pengirim dan diabaikan oleh penerima
|
MTU
|
Maximum Transmission Unit dari link
hop selanjutnya
|
Deskripsi:
Pesan ICMPv6 paket terlalu besar harus dikirim oleh router dalam merespon paket yang tidak dapat diteruskan karena paket lebih besar dari MTU dari link yang akan dilaluinya. Informasi dalam pesan ini digunakan sebagai bagian dari proses penemuan jalut MTU.
Pengirim pesan paket terlalu besar membuat saru perkecualian ke salah satu aturan yang terdapat pada pengiriman pesan kesalahan ICMPv6. Tidak seperti pesan lain, pesan ini dikirim dalam merespon paket yang diterima dengan alamat tujuan multicast, atau alamat layer layer link multicast atau broadcast. Pesan paket yang terlalu besar yang dapat harus diteruskan ke proses di layer yang lebih atas.
- Pesan Waktu Habis
0
|
1
|
2
|
3
|
||||||||||||||||||||||||||||
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
0
|
1
|
Type
|
Code
|
Checksum
|
|||||||||||||||||||||||||||||
Unused
|
|||||||||||||||||||||||||||||||
As much of
invoking packet
|
|||||||||||||||||||||||||||||||
as will fit
without the ICMPv6 packet
|
|||||||||||||||||||||||||||||||
exceeding 576 octets
|
Gambar Format Pesan ICMPv6 Time Exceeded
Kolom IPv6: Alamat tujuan dilihat dari kolom alamat asal yang terdapat dari paket.
Kolom ICMPv6:
Tipe
|
3
|
Kode
|
0 - batasan hop terlampau dalam transit
|
|
1 - waktu penyusun Fragment
terlampaui
|
Unused
|
Kolom ini tidak digunakan untuk semua nilai kode. Kolom ini harus
diinisialisasi nol oleh pengirim dan diabaikan oleh penerima
|
Deskripsi:
Jika router menerima paket dengan batas hop sama dengan nol, atau router mengurangi limit hop sama dengan nol, router harus membuang paket tersebut dan mengirimkan pesan ICMPv6 bahwa batasan waktu telah terlampau dengan kode 0 ke alamat asal dari paket tersebut. Hal ini menandakan terjadinya routing yang berputar atau inisialisasi nilai batas hop terlalu kecil. Pesan ICMPv6 batas waktu terlampaui yang datang harus diteruskan ke proses pada layer di atasnya.
- Pesan Masalah Parameter
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Type Code Checksum
Pointer
As much of invoking packet
as will fit without the ICMPv6 packet
exceeding 576 octets
Gambar 4.5 Format Pesan ICMPv6 Masalah Parameter
Kolom IPv6: alamat tujuan, dilihat dari kolom alamat asal yang terdapat dari paket.
Kolom ICMPv6
Tipe 4
Kode 0 - ditemukan kolom header yang keliru
1 - ditemukan tipe next header yang tidak dikenali
2 - ditemukan Option IPv6 yang tidak dikenali
Pointer Mengidentifikasi penggantian oktet dalam paket yang terlihat ketika ditemui error
Deskripsi:
Jika dalam pemrosesan paket IPv6, node menemukan masalah dengan kolom dalam header IPv6 atau pada header tambahan, misalkan masalah ini adalah node tidak dapat melakukan pemrisesan paket sampai selesai. Node harus membuang paket dan sebaiknya mengirimkan pesan ICMPv6 masalah parameter ke asal paket, untuk memberitahu tempat dan tipe masalah yang ada.
4.6.3. Pesan-Pesan Informational ICMPv6
4.6.3.1. Pesan Echo Request
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Type Code Checksum
Identifier Sequence Number
Data
Gambar 4.6 Format ICMPv6 Echo Request
Kolom IPv6: alamat tujuan semua alamat IPv6 yang legal
Kolom ICMPv6:
Tipe 128
Kode 0
Pointer Pengidentifikasi untuk membantu menempatkan pengembalian echo ke permintaan echo ini, Mungkin nol
Sequence Rangkainan nomer untuk membantu dalam penempatan pengembalian echo ke permintaan echo. Mungkin nol
Data Nol atau beberapa oktet dari data yang berubah ubah
Deskripsi:
Setiap node harus mengimplementasikan fungsi pengresponan echo ICMPv6 ketika menerima permintaan echo dengan mengirimkan pengembalian echo yang diminta. Node dapat juga mengimplementasikan permintaan echo dan menerima pengembalian echo untuk tujuan diagnosa.
4.6.3.2. Pesan Echo Reply
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Type Code Checksum
Identifier Sequence Number
Data
Gambar 4.7 Format ICMPv6 Echo Reply
Kolom IPv6: Alamat tujuan dilihar dari kolom alamat asal yang terdapat dari paket.
Kolom ICMPv6:
Tipe 129
Kode 0
Pointer Pengidentifikasi untuk membantu menempatkan pengembalian echo ke permintaan echo ini, Mungkin nol
Sequence Rangkainan nomer untuk membantu dalam penempatan pengembalian echo ke permintaan echo. Mungkin nol
Data Nol atau beberapa oktet dari data yang berubah ubah
Deskripsi:
Setiap node yang menerima permintaan echo harus mengimplementasi fungsi peresponan echo ICMPv6 dan mengirimkan pengembalian echo yang sesuai. Node juga harus mengimplementasikan interface layer aplikasi untuk pengiriman request echo dan menerima pengembalian echo, untuk keperluan diagnostik.
Alamat asal dari Echo reply yang digunakan untuk merespon permintaan pesan Echo request harus sama dengan alamat tujuan dari pesan echo dan menerima pengembalian echo, untuk keperluan diagnostik.
Pesan Echo reply harus dikirim dalam merespon pesan echo request yang dikirim ke alamat multicast IPv6. Alamat asal dari pengembalian harus alamat unicast milik interface yang menerima pesan permintaan echo multicast.
Data yang diterima dalam pesan permintaan echo ICMPv6 harus dikembalikan semua dan tidak diubah-ubah sedikitpun dalam pesan pengembalian echo ICMPv6. Pesan pengembalian echo harus dilewatkan ke proses yang merupakan asal dari pesan permintaan echo. Hal ini mungkin juga diteruskan ke proses yang tidak menjadi asal pesan permintaan echo.
4.6.4. Pertimbangan Keamanan
4.6.4.1. Autentifikasi dan Enkripsi dari Pesan ICMP
Pertukaran paket protokol ICMP dapat diautentifikasi menggunakan autentifikasi header IP. Node harus memasukkan header autentifikasi pada waktu mengirimkan pesan ICMP jika asosiasi keamanan untuk alamat tujuan tersebut. Asosiasi keamanan mungkin dibuat melalui manual konfigurasi atau melalui operasi dari beberapa protokol manajemen kunci.
Header autentifikasi dalam header ICMP yang diterima harus diperiksa dulu kebenarannya dan paket dengan autentifikasi yang tidak sesuai harus diabaikan dan dibuang.
Ada kemungkinan bagi administrator system untuk mengkonfigurasi node untuk mengabaikan semua pesan ICMP yang tidak terautentifikasi menggunakan header autentifikasi atau muatan encapsualsi keamanan. Switch-switch harusnya secara default mengizinkan pesan yang tidak menggunakan autentifikasi.
4.6.4.2. Penyerangan ICMP
Pesan-pesan ICMP mungkin menjadi sasaran dari beberapa penyerangan. Berikut ini beberapa penyerangan dan pencegahannya:
1. Pesan-pesan ICMP mungkin menjadi sasaran terhadap aksi yang dapat menyebabkan penerima percaya bahwa pesan datang dari sumber yang berbeda dibandingkan dengan asal pesan. Proteksi terhadap pesan ini dapat dilakukan dengan menerapkan mekanisme autentifikasi IPv6.
2. Pesan-pesan ICMP mungkin menjadi sasaran terhadap aksi yang dapat menyebabkan pesan atau pesan balasan pergi ke tujuan yang berbeda dari tujuan yang sebenarnya. Kalkulasi checksum ICMP menyediakan mekanisme proteksi serangan yang mengubah kolom alamat IP tujuan dan asal dalam paket yang membawa pesan. Kolom checksum ICMP yang mencegah adanya serangan diganti oleh autentifikasi atau enkripsi dari pesan ICMP.
3. Pesan-pesan ICMP mungkin menjadi sasaran terhadap perubahan kolom pesan atau payload. Autentifikasi atau enkripsi dari pesan ICMP adalah proteksi dari serangan tersebut.
4. Pesan-pesan ICMP mungkin digunakan untuk mencoba melakukan serangan DoS (Denial of Service) dengan saling megirimkan kembali paket-paket yang salah. Proteksi dari serangn ini adalah dengan mekanisme pembatasan error rate ICMP.
4.7. Perbandingan Ipv6 versus Ipv4
Beberapa perbandingan utama IPv4 dan IPv6 :
Tabel Perbandingan Ipv4 dan Ipv6
IPv4 IPv6
Panjang alamat 32 bit (4 bytes) Panjang alamat 128 bit (16 bytes)
Dikonfigurasi secara manual atau DHCP IPv4 Tidak harus dikonfigurasi secara manual, bisa menggunakan address autoconfiguration.
Dukungan terhadap IPSec opsional Dukungan terhadap IPSec dibutuhkan
Fragmentasi dilakukan oleh pengirim dan pada router, menurunkan kinerja router. Fragmentasi dilakukan hanya oleh pengirim.
Tidak mensyaratkan ukuran paket pada link-layer dan harus bisa menyusun kembali paket berukuran 576 byte. Paket link-layer harus mendukung ukuran paket 1280 byte dan harus bisa menyusun kembali paket berukuran 1500 byte
Checksum termasuk pada header. Cheksum tidak masuk dalam header.
Header mengandung option. Data opsional dimasukkan seluruhnya ke dalam extensions header.
Menggunakan ARP Request secara broadcast untuk menterjemahkan alamat IPv4 ke alamat link-layer. ARP Request telah digantikan oleh Neighbor Solitcitation secara multicast.
Untuk mengelola keanggotaan grup pada subnet lokal digunakan Internet Group Management Protocol (IGMP). IGMP telah digantikan fungsinya oleh Multicast Listener Discovery (MLD).