Thursday, November 29, 2012

Analisis Kinerja IPv6 Versus IPv4


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)
ICMPv6 digunakan oleh node IPv6 untuk melaporkan kesalahan dalam pengolahan paket dan untuk memberikan pada fungsi layer Internet lainnya, seperti untuk diagnosa (ICMPv6 “ping”). ICMPv6 adalah bagian yang utuh dari IPv6 dan harus diimplementasikan penuh oleh setiap node IPv6.
  • Format Umum Pesan
Pesan-pesan ICMPv6 dikelompokkan dalam dua kelas yaitu pesan kesalahan dan pesan informasional. Pesan kesalahan diidentifikasi dengan mempunyai nilai nol pada bit-bit awal dari kolom tipe pesan. Sehingga, pesan kesalahan mempunyai nilai tipe-tipe pesan dari 0 sampai 127; pesan informasi mempunyai nilai tipe-tipe pesan 128 sampai 255.
Format untuk pesan ICMPv6 :
Pesan kesalahan ICMPv6:
  1. Destination unreachable
  2. Packet Too Big
  3. Time Exceeded
  4. Parameter Problem
Pesan Informasioanl ICMPv6:
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
Node yang mengirimkan pesan ICMPv6 harus menentukan kedua alamat IPv6 asal dan tujuan dalam header IPv6 header sebelumnya menghitung checksum. Jika node mempunyai lebih dari satu alamat unicast, node tersebut harus memilih alamat asal dari pesan sebagai berikut:
  1. 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.
  2. 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.
  3. 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.
  4. 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
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).

Read more »

Tunnel IPv6 in IPv4

dari pembahasan sebelumya implementasi IPv6 tentu anda sudah bisa untuk mekanjutkan Tunnel IPv6

Untuk membuat koneksi IPv6 ke dunia dapat dilakukan dengan menggunakan tunnel IPv6inIPv4 dan terhubung ke IPv6 provider. Untuk menggunakan tunnel IPv6inIPv4 ini diperlukan beberapa alamat IP. Diperlukan informasi akan IPv4 yang akan dibuat tunnel dari kedua sisi yang akan dihubungkan. Selain itu Tunnel IPv6inIPv4 ini dapat juga dilakukan apabila dalam network anda terdapat router yang masih belum support IPv6, sehingga dapat mendistribusikan IPv6 walaupun ke jaringan interna

Read more »

Implementasi IPv6

Beberapa distribusi Linux sudah mendukung akan IPv6,seperti Debian, RedHat, PLD, Suse, Mandrake dan sebagainya. Kernel yang mendukung IPv6 bisa dalam bentuk modul atau sudah dimasukkan dalam image kernel. Apabila masih dalam bentuk modul.
Untuk mengecek apakah linux yang digunakan sudah mendukung IPv6 dapat dilakukan dengan melihat apakah pada direktori /proc sudah terdapat file: /proc/net/if_inet6 atau dengan cara:

 # test -f /proc/net/if_inet6 && echo "IPv6 sudah mendukung"


Apabila test diatas gagal kemungkinan IPv6 berbentuk modul dan perlu dipanggil terlebih dahulu. Untuk memanggil modul IPv6 dapat dengan cara: “modprobe ipv6”. Apabila perintah diatas sukses, modul IPv6 akan tampak di daftar modul kernel, untuk mengecek apakah modul ipv6 sudah terpanggil dapat dengan cara:
# modprobe ipv6
# lsmod |grep -w 'ipv6' && echo "modul IPv6 sukses dipangil"


Apabila tampil pernyataan “sukses” berarti ipv6 sudah siap.
Catatan: modul ipv6 tidak dapat dilepas.
Untuk dapat meload kernel modul ipv6 secara otomatis dapat dilakukan dengan menambahkan konfigurasi di file /etc/modules.conf, yaitu:
/etc/modules.conf
alias net-pf-10 ipv6 # automatically load IPv6 module on demand


