Subnet, CIDR, Routing #
Memahami subnet dan CIDR adalah keterampilan dasar yang tidak bisa dihindari ketika bekerja dengan jaringan cloud. Setiap kali kamu membuat VPC, subnet, atau peering connection, kamu berhadapan dengan notasi CIDR dan keputusan tentang bagaimana membagi ruang IP address. Artikel ini membangun pemahaman dari dasar — cara membaca CIDR, cara merencanakan subnet, dan bagaimana routing table menentukan aliran trafik di jaringan kamu.
Memahami CIDR Notation #
CIDR (Classless Inter-Domain Routing) adalah cara menuliskan rentang IP address menggunakan notasi IP/prefix_length. Angka setelah slash menentukan berapa bit yang “tetap” (network portion) dan berapa bit yang bisa digunakan untuk host.
Cara Membaca CIDR:
10.0.0.0/16
─────────────
10.0.0.0 = Network address (titik awal)
/16 = 16 bit pertama adalah network portion (tetap)
16 bit sisanya = host portion (bisa digunakan)
Dari /16:
Total IP = 2^(32-16) = 2^16 = 65.536 IP address
Range = 10.0.0.0 hingga 10.0.255.255
10.0.1.0/24
─────────────
/24 = 24 bit network, 8 bit host
Total IP = 2^(32-24) = 2^8 = 256 IP address
Range = 10.0.1.0 hingga 10.0.1.255
Usable = 10.0.1.1 hingga 10.0.1.254 (cloud reserve beberapa)
Tabel referensi cepat:
Prefix Total IP Cocok untuk
/28 16 Subnet sangat kecil (tidak disarankan)
/27 32 Subnet kecil
/24 256 Subnet standar (paling umum digunakan)
/22 1.024 Subnet besar
/20 4.096 Subnet sangat besar
/16 65.536 VPC standar
/8 16.777.216 VPC sangat besar
Reserved IP dalam Subnet Cloud #
Di cloud, tidak semua IP dalam subnet bisa digunakan. Provider mereservasi beberapa IP untuk keperluan internal.
Contoh subnet 10.0.1.0/24 (256 IP):
10.0.1.0 → Network address (tidak bisa digunakan)
10.0.1.1 → Reserved oleh provider (biasanya untuk router/gateway)
10.0.1.2 → Reserved oleh provider (DNS resolver)
10.0.1.3 → Reserved oleh provider (future use)
10.0.1.4 hingga 10.0.1.254 → Available untuk resource kamu (251 IP)
10.0.1.255 → Broadcast address (tidak bisa digunakan)
Dari 256 IP total, hanya 251 yang bisa dipakai resource
(angka pasti bervariasi per provider, tapi konsepnya sama)
Strategi Pembagian Subnet #
Bagaimana membagi VPC menjadi subnet adalah keputusan desain yang berdampak jangka panjang. Berikut beberapa strategi yang umum.
Strategi Berdasarkan Tier dan AZ #
Pola paling umum: buat subnet per tier (public/private/data) dan per AZ.
VPC: 10.0.0.0/16
Public Subnets (untuk load balancer, NAT gateway):
10.0.1.0/24 → AZ-1a (251 IP usable)
10.0.2.0/24 → AZ-1b (251 IP usable)
10.0.3.0/24 → AZ-1c (251 IP usable)
Private Subnets (untuk application server):
10.0.10.0/24 → AZ-1a
10.0.11.0/24 → AZ-1b
10.0.12.0/24 → AZ-1c
Data Subnets (untuk database, cache — lebih terisolasi):
10.0.20.0/24 → AZ-1a
10.0.21.0/24 → AZ-1b
10.0.22.0/24 → AZ-1c
Penomoran yang konsisten memudahkan:
x.x.1-3.x = public
x.x.10-12.x = private
x.x.20-22.x = data
Pertimbangan Ukuran Subnet #
Jangan terlalu kecil:
✗ /28 (16 IP) untuk subnet application server
→ Hanya 11 IP usable setelah reserved
→ Sangat cepat habis jika auto-scaling aktif
→ Sulit diperluas tanpa restrukturisasi
Jangan terlalu besar untuk subnet yang spesifik:
✗ /16 untuk subnet single-tier dalam satu AZ
→ Buang ruang IP yang bisa dipakai untuk subnet lain
→ /24 atau /22 biasanya lebih dari cukup per subnet
Rekomendasi praktis:
✓ /24 untuk kebanyakan subnet (251 usable IP)
✓ /22 untuk subnet yang butuh banyak instance (1019 usable)
✓ Sisakan ruang di VPC untuk ekspansi masa depan
Route Table — Cara Kerja Routing #
Route table adalah kumpulan aturan yang menentukan ke mana paket jaringan dikirim berdasarkan alamat tujuannya. Setiap subnet diasosiasikan dengan satu route table.
Cara Router Memilih Route:
Paket datang dengan tujuan: 10.0.5.23
Route table diperiksa dari yang paling spesifik:
Destination Target Match?
10.0.5.0/24 → subnet-xyz ← MATCH (paling spesifik, dipilih)
10.0.0.0/16 → local
0.0.0.0/0 → igw-xxx
Aturan: "Longest prefix match wins"
→ Route dengan prefix paling panjang (/24 lebih spesifik dari /16)
selalu dipilih jika cocok
Paket dengan tujuan 8.8.8.8 (Google DNS):
Destination Target Match?
10.0.5.0/24 → subnet-xyz Tidak
10.0.0.0/16 → local Tidak
0.0.0.0/0 → igw-xxx ← MATCH (default route)
Route Table untuk Public Subnet #
Route Table: rtb-public
Destination Target
──────────────────────────────────────────
10.0.0.0/16 local ← trafik dalam VPC: lokal
0.0.0.0/0 igw-xxxxxxxx ← semua trafik lain: ke internet
Subnet yang pakai route table ini: public-az1a, public-az1b
Resource di subnet ini:
✓ Bisa diakses dari internet (jika punya public IP)
✓ Bisa akses internet langsung
Route Table untuk Private Subnet #
Route Table: rtb-private
Destination Target
──────────────────────────────────────────
10.0.0.0/16 local ← trafik dalam VPC: lokal
0.0.0.0/0 nat-xxxxxxxx ← semua trafik lain: ke NAT Gateway
Subnet yang pakai route table ini: private-az1a, private-az1b
Resource di subnet ini:
✗ Tidak bisa diakses dari internet (tidak ada public IP)
✓ Bisa inisiasi koneksi ke internet (untuk download package, dll)
melalui NAT Gateway — tapi internet tidak bisa inisiasi ke mereka
Route Table untuk Data Subnet (Paling Terisolasi) #
Route Table: rtb-data
Destination Target
──────────────────────────────────────────
10.0.0.0/16 local ← hanya trafik dalam VPC
Tidak ada route ke internet sama sekali!
Resource di subnet ini:
✗ Tidak bisa diakses dari internet
✗ Tidak bisa akses internet
✓ Hanya bisa berkomunikasi dengan resource dalam VPC yang sama
Cocok untuk: database yang tidak pernah perlu akses internet
Perencanaan CIDR untuk Koneksi Antar VPC #
Jika kamu berencana menghubungkan beberapa VPC (peering, transit gateway) atau menghubungkan ke on-premise, perencanaan CIDR yang tidak overlap adalah wajib.
// ANTI-PATTERN: CIDR yang overlap
VPC Production: 10.0.0.0/16
VPC Staging: 10.0.0.0/16 ← SAMA! Tidak bisa di-peer
// BENAR: CIDR yang tidak overlap
VPC Production: 10.0.0.0/16 (10.0.0.1 - 10.0.255.254)
VPC Staging: 10.1.0.0/16 (10.1.0.1 - 10.1.255.254)
VPC Development: 10.2.0.0/16 (10.2.0.1 - 10.2.255.254)
On-premise: 192.168.0.0/16 (tidak overlap dengan ketiganya)
Tip: rencanakan alokasi CIDR sejak awal sebelum membuat VPC
Mengubah CIDR VPC setelah resource berjalan sangat menyakitkan
Ringkasan #
- CIDR /N berarti N bit network, sisanya host — /24 = 256 IP, /16 = 65.536 IP. Makin kecil angkanya, makin besar ruangnya.
- Cloud provider mereservasi beberapa IP per subnet — dari /24 (256 IP), hanya sekitar 251 yang bisa digunakan resource.
- Longest prefix match menentukan route yang dipilih — route yang paling spesifik (angka prefix paling besar) selalu menang.
- Tier + AZ adalah pola pembagian subnet yang paling umum — public, private, dan data subnet di setiap AZ yang digunakan.
- Rencanakan CIDR dari awal agar tidak overlap — VPC yang akan di-peer atau terhubung ke on-premise harus punya CIDR yang unik.
- Data subnet tanpa route ke internet adalah lapisan isolasi tambahan — database yang tidak butuh akses internet tidak perlu punya akses ke sana.
← Sebelumnya: Virtual Network (VPC / VNet) Berikutnya: Public vs Private Network →