Subnetting 1
Subnetting adalah proses memecah satu blok alamat IPv4 menjadi beberapa jaringan (subnet) yang lebih kecil. Tujuannya supaya kita bisa mengelola sendiri ruang alamat yang kita punya tanpa harus beli range terpisah untuk tiap kebutuhan.
Latar Belakang
Bayangin kita ini network designer buat sebuah bisnis kecil dengan empat departemen yang tersebar di dua kantor, dan kita pengen ngelola sendiri public address space-nya.
Daripada beli range alamat terpisah buat tiap departemen, kita cukup beli satu range lalu kita subnet jadi beberapa bagian yang lebih kecil. Lebih hemat, lebih rapi, dan kita yang pegang kontrol pembagiannya.
Catatan: Konsep ini paling gampang dipahami dari sudut pandang desain IPv4 awal, di mana semua host yang bisa komunikasi di Internet punya public IP address. Walaupun sekarang prakteknya kebanyakan pakai Private IP + NAT, cara hitung subnetting-nya tetap sama persis.
Borrowing Host Bits
Sebuah alamat IPv4 dibagi jadi dua bagian: network portion dan host portion. Untuk memecah jaringan jadi subnet yang lebih kecil, kita "minjam" (borrow) beberapa bit dari host portion dan kita tambahkan ke network portion.
Misal kita dialokasikan blok Class C: 200.15.10.0/24
Default Class C itu /24, artinya 24 bit pertama adalah network, 8 bit terakhir (oktet ke-4) adalah host:
200.15.10.0/24 ┌───── network (24 bit) ─────┐ ┌ host (8 bit)┐ 11001000 . 00001111 . 00001010 . 00000000 200 . 15 . 10 . 0
Begitu kita subnet, garis pembatas network selalu bergeser ke kanan. Misal kita geser 4 bit ke kanan jadi /28:
200.15.10.0/28 ┌──────────── network (28 bit) ─────┐ ┌─ host (4 bit) ┐ 11111111 . 11111111 . 11111111 . 1111 │ 0000
Prinsip yang harus diinget:
- Subnetting = minjam host bit dan ditambahin ke network portion.
- Garis network selalu gerak ke kanan saat kita subnet.
- Makin ke kanan garisnya → makin banyak subnet, tapi makin sedikit host per subnet. Ini tradeoff-nya: gak bisa dua-duanya banyak.
Menghitung Jumlah Subnet
Rumusnya:
Jumlah subnet = 2^(subnet-bits)
di mana subnet-bits = jumlah bit yang dipinjam dari default mask kelasnya.
Contoh 1 — Class C /28:
- Default Class C =
/24, kita pakai/28→ minjam 4 bit. - 24 = 16 subnet
Contoh 2 — Class B /28:
- Default Class B =
/16, kita pakai/28→ minjam 12 bit. - 212 = 4096 subnet
Perhatiin: prefix yang sama (/28) ngasih jumlah subnet beda, tergantung dari default mask kelasnya. Yang dihitung itu berapa bit yang dipinjam, bukan angka prefix-nya doang.
Catatan: Host yang ada di subnet berbeda harus lewat router kalau mau saling komunikasi. Dalam satu subnet, host bisa langsung ngomong via switch (Layer 2); beda subnet butuh Layer 3 / routing.
Menghitung Jumlah Host
Rumusnya:
Jumlah host valid = 2^(host-bits) − 2
Kenapa dikurang 2? Karena dalam tiap subnet ada dua alamat yang gak boleh dipakai host:
- Network address → host bit semua 0
- Broadcast address → host bit semua 1
Contoh — Class C /28:
/28menyisakan 4 bit untuk host.- 24 − 2 = 14 host per subnet
Contoh — Class B /28:
/28juga menyisakan 4 bit untuk host.- 24 − 2 = 14 host per subnet
Catatan penting: jumlah host cuma ditentukan oleh berapa host bit yang tersisa, bukan kelasnya. Makanya Class C /28 dan Class B /28 sama-sama 14 host — host bit-nya sama-sama 4. Yang beda cuma jumlah subnet-nya (lihat bagian sebelumnya).
Catatan: ip subnet-zero
Sama kayak kita harus ngurangin 2 buat dapet jumlah host valid, dulu kita juga harus ngurangin 2 buat dapet jumlah subnet yang valid.
Di standar Internet awal, gak boleh pakai network bit yang semuanya 0 atau semuanya 1 (mirip aturan host bit gak boleh all-0 / all-1). Jadi subnet pertama (subnet zero) dan subnet terakhir dianggap gak valid.
Ternyata aturan ini gak ada gunanya secara praktis dan cuma buang-buang address space. Akhirnya muncul command:
Router(config)# ip subnet-zero
Command ip subnet-zero di router mematikan batasan tadi, dan default-nya udah aktif di IOS modern. Jadi di praktek sekarang, rumus jumlah subnet cukup 2subnet-bits tanpa dikurang 2.
Use Case 1: Bagi /24 jadi 4 departemen
Balik ke skenario awal: kita punya 200.15.10.0/24 dan butuh 4 subnet (empat departemen).
Step 1 — tentukan jumlah bit yang dipinjam. Butuh minimal 4 subnet → cari 2n ≥ 4 → n = 2 (22 = 4). Pinjam 2 bit.
Step 2 — tentukan prefix baru. /24 + 2 bit = /26
Step 3 — hitung subnet mask & block size.
- /26 → mask = 255.255.255.192
- Block size = 256 − 192 = 64 (jarak antar subnet di oktet ke-4)
Step 4 — hitung host per subnet.
- Host bit tersisa = 32 − 26 = 6
- 26 − 2 = 62 host per subnet (lebih dari cukup untuk satu departemen)
Step 5 — daftar subnet:
| # | Departemen | Network Address | Range Host Valid | Broadcast |
|---|---|---|---|---|
| 1 | HRD | 200.15.10.0/26 | .1 – .62 | 200.15.10.63 |
| 2 | Finance | 200.15.10.64/26 | .65 – .126 | 200.15.10.127 |
| 3 | IT | 200.15.10.128/26 | .129 – .190 | 200.15.10.191 |
| 4 | Sales | 200.15.10.192/26 | .193 – .254 | 200.15.10.255 |
Tiap departemen dapet subnet sendiri, terisolasi di Layer 2, dan saling komunikasi lewat router. Masih ada 0 subnet sisa di sini (pas 4), tapi tiap subnet masih punya banyak host kosong buat tumbuh.
Use Case 2: Butuh banyak subnet kecil (/28)
Misal kebutuhannya beda: kita butuh banyak subnet kecil, misal tiap subnet cukup buat belasan device (printer pool, IoT, link point-to-point antar kantor, dll).
Pakai 200.15.10.0/24 di-subnet jadi /28:
- Bit dipinjam = 28 − 24 = 4 → 24 = 16 subnet
- Host bit tersisa = 4 → 24 − 2 = 14 host per subnet
- Mask = 255.255.255.240, block size = 256 − 240 = 16
Beberapa subnet pertama:
| # | Network | Range Host | Broadcast |
|---|---|---|---|
| 1 | 200.15.10.0/28 | .1 – .14 | 200.15.10.15 |
| 2 | 200.15.10.16/28 | .17 – .30 | 200.15.10.31 |
| 3 | 200.15.10.32/28 | .33 – .46 | 200.15.10.47 |
| 4 | 200.15.10.48/28 | .49 – .62 | 200.15.10.63 |
| ... | ... | ... | ... |
| 16 | 200.15.10.240/28 | .241 – .254 | 200.15.10.255 |
Bandingin sama Use Case 1: blok /24 yang sama, tapi /26 ngasih 4 subnet × 62 host, sedangkan /28 ngasih 16 subnet × 14 host. Itulah tradeoff subnet vs host secara nyata — total host kapasitasnya mirip, tapi cara dibaginya beda jauh.
Use Case 3 (lanjutan): VLSM untuk efisiensi
Use Case 1 dan 2 pakai fixed-length subnet (semua subnet ukurannya sama). Masalahnya, departemen di dunia nyata ukurannya gak sama — boros kalau departemen 5 orang dikasih subnet 62 host.
VLSM (Variable Length Subnet Masking) ngebolehin tiap subnet punya mask beda sesuai kebutuhannya. Kuncinya: alokasikan dari yang paling besar dulu, baru turun ke yang kecil, biar gak overlap.
Misal dari 200.15.10.0/24, kebutuhan host:
- Sales: 100 host
- IT: 50 host
- HRD: 25 host
- Link WAN antar kantor: 2 host
| Dept | Butuh Host | Prefix | Network | Range | Broadcast |
|---|---|---|---|---|---|
| Sales | 100 | /25 (126 host) | 200.15.10.0/25 | .1 – .126 | .127 |
| IT | 50 | /26 (62 host) | 200.15.10.128/26 | .129 – .190 | .191 |
| HRD | 25 | /27 (30 host) | 200.15.10.192/27 | .193 – .222 | .223 |
| WAN link | 2 | /30 (2 host) | 200.15.10.224/30 | .225 – .226 | .227 |
Sisa alamat dari .228 ke atas masih bebas buat pertumbuhan. Dengan VLSM, gak ada blok gede yang kebuang sia-sia. Ini yang dipakai di jaringan production beneran, dan link point-to-point antar router biasanya selalu /30 (atau /31 kalau perangkatnya support RFC 3021).
Ringkasan Rumus
| Yang dihitung | Rumus | Catatan |
|---|---|---|
| Jumlah subnet | 2subnet-bits | subnet-bits = bit dipinjam dari default mask kelasnya |
| Jumlah host valid | 2host-bits − 2 | dikurang 2 (network + broadcast address) |
| Block size | 256 − (nilai oktet mask) | jarak antar network address |