Apabila cara diatas masih gagal, berarti kernel masih belum mendukung IPv6, untuk itu diperlukan kompilasi ulang kernel. Cara yang perlu dilakukan adalah:
  1. Download source kernel dari http://www.kernel.org, versi stable pada saat dokumen ini ditulis adalah 2.2.20 atau 2.4.18
  2. Extrak file kernel yang didownload di direktori /usr/src dengan perintah:
  3. # tar –jxvf linux2.4.18.tar.bz2 –C /usr/src
  4. Jalankan “make menuconfig” untuk memulai konfigurasi atas kernel.
  5. Konfigurasi yang perlu diperhatikan untuk dapat mendukung IPv6 antara lain:
  6. CONFIG_EXPERIMENTAL=y
    CONFIG_NET=y
    CONFIG_PACKET=y
    CONFIG_PACKET_MMAP=y
    CONFIG_NETLINK_DEV=y
    CONFIG_NETFILTER=y
    CONFIG_NETFILTER_DEBUG=y
    CONFIG_FILTER=y
    CONFIG_UNIX=y
    CONFIG_INET=y
    CONFIG_IP_MULTICAST=y
    CONFIG_IP_ADVANCED_ROUTER=y
    CONFIG_IP_MULTIPLE_TABLES=y
    CONFIG_IP_ROUTE_FWMARK=y
    CONFIG_IP_ROUTE_MULTIPATH=y
    CONFIG_IP_ROUTE_TOS=y
    CONFIG_IP_ROUTE_VERBOSE=y
    CONFIG_IP_ROUTE_LARGE_TABLES=y
    CONFIG_IP_PNP=y
    CONFIG_NET_IPIP=m
    CONFIG_NET_IPGRE=m
    CONFIG_NET_IPGRE_BROADCAST=y
    CONFIG_IP_MROUTE=y
    CONFIG_IP_PIMSM_V1=y
    CONFIG_IP_PIMSM_V2=y
    CONFIG_ARPD=y
    CONFIG_INET_ECN=y
    CONFIG_SYN_COOKIES=y
    CONFIG_IPV6=y
    CONFIG_IP6_NF_IPTABLES=m
    CONFIG_IP6_NF_MATCH_LIMIT=m
    CONFIG_IP6_NF_MATCH_MAC=m
    CONFIG_IP6_NF_MATCH_MULTIPORT=m
    CONFIG_IP6_NF_MATCH_OWNER=m
    CONFIG_IP6_NF_MATCH_MARK=m
    CONFIG_IP6_NF_FILTER=m
    CONFIG_IP6_NF_TARGET_LOG=m
    CONFIG_IP6_NF_MANGLE=m
    CONFIG_IP6_NF_TARGET_MARK=m
  7. Konfigurasi kernel yang lainnya disesuaikan dengan kondisi hardware, dan kemampuan dari linux box tersebut.
  8. Untuk memulai kompilasi jalankan perintah:
  9. # make dep
    # make bzImage atau # make install
    # make modules modules_install

  10. Restart mesin Linux tersebut.
  11. Untuk mengecek apakah kernel sudah mendukung IPv6 dapat dilakukan dengan:
  12. # dmesg | grep IPv6
  13. Apabila terdapat output dibawah ini, berarti kernel sudah mendukung IPv6.
  14. IPv6 v0.8 for NET4.0
    IPv6 over IPv4 tunneling driver

IPv6 Network Configuration tools

IPv6 Network Configuration tools adalah program/aplikasi yang dapat digunakan untuk mengkonfigurasi jaringan yang mendukung IPv6. Karena tanpa aplikasi ini tidak akan dapat dibangun jaringan yang mendukung IPv6, walaupun kernel sudah mendukung IPv6.

Paket nettools

Pada paket nettools terdapat aplikasi ifconfig dan route, dimana aplikasi ini berguna untuk menyetting IPv6. Jalankan ifconfig -? Atau route -?, apabila menemukan output seperti IPv6 atau inet6 berarti tools ini sudah mendukung IPv6. Atau jalankan:
# /sbin/ifconfig -? 2>& 1|grep -qw 'inet6' && echo “'ifconfig' mendukung IPv6"
# /sbin/route -? 2>& 1|grep -qw 'inet6' && echo "'route' mendukung IPv6"


Paket iproute

