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 →

About | Author | Content Scope | Editorial Policy | Privacy Policy | Disclaimer | Contact