Pengetahuan Awal Tentang IPv6
Internet Protocol version 6 (IPv6) adalah revisi terakhir
dari Internet Protocol (IP), protokol komunikasi yang memberikan identifikasi
dan lokasi system untuk komputer di jaringan dan menyalurkan traffic melalui
Internet. IPv6 di kembangkan oleh Internet Engineering Task Force (IETF) untuk
mengatasi IPv4 address yang akan habis.
IPv6 di buat untuk mengganti IPv4, yang masih digunakan oleh
sebagian besar traffic di Internet sampai 2015. Untuk pertama kalinya, pada
bulan September 2013, persentase pengguna yang mencapai Google melalui IPv6
melebihi 2%.
Semua peralatan di Internet harus memperoleh alokasi IP
address agar dapat berkomunikasi dengan alat lainnya. Dengan banyaknya alat
baru yang tersambung ke Internet, kebutuhan ini naik dengan drastis di atas
keberadaan IPv4 address yang ada. IPv6 menggunakan 128 bit, memungkinkan 2^128,
atau 3.4 x 10^38 address, atau lebih dari 7.9 x 10^28 kali IPv4, yang hanya
menggunakan address 32 bit. IPv4 hanya memungkinkan 4.3 milyard address. Karena
ke dua protokol ini tidak di rancang untuk saling interoperasi, ini
mengakibatkan kesulitan proses transisi IPv6.
Apakah IPv6?
IPv6 adalah protokol lapisan 3 yang baru yang dirancang
untuk menggantikan IPv4 (yang juga dikenal sebagai IP). IPv4 dirancang pada
masa lalu (RFC 760 / Internet Protocol dari January 1980) dan sejak di
perkenalkannya, sudah banyak sekali permohonan untuk address yang lebih banyak
maupun perbaikan kemampuan. Terakhir RFC 2460 / Internet Protocol Version 6
Specification.
Perubahan utama di IPv6 adalah disain ulang dari header,
termasuk peningkatan jumlah address dari 32 bit menjadi 128 bit. Karena lapisan
ke 3 bertanggung jawab untuk transport paket end-to-end menggunakan routing
paket berbasis pada address, dia harus memasukan IPv6 address yang baru (source
dan destination), seperti IPv4.
Untuk informasi lebih lanjut tentang sejarah IPv6 ada
baiknya melihat RFC lama terkait IPv6, seperti SWITCH IPv6 Pilot / References.
Sejarah IPv6 di Linux
Code network pertama IPv6 yang di tambahkan ke source code
kernel Linux terjadi pada versi 2.1.8 di bulan November 1996 oleh Pedro Roque.
Network code tersebut berbasis pada BSD API
diff -u --recursive
--new-file v2.1.7/linux/include/linux/in6.h
¬ linux/include/linux/in6.h
--- v2.1.7/linux/include/linux/in6.h Thu Jan 1 02:00:00 1970
+++ linux/include/linux/in6.h Sun Nov 3 11:04:42 1996
@@ -0,0 +1,99 @@
+/*
+ * Types and definitions for AF_INET6
+ * Linux INET6 implementation
+ * + * Authors:
+ * Pedro Roque <******>
+ *
+ * Source:
+ * IPv6 Program Interfaces for BSD Systems
+ * <draft-ietf-ipngwg-bsd-api-05.txt>
Kalimat di atas di ambil dari patch-2.1.8 (e-mail address di
tutup saat copy & paste).
Karena kekurangan sumber daya manusia, implementasi IPv6 di
kernel tidak dapat mengikuti draft maupun RFC yang baru di release. Bulan
Oktober 2000, sebuah projek di mulai di Jepang, dinamakan USAGI, yang bertujuan
untuk mengimplementasikan semua hal yang tidak ada, atau kadaluarsa dalam
dukungan IPv6 di Linux. USAGI mengambil implementasi IPv6 terakhir di FreeBSD
yang dikerjakan oleh KAME Project. Dari waktu ke waktu USAGI mengirimkan
snapshot ke kernel source terakhir.
Hingga kernel development versi 2.5.x di mulai, patch USAGI
sangat besar, sehingga Linux networking maintainer tidak dapat lagi
memasukannya secara penuh di production source dari Linux kernel versi 2.4.x.
Pada saat kernel development versi 2.5.x, USAGI berjuang
untuk memasukan semua extensi mereka ke kernel source.
Pada saat ini, banyak perkembangan jangka panjang IPv6 di
patch oleh USAGI dan banyak lainnya mulai terintegrasi ke kernel 2.6.x ke atas.
Dari waktu ke waktu USAGI mengirimkan snapshot ke kernel source terakhir.
Penampakan IPv6
Seperti di jelaskan sebelumnya, IPv6 address panjangnya 128
bit. Jumlah bit tersebut jika di konversikan dalam desimal sangat panjang
sampai 39 digit:
2^128-1:
340282366920938463463374607431768211455
Nomor sepanjang itu bukan address yang dapat di ingat dengan
midah. Di samping itu, IPv6 address berorientasi bit, juga seperti IPv4 hanya
saja banyak yang tidak menyadarinya. Oleh karenanya, notasi yang lebih mudah
adalah hexadesimal. Dalam hexadesimal, 4 bit (yang juga dikenal sebagai
"nibble") di representasikan dalam digit atau karakter 0-9 dan a-f
(10-15). Format ini menyebabkan panjang dari IPv6 address menjadi 32 karakter.
2^128-1:
0xffffffffffffffffffffffffffffffff
Representasi di atas masih belum enak di baca, oleh
karenanya para perancang IPv6 memilih format hexadesimal dengan titik dua (:)
sebagai pemisah antar blok dari 16 bit. Selain itu, "0x" (yang
menandakan dia adalah hexadesimal yang biasanya digunakan dalam programming) di
buang, hasilnya adalah:
2^128-1:
ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
Contoh address yang digunakan(tergantung tipe-nya), adalah:
2001:0db8:0100:f101:0210:a4ff:fee3:9566
Untuk lebih menyederhakakan, awalan "NOL" dari
setiap 16 blok dapat dibuang:
2001:0db8:0100:f101:0210:a4ff:fee3:9566 ->
2001:db8:100:f101:210:a4ff:fee3:9566
Satu urutan blok 16 bit yang berisi hanya NOL dapay di ganti
dengan "::". Tapi tidak bisa lebih dari satu kali, karena
representasinya jadi tidak unik.
2001:0db8:100:f101:0:0:0:1 -> 2001:db8:100:f101::1
Reduksi paling besar terjadi pada alokasi IPv6 localhost,
sebagai berikut:
0000:0000:0000:0000:0000:0000:0000:0001 -> ::1
Di samping itu, juga ada yang di sebut representasi compact
(base85 coded) yang di definisikan di RFC 1924 / A Compact Representation of
IPv6 Addresses (1 April 1996), memang jarang sekali yang menggunakan, mungkin
ini joke "April Fool", tapi berikut ini adalah contohnya:
# sudo apt-get
install ipv6calc
Coba:
# ipv6calc
--addr_to_base85 2001:0db8:0100:f101:0210:a4ff:fee3:9566
Hasilnya:
9R}vSQZ1W=9A_Q74Lz&R
No comments:
Post a Comment