Alexey N. Kuznetsov (maintener untuk kode Linux Networking) menbuat satu paket dimana paket tersebut dapat mengkonfigurasi janringan melalui peralatan netlink. Program yang dipakai dari paket iproute ini yaitu: “ip”.
# /sbin/ip 2>&1 |grep -qw 'inet6' && echo "'ip' mendukung IPv6"
Apabila perintah ip ini tidak dapat ditemukan, dianjurkan untuk menginstall paket iproute terlebih dahulu. Paket iproute ini dapat didownload dari ftp://ftp.inr.ac.ru/iprouting/, atau dari distribusi linux yang digunakan. Apabila menggunakan distribusi Debian jalankan perintah “aptget install iproute”.

Program tes IPv6

Setelah memastikan system yang digunakan sudah mendukung IPv6, kemudian perlu dilakukan tes apakah sudah dapat dilakukan komunikasi IPv6

 IPv6 ping

Progam ini biasanya tergabung dalam paket iputils. Program ini didesign untuk melakukan tes sederhana dengan cara mengirimkan ICMPv6 paket echorequest dan menunggu paket ICMPv6 echoreply.
Cara menggunakannya sebagai berikut:
# ping6
# ping6
# ping6 [-I ]

Contoh
# ping6 -c 1 ::1

IPv6 traceroute6

Program ini biasanya tergabung dalam paket iputils. Program ini mirip dengan traceroute dari IPv4. Lain dengan versi IPv4, traceroute IPv6 tidak menggunakan paket ICMP echorequest melainkan menggunakan UDP. Berikut contoh traceroute6:
# traceroute6 www.6bone.net

IPv6 tracepath6

Program ini biasanya tergabung dalam paket iputils. Program ini mirip dengan traceroute6 dan melacak jalur yang dituju, dan MTU pada jalur tersebut. Berikut ini contoh tracepath6:
  # tracepath6 www.6bone.net

IPv6 tcpdump

Linux memiliki utility untuk menangkap paket yang dilewatlan. Berikut ini contoh penggunakan tcpdump. Aplikasi tcpdump yang sudah mendukung IPv6 mulai versi 3.6. Tcpdump menggunakan beberapa opsi untuk memfilter paket sehingga meminimalkan noise:
  • icmp6: memfilter trafik ICMPv6
  • ip6: memfilter trafik IPv6
  • proto ipv6: memfilter trafik tunnel IPv6inIPv4
  • not port ssh: untuk melihat paket yang berjalan di sesi SSH
Begitu juga opsi lainnya yang berguna untuk memberikan informasi tentang paket:
  • “-s 512” : meningkatkan panjang paket sepanjang 512 byte
  • “-vv”    : lebih verbose
  • “-n”     : menampilkan dalam bentuk numeric IP
Contoh penggunaan tcpdump
# tcpdump -t -n -i eth0 -s 512 -vv ip6 or proto ipv6

Konfigurasi IPv6

Pada node, terdapat beberapa peralatan jaringan, dan dapat dibedakan menjadi 2 kelas
  1. Fisik, seperti eth0, tr0
  2. Virtual, seperti ppp0, tun0, tap0, sit0, isdn0, ippp0
Interface yang termasuk kelas fisik yaitu Ehternet atau TokenRing dan tidak diperlukan perlakuan khusus. Interface yang termasuk kelas virtual diperlukan perlakuan khusus, misal
  • Interface tunnel IPv6inIPv4, biasanya dilambangkan dengan sitX. Nama sit merupakan singkatan dari Simple Internet Transition. Perangkat ini memiliki kemampuan untuk mengencapsulasi paket IPv6 kedalam paket IPv4 dan ditunnelkan ke titik terakhir. Sit0 merupakan device khusus dan tidak dapat digunakan.
  • Interface PPP, mendukung IPv6 dari PPP daemon
  • Interface ISDN HDLC, sudah mendukung IPv6 dari kernel.
  • Interface ISDN PPP (ippp), masih belum mendukung IPv6.
  • SLIP + PLIP, interface ini masih belum mendukung IPv6.
  • Ethertap,sudah mendukung IPv6 dan merupakan stateless configuration.
  • ATM, sudah mendukung IPv6 dengan menggunakan kernel dari USAGI.

Interface

Untuk mengkonfigurasi interface dapat dilakukan dengan metode:
  • IP
