Masker subjaringan

Menentukan alamat Network Identifier

Untuk menentukan network identifier dari sebuah alamat IP dengan menggunakan sebuah subnet mask tertentu, dapat dilakukan dengan menggunakan sebuah operasi matematika, yaitu dengan menggunakan operasi logika perbandingan AND (AND comparison). Di dalam sebuah AND comparison, nilai dari dua hal yang diperbandingkan akan bernilai true hanya ketika dua item tersebut bernilai true; dan menjadi false jika salah satunya false. Dengan mengaplikasikan prinsip ini ke dalam bit-bit, nilai 1 akan didapat jika kedua bit yang diperbandingkan bernilai 1, dan nilai 0 jika ada salah satu di antara nilai yang diperbandingkan bernilai 0.
Cara ini akan melakukan sebuah operasi logika AND comparison dengan menggunakan 32-bit alamat IP dan dengan 32-bit subnet mask, yang dikenal dengan operasi bitwise logical AND comparison. Hasil dari operasi bitwise alamat IP dengan subnet mask itulah yang disebut dengan network identifier.
Contoh:
Alamat IP    10000011 01101011 10100100 00011010 (131.107.164.026)
Subnet Mask  11111111 11111111 11110000 00000000 (255.255.240.000)
------------------------------------------------------------------
Network ID   10000011 01101011 10100000 00000000 (131.107.160.000)

Variable-length Subnetting

Bahasan di atas merupakan sebuah contoh dari subnetting yang memiliki panjang tetap (fixed length subnetting), yang akan menghasilkan beberapa subjaringan dengan jumlah host yang sama. Meskipun demikian, dalam kenyataannya segmen jaringan tidaklah seperti itu. Beberapa segmen jaringan membutuhkan lebih banyak alamat IP dibandingkan lainnya, dan beberapa segmen jaringan membutuhkan lebih sedikit alamat IP.
Jika proses subnetting yang menghasilkan beberapa subjaringan dengan jumlah host yang sama telah dilakukan, maka ada kemungkinan di dalam segmen-segmen jaringan tersebut memiliki alamat-alamat yang tidak digunakan atau membutuhkan lebih banyak alamat. Karena itulah, dalam kasus ini proses subnetting harus dilakukan berdasarkan segmen jaringan yang dibutuhkan oleh jumlah host terbanyak. Untuk memaksimalkan penggunaan ruangan alamat yang tetap, subnetting pun diaplikasikan secara rekursif untuk membentuk beberapa subjaringan dengan ukuran bervariasi, yang diturunkan dari network identifier yang sama. Teknik subnetting seperti ini disebut juga variable-length subnetting. Subjaringan-subjaringan yang dibuat dengan teknik ini menggunakan subnet mask yang disebut sebagai Variable-length Subnet Mask (VLSM).
Karena semua subnet diturunkan dari network identifier yang sama, jika subnet-subnet tersebut berurutan (kontigu subnet yang berada dalam network identifier yang sama yang dapat saling berhubungan satu sama lainnya), rute yang ditujukan ke subnet-subnet tersebut dapat diringkas dengan menyingkat network identifier yang asli.
Teknik variable-length subnetting harus dilakukan secara hati-hati sehingga subnet yang dibentuk pun unik, dan dengan menggunakan subnet mask tersebut dapat dibedakan dengan subnet lainnya, meski berada dalam network identifer asli yang sama. Kehati-hatian tersebut melibatkan analisis yang lebih terhadap segmen-segmen jaringan yang akan menentukan berapa banyak segmen yang akan dibuat dan berapa banyak jumlah host dalam setiap segmennya.
Dengan menggunakan variable-length subnetting, teknik subnetting dapat dilakukan secara rekursif: network identifier yang sebelumnya telah di-subnet-kan, di-subnet-kan kembali. Ketika melakukannya, bit-bit network identifier tersebut harus bersifat tetap dan subnetting pun dilakukan dengan mengambil sisa dari bit-bit host.
Tentu saja, teknik ini pun membutuhkan protokol routing baru. Protokol-protokol routing yang mendukung variable-length subnetting adalah Routing Information Protocol (RIP) versi 2 (RIPv2), Open Shortest Path First (OSPF), dan Border Gateway Protocol (BGP versi 4 (BGPv4). Protokol RIP versi 1 yang lama, tidak mendukungya, sehingga jika ada sebuah router yang hanya mendukung protokol tersebut, maka router tersebut tidak dapat melakukan routing terhadap subnet yang dibagi dengan menggunakan teknik variable-length subnet mask.