Category: Networking

  • Memahami CloudStack Networking

    Memahami CloudStack Networking

    Saat ini saya sedang mencoba Apache CloudStack di lingkungan lab. Networking dasar seperti IP address, subnet, dan gateway secara umum sudah bisa saya pahami. Bagian yang masih saya pelajari adalah bagaimana CloudStack memakai konsep tersebut untuk mengatur jaringan VM.

    Setelah membaca artikel ShapeBlue – A Beginner’s Guide to CloudStack Networking dan sedikit dokumentasi cloudstack, baru saya mulai memahami.

    Empat Jenis Trafik CloudStack

    Hal pertama yang perlu dipahami adalah CloudStack membagi trafik jaringan berdasarkan fungsinya.

    Jenis trafikFungsi
    ManagementKomunikasi Management Server, host, dan System VM
    GuestTrafik antar-VM dan trafik VM menuju gateway
    PublicMenghubungkan guest network dengan jaringan luar
    StorageTransfer template, ISO, dan snapshot

    Keempat trafik tersebut tidak selalu membutuhkan empat NIC fisik. Pada lab, beberapa trafik dapat digabung dalam satu interface. Pada production, pemisahan NIC atau VLAN lebih disarankan.

    Management Network

    Management network digunakan untuk komunikasi Management Server, host hypervisor, Secondary Storage VM, Console Proxy VM, dan System VM lainnya.

    Saat membuat pod, kita menyediakan Reserved System IP khusus untuk System VM. Range ini berbeda dari IP Management Server, IP host, Public IP, dan IP user VM. Sederhananya, management network adalah jalur kontrol internal CloudStack.

    Guest Network

    Guest network adalah jaringan yang digunakan oleh VM. Trafik antar-VM dan trafik VM menuju gateway akan melewati jaringan ini.

    Pada Advanced Networking, guest network dapat berupa:

    • Isolated Network, yaitu jaringan yang dipisahkan untuk Account tertentu.
    • Shared Network, yaitu jaringan yang dapat digunakan bersama sesuai scope yang ditentukan.
    • VPC, yaitu beberapa network tier yang dihubungkan melalui VPC Virtual Router.

    Pada isolated network, CloudStack memberikan VLAN tersendiri. VM memperoleh private IP dan menggunakan Virtual Router sebagai default gateway. Karena terpisah secara Layer 2, isolated network yang berbeda secara konsep dapat memakai CIDR private yang sama tanpa saling terhubung.

    Public Network

    Istilah Public Network di CloudStack tidak selalu berarti IP publik Internet. Public network adalah jaringan yang berada di sisi luar Virtual Router.

    Dalam private cloud, Public IP dapat menggunakan IP private seperti 192.168.x.x. IP tersebut tetap disebut Public IP oleh CloudStack karena posisinya berada di luar guest network.

    Public IP digunakan untuk Source NAT, Static NAT, port forwarding, load balancing, dan VPN.

    Pada isolated network, VM tetap menggunakan private IP. Public IP dipasang pada sisi luar Virtual Router, lalu diterjemahkan menuju private IP VM.

    Alur nya:

    VM
    IP: 10.1.1.100/24
    Default gateway: 10.1.1.1
            ↓
    Virtual Router
    Guest interface: 10.1.1.1
            ↓
    Source NAT
    10.1.1.100 → 192.168.1.10
            ↓
    Public interface Virtual Router
    IP: 192.168.1.10/24
            ↓
    Public gateway
    192.168.1.1
            ↓
    Internet

    Jadi, pada isolated network, Public IP tidak langsung menjadi IP pada NIC VM.

    Storage Network

    Storage network menangani trafik Secondary Storage seperti download template dan ISO, penyalinan template ke Primary Storage, serta pemindahan snapshot. Jika tidak dibuat terpisah, trafik ini dapat melewati management network. Pada lingkungan dengan transfer data besar, pemisahan storage network lebih disarankan.

    Basic dan Advanced Networking

    CloudStack menyediakan dua model networking utama:

    Basic NetworkingAdvanced Networking
    Umumnya satu guest networkDapat memiliki banyak network
    Isolasi memakai Security GroupIsolasi menggunakan VLAN dan Layer 3
    Konfigurasi lebih sederhanaMendukung isolated network, NAT, VPN, dan VPC

    Untuk private cloud dengan beberapa Account dan network terpisah, Advanced Networking lebih relevan. Pilihan model ditentukan saat membuat zone dan tidak dapat diganti setelah zone selesai dikonfigurasi.

    Virtual Router

    Virtual Router adalah System VM yang menjadi komponen utama pada isolated network. CloudStack membuat dan mengelolanya secara otomatis ketika network mulai digunakan.

    Virtual Router dapat menyediakan gateway, DHCP, DNS, NAT, firewall, port forwarding, load balancing, dan VPN. Layanan yang tersedia bergantung pada Network Offering, sehingga dua isolated network dapat memiliki kemampuan berbeda.

    Pada mode NATTED, Virtual Router melakukan NAT antara guest network dan Public network. CloudStack juga mendukung mode ROUTED, tetapi cara akses ke jaringan luar berbeda karena tidak memakai layanan NAT seperti mode NATTED.

    Hubungan dengan VLAN dan Switch

    CloudStack dapat membuat interface virtual dan mengalokasikan VLAN, tetapi jaringan fisik tetap harus disiapkan sebelumnya.

    Guest VLAN dan Public VLAN harus diizinkan pada bridge host, switch port, trunk antar-switch, serta router yang menjadi gateway.

    Jika VLAN sudah dimasukkan ke CloudStack tetapi belum diizinkan pada switch, VM mungkin berhasil dibuat tetapi tidak memperoleh DHCP, tidak dapat mencapai gateway, atau tidak dapat mengakses jaringan luar.

    Kesimpulan

    Setelah dipisahkan berdasarkan fungsi, networking CloudStack menjadi sedikit lebih mudah dipahami:

    • Management network digunakan untuk mengelola infrastruktur.
    • Guest network digunakan oleh VM.
    • Public network menghubungkan Virtual Router dengan jaringan luar.
    • Storage network membawa trafik template, ISO, dan snapshot.

    Pada Advanced Networking, Virtual Router menghubungkan private guest network dengan Public network, sedangkan VLAN memisahkan network pada Layer 2. CloudStack tidak menggantikan networking dasar, tetapi mengotomatisasi penggunaan subnet, gateway, VLAN, routing, NAT, dan firewall untuk VM serta Account.

    Referensi

  • Membuat Linux Bond dan Linux Bridge di Proxmox VE

    Membuat Linux Bond dan Linux Bridge di Proxmox VE

    Salah satu keuntungan menggunakan Proxmox VE sebagai hypervisor adalah fleksibilitas konfigurasi jaringannya. Kita bisa membuat bonding antar NIC fisik untuk mendapatkan redundansi atau agregasi bandwidth, lalu menempatkan bridge virtual di atasnya agar bisa dipakai oleh VM. Di tulisan ini saya akan dokumentasikan prosesnya step by step, mulai dari kondisi awal sampai bridge baru siap digunakan oleh VM.


    Kondisi Awal Jaringan

    Node Proxmox saya (rafi1) sudah punya beberapa antarmuka jaringan yang aktif. Tiga NIC fisik pertama sudah terpasang masing-masing ke bridge Linux tersendiri:

    • ens18 → vmbr0
    • ens19 → vmbr1
    • ens20 → vmbr2

    Kemudian saya menambahkan 2 NIC, kedua NIC ini akan saya gabungkan menggunakan Linux Bond, lalu di atasnya saya buatkan sebuah bridge baru.

    Add -> Network Device

    Klik Add (biarkan default)

    ens 21 dan ens 22 siap di bond


    Mengapa Menggunakan Linux Bond?

    Linux Bonding memungkinkan kita menggabungkan dua atau lebih NIC fisik menjadi satu antarmuka logis. Ada beberapa mode yang tersedia, dan masing-masing punya karakteristik berbeda. Mode balance-rr (round-robin) bekerja dengan mendistribusikan paket secara bergantian ke semua slave interface. Hasilnya adalah peningkatan throughput sekaligus toleransi terhadap kegagalan salah satu link.


    Langkah 1: Membuat Linux Bond

    Dari panel navigasi Proxmox, buka System → Network pada node yang dituju. Klik tombol Create lalu pilih Linux Bond.

    Isi konfigurasi bonding dengan parameter berikut:

    • Name: bond0
    • Slaves: ens21 ens22 (pisahkan dengan spasi)
    • Mode: balance-rr
    • Autostart: aktifkan

    Tidak perlu mengisi IP/CIDR di sini karena bond ini akan berfungsi sebagai port untuk bridge, bukan sebagai antarmuka yang berdiri sendiri dengan alamat IP. Klik Create.

    Catatan: Jangan assign IP langsung ke bond interface jika bond tersebut akan digunakan sebagai bridge port. IP sebaiknya dilekatkan ke bridge-nya saja, bukan ke slave-nya. Ini menghindari konflik routing dan perilaku yang tidak terduga.


    Langkah 2: Apply Configuration

    Setelah bond dibuat, Proxmox akan menampilkan notifikasi Pending changes di bagian bawah halaman Network. Ini adalah diff dari file /etc/network/interfaces yang akan diterapkan. Proxmox menggunakan pendekatan ini agar kita bisa review perubahan sebelum diterapkan, sehingga risiko kehilangan koneksi ke node bisa diminimalkan.

    Klik tombol Apply Configuration untuk menerapkan perubahan tanpa harus reboot. Proxmox akan memanggil ifupdown2 di balik layar untuk mengaktifkan konfigurasi baru secara live.

    Setelah berhasil, bond0 akan muncul di daftar dengan tipe Linux Bond, status Active: No (karena belum ada traffic atau bridge yang menggunakannya), dan kolom Ports/Slaves menampilkan ens21 ens22.


    Langkah 3: Membuat Linux Bridge di Atas Bond

    Sekarang saatnya membuat bridge yang akan digunakan oleh VM. Klik Create → Linux Bridge, lalu isi dengan konfigurasi berikut:

    • Name: vmbr3
    • IPv4/CIDR: 192.168.14.31/24 (local)
    • Bridge ports: bond0
    • Autostart: aktifkan
    • VLAN aware: aktifkan

    Beberapa poin penting dari konfigurasi ini:

    • Gateway tidak diisi. Karena ini bukan interface manajemen utama, gateway tidak diperlukan di sini. Jika diisi sembarangan, bisa menyebabkan konflik default route dengan interface manajemen yang sudah ada.
    • VLAN aware diaktifkan. Ini adalah best practice di Proxmox. Dengan VLAN aware bridge, kita bisa mengatur VLAN tag langsung dari konfigurasi VM tanpa perlu membuat bridge terpisah untuk setiap VLAN. Range default VLAN ID yang diizinkan adalah 2-4094.
    • Bridge port diisi dengan bond0, bukan NIC fisik langsung. Ini yang membedakan dengan setup sebelumnya. Alih-alih menghubungkan bridge langsung ke NIC, kita melapisinya dengan bond terlebih dahulu sehingga bridge mendapat manfaat dari bonding.

    Ringkasan Arsitektur

    Setelah semua langkah selesai, arsitektur jaringan pada node rafi1 menjadi seperti ini:

    
    ens21 ─┐
           ├─► bond0 (balance-rr) ─► vmbr3 (IP, VLAN aware)
    ens22 ─┘
    

    VM yang terhubung ke vmbr3 akan menggunakan kedua NIC fisik secara bergantian, sehingga mendapatkan bandwidth yang lebih besar dan tetap terhubung selama salah satu link masih hidup.


    Hal yang Perlu Diperhatikan

    Balance-rr mendistribusikan paket secara round-robin di level paket, bukan per-flow. Ini bisa menyebabkan paket tiba di tujuan dengan urutan yang tidak sesuai, yang pada beberapa skenario bisa menurunkan performa TCP. Jika switch mendukung LACP, pertimbangkan untuk beralih ke mode 802.3ad dengan hash policy layer2+3 atau layer3+4 agar distribusi traffic lebih stabil dan tidak mengganggu urutan paket.

    Selain itu, pastikan kedua NIC slave (ens21 dan ens22) terhubung ke switch yang sama atau trunk yang sama agar bonding bekerja dengan benar. Bonding lintas switch (multi-chassis) membutuhkan konfigurasi tambahan di level switch yang lebih kompleks.


    Penutup

    Untuk selanjutnya, mungkin saya akan menulis bagaimana setup network bridge tersebut agar support VLAN dengan setup VLAN 20. Kemudian untuk setup Proxmox SDN (menggunakan vxlan). Terakhir, coba aplikasikan network pada lxc dan kvm yang ada. Terima kasih sudah membaca.