Untuk up/down interface:
# ip link set dev eth0 up
# ip link set dev eth0 down
Untuk melihat alamat IPv6 interface
# /sbin/ip -6 addr show dev eth0
Untuk menambah alamat IPv6 pada interface
# /sbin/ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0
Untuk menghilangkan alamat IPv6 dari interface
# /sbin/ip -6 addr del 3ffe:ffff:0:f101::1/64 dev eth0
  • Ifconfig
Untuk up/down interface:
# /sbin/ifconfig eth0 up
# /sbin/ifconfig eth0 down
Untuk melihat alamat IPv6 pada interface:
# /sbin/ifconfig eth0 |grep "inet6 addr:"
Untuk menambah alamat IPv6 pada interface:
# /sbin/ifconfig eth0 inet6 add 3ffe:ffff:0:f101::1/64
Untuk menghilangkan alamat IPv6 dari interface:
# /sbin/ifconfig eth0 inet6 del 3ffe:ffff:0:f101::1/64
  • Routing
Untuk mengkonfigurasi routing dapat menggunakan metode:
  • IP
Melihat table routing:
# /sbin/ip -6 route show dev eth0
Menambah routing melalui gateway
# /sbin/ip -6 route add 2000::/3 via 3ffe:ffff:0:f101::1
Menghilangkan routing yang melalui gateway
# /sbin/ip -6 route del 2000::/3 via 3ffe:ffff:0:f101::1
Menambah routing melalui interface
# /sbin/ip -6 route add 2000::/3 dev eth0 metric 1
Menghilangkan routing melalui interface:
# /sbin/ip -6 route del 2000::/3 dev eth0
  • Route
Melihat table routing:
# /sbin/route -A inet6 |grep -w "eth0"
Menambahkan routing IPv6 melalui gateway:
# /sbin/route -A inet6 add 2000::/3 gw 3ffe:ffff:0:f101::1
Menghilangkan routing IPv6 melalui gateway:
# /sbin/route -A inet6 del 2000::/3 gw 3ffe:ffff:0:f101::1
Menambahkan routing IPv6 melalui interface:
# /sbin/route -A inet6 add 2000::/3 dev eth0
Menghilangkan routing IPv6 melalui interface:
# /sbin/route -A inet6 del 2000::/3 dev eth0

Interface
Untuk mengkonfigurasi interface dapat dilakukan dengan metode:
IP
Untuk up/down interface:
# ip link set dev eth0 up
# ip link set dev eth0 down
Untuk melihat alamat IPv6 interface
# /sbin/ip -6 addr show dev eth0
Untuk menambah alamat IPv6 pada interface
# /sbin/ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0
Untuk menghilangkan alamat IPv6 dari interface
# /sbin/ip -6 addr del 3ffe:ffff:0:f101::1/64 dev eth0
Ifconfig
Untuk up/down interface:
# /sbin/ifconfig eth0 up
# /sbin/ifconfig eth0 down
Untuk melihat alamat IPv6 pada interface:
# /sbin/ifconfig eth0 |grep "inet6 addr:"
Untuk menambah alamat IPv6 pada interface:
# /sbin/ifconfig eth0 inet6 add 3ffe:ffff:0:f101::1/64
Untuk menghilangkan alamat IPv6 dari interface:
# /sbin/ifconfig eth0 inet6 del 3ffe:ffff:0:f101::1/64
Routing
Untuk mengkonfigurasi routing dapat menggunakan metode:
IP
Melihat table routing:
# /sbin/ip -6 route show dev eth0
Menambah routing melalui gateway
# /sbin/ip -6 route add 2000::/3 via 3ffe:ffff:0:f101::1
Menghilangkan routing yang melalui gateway
# /sbin/ip -6 route del 2000::/3 via 3ffe:ffff:0:f101::1
Menambah routing melalui interface
# /sbin/ip -6 route add 2000::/3 dev eth0 metric 1
Menghilangkan routing melalui interface:
# /sbin/ip -6 route del 2000::/3 dev eth0

  • Route
Melihat table routing:
# /sbin/route -A inet6 |grep -w "eth0"
Menambahkan routing IPv6 melalui gateway:
# /sbin/route -A inet6 add 2000::/3 gw 3ffe:ffff:0:f101::1
Menghilangkan routing IPv6 melalui gateway:
# /sbin/route -A inet6 del 2000::/3 gw 3ffe:ffff:0:f101::1
Menambahkan routing IPv6 melalui interface:
# /sbin/route -A inet6 add 2000::/3 dev eth0
Menghilangkan routing IPv6 melalui interface:
# /sbin/route -A inet6 del 2000::/3 dev eth0
 

