Episode ini menghubungkan instance ke dunia luar: virtual router dengan SNAT dan DNAT, floating IP yang bisa di-assign dan di-unassign secara dinamis, serta security groups sebagai firewall stateful dengan kebijakan default deny all inbound.

Di episode 6, kalian membuat jaringan virtual yang masih terisolasi. Episode 7 menjawab pertanyaan paling mendasar setelah itu: bagaimana instance di dalam jaringan tersebut mencapai internet, dan bagaimana dunia luar menjangkau instance itu? Jawabannya ada pada tiga mekanisme Neutron: virtual router, floating IP, dan security groups.
Tiga topik ini bekerja berurutan dalam skenario nyata. Router membuka jalur keluar lewat SNAT. Floating IP membuka jalur masuk lewat DNAT. Dan security group menjaga pintunya — memastikan hanya traffic yang kalian izinkan yang bisa lewat. Episode ini membahas ketiganya dengan praktik langsung.
Virtual router di Neutron adalah objek yang menghubungkan dua network: sisi internal (tenant/self-service) dan sisi eksternal (provider/public). Router ini diimplementasikan oleh L3 Agent — di DevStack, sebuah namespace jaringan di network node.
openstack router create router-utama
openstack router set --external-gateway public router-utama
openstack router add subnet router-utama subnet-aplikasiPerintah openstack router add subnet router-utama subnet-aplikasi menempelkan subnet internal ke router. Setelah ini, instance di subnet-aplikasi memiliki jalur ke router sebagai gateway-nya.
SNAT (Source NAT) membuat instance dengan IP private bisa keluar ke internet. Router mengganti alamat sumber paket menjadi IP dari network eksternal, lalu meneruskan jawabannya kembali. Artinya instance bisa apt-get update, curl, dan mengakses internet, meskipun tidak punya IP publik.
openstack network agent list --type l3Output openstack network agent list --type l3 menampilkan agent router yang berjalan dan statusnya. Jika agent mati, seluruh routing internal-eksternal berhenti — ini salah satu titik kegagalan yang akan kita bahas di episode 19.
Kebalikan dari SNAT, DNAT (Destination NAT) mengarahkan traffic dari luar ke instance tertentu. Penerapan paling umum DNAT adalah floating IP — IP publik yang di-route ke IP private instance.
Floating IP adalah IP dari pool eksternal yang bisa di-assign dan di-unassign ke instance secara dinamis. Beda dengan fixed IP (IP private tetap di port instance), floating IP sifatnya dipinjamkan — instance bisa berganti floating IP, atau satu floating IP berpindah ke instance lain saat maintenance.
openstack floating ip create public
openstack floating ip listopenstack floating ip create public mengambil satu IP dari pool eksternal. Catat kolom floating_ip_address pada output — IP itulah yang akan dihubungkan ke instance.
openstack server add floating ip ubuntu-nginx 172.24.4.10
openstack server show ubuntu-nginx -c addressesSetelah openstack server add floating ip, instance bisa diakses dari luar menggunakan floating IP. Verifikasi koneksi SSH dari mesin kalian:
ssh -i mykey.pem ubuntu@172.24.4.10Untuk melepas dan memindahkan ke instance lain, gunakan openstack server remove floating ip lalu tambahkan ke instance tujuan. Konsep ini dipakai luas di produksi: floating IP dipindah antar instance saat failover.
Security group adalah kumpulan aturan firewall yang stateful — artinya jawaban dari traffic yang sudah diizinkan otomatis diperbolehkan tanpa aturan terpisah. Kebijakan default setiap security group:
openstack security group list
openstack security group show defaultOutput openstack security group show default menampilkan aturan default yang hanya mengizinkan SSH dari dalam network yang sama dan semua outbound.
Buat security group khusus untuk web server dan tambahkan aturannya:
openstack security group create sg-web
openstack security group rule create --proto tcp --dst-port 22 sg-web
openstack security group rule create --proto tcp --dst-port 80 --remote-ip 0.0.0.0/0 sg-web
openstack security group rule create --proto icmp --remote-ip 0.0.0.0/0 sg-web| Aturan | Fungsi |
|---|---|
tcp/22 | Membuka SSH untuk administrasi |
tcp/80 | Membuka HTTP untuk publik |
icmp | Membuka ping untuk monitoring |
Perintah openstack security group rule create --proto tcp --dst-port 80 --remote-ip 0.0.0.0/0 mengizinkan HTTP dari semua IP. Untuk membatasi hanya ke IP tertentu, ganti 0.0.0.0/0 dengan CIDR kantor kalian.
openstack server create --image ubuntu-jammy --flavor m1.small \
--network net-aplikasi --key-name mykey \
--security-group sg-web ubuntu-webopenstack server create --security-group sg-web memasang firewall sejak instance lahir. Security group juga bisa ditambah atau dihapus dari instance yang sudah berjalan:
openstack server add security group ubuntu-web sg-web
openstack server remove security group ubuntu-web defaultEpisode 7 membuat jaringan kalian benar-benar hidup: virtual router membuka jalur keluar lewat SNAT dan jalur masuk lewat DNAT, floating IP menyediakan alamat publik yang bisa dipindah-pindah secara dinamis, dan security group menjaga keamanan dengan kebijakan default deny semua inbound.
Inti yang harus dibawa pulang:
Di episode 8 selanjutnya kita akan membahas Cinder (Block Storage Service) dan Persistent Volumes — memahami volume sebagai virtual hard disk yang persisten, membuat dan melampirkan volume ke instance, snapshot dan backup untuk recovery, serta memilih backend driver dari LVM hingga Ceph RBD untuk produksi.