Saturday, March 11, 2017

IPv6

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