semoga bermanfaat bagi anda
lanjut ke Tunnel IPv6 in IPv4

Read more »

Alamat IP versi 6


Internet Protokol Versi 6 (IPv6) adalah protokol Internet versi baru yang didesain sebagai pengganti dari Internet protocol versi 4 (IPv4) yang didefinisikan dalam RFC 791. Panjang totalnya adalah 128-bit, dan secara teoritis dapat mengalamati hingga 2128=3,4 x 1038 host komputer di seluruh dunia.


Contoh alamat IPv6 adalah 21da:00d3:0000:2f3b:02aa:00ff:fe28:9c5a.

Berbeda dengan IPv4 yang hanya memiliki panjang 32-bit (jumlah total alamat yang dapat dicapainya mencapai 4,294,967,296 alamat), alamat IPv6 memiliki panjang 128-bit. IPv4, meskipun total alamatnya mencapai 4 miliar, pada kenyataannya tidak sampai 4 miliar alamat, karena ada beberapa limitasi(batasan), sehingga implementasinya saat ini hanya mencapai beberapa ratus juta saja. IPv6, yang memiliki panjang 128-bit, memiliki total alamat yang mungkin hingga 2128=3,4 x 1038 alamat. Total alamat yang sangat besar ini bertujuan untuk menyediakan ruang alamat yang tidak akan habis (hingga beberapa masa ke depan), dan membentuk infrastruktur routing yang disusun secara hierarkis, sehingga mengurangi kompleksitas proses routing dan tabel routing.

Sama seperti halnya IPv4, IPv6 juga mengizinkan adanya DHCPv6 Server sebagai pengelola alamat. Jika dalam IPv4 terdapat dynamic address dan static address, maka dalam IPv6, konfigurasi alamat dengan menggunakan DHCP Server dinamakan dengan stateful address configuration, sementara jika konfigurasi alamat IPv6 tanpa DHCP Server dinamakan dengan stateless address configuration.

Seperti halnya IPv4 yang menggunakan bit-bit pada tingkat tinggi (high-order bit) sebagai alamat jaringan sementara bit-bit pada tingkat rendah (low-order bit) sebagai alamat host, dalam IPv6 juga terjadi hal serupa. Dalam IPv6, bit-bit pada tingkat tinggi akan digunakan sebagai tanda pengenal jenis alamat IPv6, yang disebut dengan Format Prefix (FP). Dalam IPv6, tidak ada subnet mask, yang ada hanyalah Format Prefix.

Format Alamat

Dalam IPv6, alamat 128-bit akan dibagi ke dalam 8 blok berukuran 16-bit, yang dapat dikonversikan ke dalam bilangan heksadesimal berukuran 4-digit. Setiap blok bilangan heksadesimal tersebut akan dipisahkan dengan tanda titik dua (:). Karenanya, format notasi yang digunakan oleh IPv6 juga sering disebut dengan colon-hexadecimal format, berbeda dengan IPv4 yang menggunakan dotted-decimal format.
Berikut ini adalah contoh alamat IPv6 dalam bentuk bilangan biner:

0010000111011010000000001101001100000000000000000010111100111011000000101010101000000000 1111111111111110001010001001110001011010

Untuk menerjemahkannya ke dalam bentuk notasi colon-hexadecimal format, angka-angka biner di atas dibagi ke dalam 8 buah blok berukuran 16-bit:

0010000111011010 0000000011010011 0000000000000000 0010111100111011 0000001010101010  0000000011111111 1111111000101000 1001110001011010

Lalu, setiap blok berukuran 16-bit tersebut dikonversikan ke dalam bilangan heksadesimal dan setiap bilangan heksadesimal tersebut dipisahkan dengan menggunakan tanda titik dua. Hasil konversinya adalah sebagai berikut:

21da:00d3:0000:2f3b:02aa:00ff:fe28:9c5a

Penyederhanaan bentuk alamat

Alamat di atas juga dapat disederhanakan lagi dengan membuang angka 0 pada awal setiap blok yang berukuran 16-bit di atas, dengan menyisakan satu digit terakhir. Dengan membuang angka 0, alamat di atas disederhanakan menjadi:

