Cara internet bekerja sebenarnya sangat menakjubkan. Saat kita mengetikkan sebuah alamat domain (misalnya dotko.id) di browser, ada proses panjang yang terjadi di balik layar tanpa kita sadari. Salah satu proses penting di dalamnya adalah penerjemahan nama domain ke alamat IP server yang akan melayani permintaan dari client.
Pada awalnya, seluruh komunikasi di internet menggunakan alamat IPv4. Namun seiring berjalannya waktu, kebutuhan akan alamat IPv4 semakin meningkat, sementara ruang alamat yang tersedia semakin terbatas.
Untuk mengatasi keterbatasan tersebut, IETF (Internet Engineering Task Force) mengembangkan teknologi baru bernama IPv6 pada pertengahan 1990-an. Meski sudah diperkenalkan sejak lama, transisi dari IPv4 ke IPv6 masih berlangsung secara bertahap karena berbagai tantangan teknis dan ekonomi.
Sekilas, alamat IPv6 terlihat rumit dan panjang, terutama saat harus melakukan subnetting dan distribusi alamatnya. Tapi jika kita memahami format penulisannya dan aturan subnetting yang berlaku, prosesnya justru bisa lebih sederhana dibandingkan IPv4.
Di artikel ini, kita akan membahas bagaimana format penulisan IPv6 dan cara melakukan subnetting-nya.
A. Format Penulisan
Berbeda dengan IPv4 yang menggunakan angka desimal, alamat IPv6 ditulis dalam format heksadesimal. Sebuah alamat IPv6 terdiri dari 8 grup hextet (masing-masing 16 bit biner) yang dipisahkan oleh tanda titik dua (:
). Secara total, sebuah alamat IPv6 memiliki 128 bit. Contohnya seperti berikut:
2001:0db8:0000:0000:1234:ABCD:0FC1:34AB/64
Meski tampak panjang, sebenarnya ada beberapa cara untuk menyederhanakan penulisannya:
1. Leading Zero
Jika sebuah hextet memiliki awalan nol, angka nol tersebut boleh dihilangkan. Contohnya:
2001:0db8:0000:0000:1234:ABCD:0FC1:34AB/64
Dapat disingkat menjadi:
2001:db8:0:0:1234:ABCD:FC1:34AB/64
2. Double Colon
Jika terdapat beberapa grup hextet berurutan yang bernilai 0, kita dapat menggantinya dengan ::
. Contohnya:
2001:db8:0000:0000:1234:ABCD:FC1:34AB/64
Bisa disingkat menjadi:
2001:db8::1234:ABCD:FC1:34AB/64
Catatan penting:
Double colon (::
) hanya boleh digunakan sekali dalam sebuah alamat IPv6. Jika ada lebih dari satu bagian hextet nol berurutan, gunakan ::
pada bagian yang paling panjang. Jika ada dua bagian yang panjangnya sama, gunakan ::
pada bagian yang pertama kali muncul.
Contoh :
2001:db8:0000:0000:1234:0000:0000:0000/64
Disederhanakan menjadi:
2001:db8:0:0:1234::/64
Contoh lain jika dua bagian panjangnya sama :
2001:db8:0000:0000:1234:ABCD:0000:0000/64
Disederhanakan menjadi :
2001:db8::1234:ABCD:0:0/64
B. Subnetting
Agar distribusi alamat IP di jaringan lebih terstruktur, kita perlu merencanakan alokasi subnet IPv6. Meski terlihat panjang, subnetting IPv6 justru lebih mudah jika sudah memahami konsepnya.
Sebagai contoh, kita akan menghitung berapa banyak subnet /36
yang dapat dibuat dari prefix 2001:db8::/32
.
Rumus untuk menghitung jumlah subnetnya sebagai berikut :
2 ^ (subnet - prefix)
Dalam kasus ini :
2 ^ (36 - 32) = 2 ^ 4 = 16
2 ^ 4 = 16
Jadi, dari prefix /32
, kita bisa membuat 16 subnet /36
.
Lalu bagaimana menentukan rangenya? Kita coba jabarkan kembali format alamat IPv6 nya ke notasi asli.
2001:0db8:0000:0000:0000:0000:0000:0000/32
Seperti yang disebutkan di awal alamat IPv6 terdiri dari 128 bit, dimana bit tersebut dikelompokkan menjadi grup yang berisi 16 bit, dan 16 bit ini dibagi lagi menjadi 4 bagian yang membentuk satu angka hexadesimal. Angka hexadesimal ini bisa kita sebut juga menjadi nibble.
Untuk menghitung rangenya, kita mengambil nilai hasil pengurangan subnet dengan prefix, yaitu /36 - /32 = 4. Angka 4 ini berarti kita meminjam bit dibelakang prefix awal. Kita akan memodifkasi 4 bit ini sampai mendapatkan 16 bit range subnet baru. Sehingga didapatkan hasil seperti berikut.
2001:db8: [(0000)=0] 000::/36
2001:db8: [(0001)=1] 000::/36
2001:db8: [(0010)=2] 000::/36
2001:db8: [(0011)=3] 000::/36
2001:db8: [(0100)=4] 000::/36
2001:db8: [(0101)=5] 000::/36
2001:db8: [(0110)=6] 000::/36
2001:db8: [(0111)=7] 000::/36
2001:db8: [(1000)=8] 000::/36
2001:db8: [(1001)=9] 000::/36
2001:db8: [(1010)=A] 000::/36
2001:db8: [(1011)=B] 000::/36
2001:db8: [(1100)=C] 000::/36
2001:db8: [(1101)=D] 000::/36
2001:db8: [(1110)=E] 000::/36
2001:db8: [(1111)=F] 000::/36
Jadi secara lengkap range alamat IPv6 nya adalah.
2001:db8:0::/36
2001:db8:1000::/36
2001:db8:2000::/36
2001:db8:3000::/36
2001:db8:4000::/36
2001:db8:5000::/36
2001:db8:6000::/36
2001:db8:7000::/36
2001:db8:8000::/36
2001:db8:9000::/36
2001:db8:A000::/36
2001:db8:B000::/36
2001:db8:C000::/36
2001:db8:D000::/36
2001:db8:E000::/36
2001:db8:F000::/36
Kesimpulan
IPv6 memang terlihat lebih kompleks dibandingkan IPv4, terutama dari format penulisan dan panjang alamatnya. Namun dengan memahami aturan penulisan seperti leading zero, double colon, serta rumus subnetting-nya, IPv6 bisa dikelola dengan jauh lebih mudah dan rapi.