21da:d3:0:2f3b:2aa:ff:fe28:9c5a

Konvensi pengalamatan IPv6 juga mengizinkan penyederhanaan alamat lebih jauh lagi, yakni dengan membuang banyak karakter 0, pada sebuah alamat yang banyak angka 0-nya. Jika sebuah alamat IPv6 yang direpresentasikan dalam notasi colon-hexadecimal format mengandung beberapa blok 16-bit dengan angka 0, maka alamat tersebut dapat disederhanakan dengan menggunakan tanda dua buah titik dua (:). Untuk menghindari kebingungan, penyederhanaan alamat IPv6 dengan cara ini hanya bisa digunakan sekali saja di dalam satu alamat, karena kemungkinan nantinya pengguna tidak dapat menentukan berapa banyak bit 0 yang direpresentasikan oleh setiap tanda dua titik dua (:) yang terdapat dalam alamat tersebut. Tabel berikut mengilustrasikan cara penggunaan hal ini.

Alamat asli Alamat asli yang disederhanakan Alamat setelah dikompres
fe80:0000:0000:0000:02aa:00ff:fe9a:4ca2 fe80:0:0:0:2aa:ff:fe9a:4ca2 fe80::2aa:ff:fe9a:4ca2
ff02:0000:0000:0000:0000:0000:0000:0002 ff02:0:0:0:0:0:0:2 ff02::2


Format Prefix


Dalam IPv4, sebuah alamat dalam notasi dotted-decimal format dapat direpresentasikan dengan menggunakan angka prefiks yang merujuk kepada subnet mask. IPv6 juga memiliki angka prefiks, tapi tidak didugnakan untuk merujuk kepada subnet mask, karena memang IPv6 tidak mendukung subnet mask.

Prefiks adalah sebuah bagian dari alamat IP, di mana bit-bit memiliki nilai-nilai yang tetap atau bit-bit tersebut merupakan bagian dari sebuah rute atau subnet identifier. Prefiks dalam IPv6 direpesentasikan dengan cara yang sama seperti halnya prefiks alamat IPv4, yaitu [alamat]/[angka panjang prefiks]. Panjang prefiks menentukan jumlah bit terbesar paling kiri yang membuat prefiks subnet.
Sebagai contoh, prefiks sebuah alamat IPv6 dapat direpresentasikan sebagai berikut:

3ffe:2900:d005:f28b::/64

Pada contoh di atas, 64 bit pertama dari alamat tersebut dianggap sebagai prefiks alamat, sementara 64 bit sisanya dianggap sebagai interface ID.

Jenis-jenis Alamat IPv6

 IPv6 mendukung beberapa jenis format prefix, yakni sebagai berikut:
  • Alamat Unicast, yang menyediakan komunikasi secara point-to-point, secara langsung antara dua host dalam sebuah jaringan.
  • Alamat Multicast, yang menyediakan metode untuk mengirimkan sebuah paket data ke banyak host yang berada dalam group yang sama. Alamat ini digunakan dalam komunikasi one-to-many.
  • Alamat Anycast, yang menyediakan metode penyampaian paket data kepada anggota terdekat dari sebuah group. Alamat ini digunakan dalam komunikasi one-to-one-of-many. Alamat ini juga digunakan hanya sebagai alamat tujuan (destination address) dan diberikan hanya kepada router, bukan kepada host-host biasa.
Jika dilihat dari cakupan alamatnya, alamat unicast dan anycast terbagi menjadi alamat-alamat berikut:
  • Link-Local, merupakan sebuah jenis alamat yang mengizinkan sebuah komputer agar dapat berkomunikasi dengan komputer lainnya dalam satu subnet.
  • Site-Local, merupakan sebuah jenis alamat yang mengizinkan sebuah komputer agar dapat berkomunikasi dengan komputer lainnya dalam sebuah intranet.
  • Global Address, merupakan sebuah jenis alamat yang mengizinkan sebuah komputer agar dapat berkomunikasi dengan komputer lainnya dalam Internet berbasis IPv6.
Sementara itu, cakupan alamat multicast dimasukkan ke dalam struktur alamat.

Unicast Address

  • Alamat IPv6 unicast dapat diimplementasikan dalam
  • Alamat unicast global
  • Alamat unicast site-local
  • Alamat unicast link-local
  • Alamat unicast yang belum ditentukan (unicast unspecified address)
  • Alamat unicast loopback
  • Alamat unicast 6to4
  • Alamat unicast ISATAP

Unicast global addresses

 Alamat unicast global IPv6 mirip dengan alamat publik dalam alamat IPv4. Dikenal juga sebagai Aggregatable Global Unicast Address. Seperti halnya alamat publik IPv4 yang dapat secara global dirujuk oleh host-host di Internet dengan menggunakan proses routing, alamat ini juga mengimplementasikan hal serupa. Struktur alamat IPv6 unicast global terbagi menjadi topologi tiga level (Public, Site, dan Node).


Field Panjang Keterangan
001 3 bit Berfungsi sebagai tanda pengenal alamat, bahwa alamat ini adalah sebuah alamat IPv6 Unicast Global.
Top Level Aggregation Identifier (TLA ID 13 bit Berfungsi sebagai level tertinggi dalam hierarki routing. TLA ID diatur oleh Internet Assigned Numbers Authority (IANA), yang mengalokasikannya ke dalam daftar Internet registry, yang kemudian mengolasikan sebuah TLA ID ke sebuah ISP global.
Res 8 bit Direservasikan untuk penggunaan pada masa yang akan datang (mungkin untuk memperluas TLA ID atau NLA ID).
Next Level Aggregation Identifier (NLA ID) 24 bit Berfungsi sebagai tanda pengenal milik situs (site) kustomer tertentu.
Site Level Aggregation Identifier (SLA ID) 16 bi Mengizinkan hingga 65536 (216) subnet dalam sebuah situs individu. SLA ID ditetapkan di dalam sebuah site. ISP tidak dapat mengubah bagian alamat ini.
Interface ID 64 bit 64 bit Berfungsi sebagai alamat dari sebuah node dalam subnet yang spesifik (yang ditentukan oleh SLA ID).


Unicast site-local addresses

Alamat unicast site-local IPv6 mirip dengan alamat privat dalam IPv4. Ruang lingkup dari sebuah alamat terdapat pada Internetwork dalam sebuah site milik sebuah organisasi. Penggunaan alamat unicast global dan unicast site-local dalam sebuah jaringan adalah mungkin dilakukan. Prefiks yang digunakan oleh alamat ini adalah FEC0::/48.
Field Panjang Keterangan
111111101100000000000000000000000000000000000000 48 bit Nilai ketetapan alamat unicast site-local
Subnet Identifier 16 bit Mengizinkan hingga 65536 (216) subnet dalam sebuah struktur subnet datar. Administrator juga dapat membagi bit-bit yang yang memiliki nilai tinggi (high-order bit) untuk membuat sebuah infrastruktur routing hierarkis.
Interface Identifier 64 bit Berfungsi sebagai alamat dari sebuah node dalam subnet yang spesifik.

Unicast link-local address

Alamat unicast link-local adalah alamat yang digunakan oleh host-host dalam subnet yang sama. Alamat ini mirip dengan konfigurasi APIPA (Automatic Private Internet Protocol Addressing) dalam sistem operasi Microsoft Windows XP ke atas. host-host yang berada di dalam subnet yang sama akan menggunakan alamat-alamat ini secara otomatis agar dapat berkomunikasi. Alamat ini juga memiliki fungsi resolusi alamat, yang disebut dengan Neighbor Discovery. Prefiks alamat yang digunakan oleh jenis alamat ini adalah fe80::/64.

Field Panjang Keterangan
1111111010000000000000000000000000000000000000000000000000000000    64 bit Berfungsi sebagai tanda pengenal alamat unicast link-local.
Interface ID 64 bit Berfungsi sebagai alamat dari sebuah node dalam subnet yang spesifik.

Unicast unspecified address

Alamat unicast yang belum ditentukan adalah alamat yang belum ditentukan oleh seorang administrator atau tidak menemukan sebuah DHCP Server untuk meminta alamat. Alamat ini sama dengan alamat IPv4 yang belum ditentukan, yakni 0.0.0.0. Nilai alamat ini dalam IPv6 adalah 0:0:0:0:0:0:0:0 atau dapat disingkat menjadi dua titik dua (::).

Unicast Loopback Address

Alamat unicast loopback adalah sebuah alamat yang digunakan untuk mekanisme interprocess communication (IPC) dalam sebuah host. Dalam IPv4, alamat yang ditetapkan adalah 127.0.0.1, sementara dalam IPv6 adalah 0:0:0:0:0:0:0:1, atau ::1.

Unicast 6to4 Address

Alamat unicast 6 to 4 adalah alamat yang digunakan oleh dua host IPv4 dan IPv6 dalam Internet IPv4 agar dapat saling berkomunikasi. Alamat ini sering digunakan sebagai pengganti alamat publik IPv4. Alamat ini aslinya menggunakan prefiks alamat 2002::/16, dengan tambahan 32 bit dari alamat publik IPv4 untuk membuat sebuah prefiks dengan panjang 48-bit, dengan format 2002:WWXX:YYZZ::/48, di mana WWXX dan YYZZ adalah representasi dalam notasi colon-decimal format dari notasi dotted-decimal format w.x.y.z dari alamat publik IPv4. Sebagai contoh alamat IPv4 157.60.91.123 diterjemahkan menjadi alamat IPv6 2002:9d3c:5b7b::/48.
Meskipun demikian, alamat ini sering ditulis dalam format IPv6 Unicast global address, yakni 2002:WWXX:YYZZ:SLA ID:Interface ID.

Unicast ISATAP Address

Alamat Unicast ISATAP adalah sebuah alamat yang digunakan oleh dua host IPv4 dan IPv6 dalam sebuah Intranet IPv4 agar dapat saling berkomunikasi. Alamat ini menggabungkan prefiks alamat unicast link-local, alamat unicast site-local atau alamat unicast global (yang dapat berupa prefiks alamat 6to4) yang berukuran 64-bit dengan 32-bit ISATAP Identifier (0000:5efe), lalu diikuti dengan 32-bit alamat IPv4 yang dimiliki oleh interface atau sebuah host. Prefiks yang digunakan dalam alamat ini dinamakan dengan subnet prefix. Meski alamat 6to4 hanya dapat menangani alamat IPv4 publik saja, alamat ISATAP dapat menangani alamat pribadi IPv4 dan alamat publik IPv4.

Multicast Address

Alamat multicast IPv6 sama seperti halnya alamat multicast pada IPv4. Paket-paket yang ditujukan ke sebuah alamat multicast akan disampaikan terhadap semua interface yang dikenali oleh alamat tersebut. Prefiks alamat yang digunakan oleh alamat multicast IPv6 adalah ff00::/8.
Field Panjang Keterangan
11111111 8 bit Tanda pengenal bahwa alamat ini adalah alamat multicast.
Flags 4 bit Berfungsi sebagai tanda pengenal apakah alamat ini adalah alamat transient atau bukan. Jika nilainya 0, maka alamat ini bukan alamat transient, dan alamat ini merujuk kepada alamat multicast yang ditetapkan secara permanen. Jika nilainya 1, maka alamat ini adalah alamat transient.
Scope 4 bit Berfungsi untuk mengindikasikan cakupan lalu lintas multicast, seperti halnya interface-local, link-local, site-local, organization-local atau global.
Group ID 112 bit Berfungsi sebagai tanda pengenal group multicast

Anycast Address

Alamat Anycast dalam IPv6 mirip dengan alamat anycast dalam IPv4, tapi diimplementasikan dengan cara yang lebih efisien dibandingkan dengan IPv4. Umumnya, alamat anycast digunakan oleh Internet Service Provider (ISP) yang memiliki banyak klien. Meskipun alamat anycast menggunakan ruang alamat unicast, tapi fungsinya berbeda daripada alamat unicast.

IPv6 menggunakan alamat anycast untuk mengidentifikasikan beberapa interface yang berbeda. IPv6 akan menyampaikan paket-paket yang dialamatkan ke sebuah alamat anycast ke interface terdekat yang dikenali oleh alamat tersebut. Hal ini sangat berbeda dengan alamat multicast, yang menyampaikan paket ke banyak penerima, karena alamat anycast akan menyampaikan paket kepada salah satu dari banyak penerima.

Read more »