Belajar MetalLB - BGP Mode
Episode 6 of 23

Belajar MetalLB - BGP Mode

BGP mode membuat speaker melakukan peering dengan router eksternal dan meng-advertise prefix IP Service. Episode ini membahas BGPPeer dan BGPAdvertisement, ECMP yang menyebar traffic ke banyak node, serta karakteristik dan syarat router BGP yang diperlukan.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Di episode 5 kalian merasakan keterbatasan utama Layer 2 mode: semua traffic Service harus melewati satu node leader. BGP mode adalah jawaban untuk masalah ini. Alih-alih meng-announce IP lewat ARP, speaker melakukan peering BGP dengan router eksternal dan meng-advertise prefix IP Service sebagai route jaringan.

Dengan BGP, setiap node mengiklankan route yang sama ke router. Router lalu bisa memakai ECMP (Equal-Cost Multi-Path) untuk menyebar traffic ke banyak node sekaligus — mengatasi batas throughput single-node, sekaligus lebih tahan terhadap kegagalan node. Episode ini membahas cara kerjanya secara menyeluruh.

Apa Itu BGP Mode

Ide Dasar

Dalam BGP mode, speaker di setiap node membangun sesi peering BGP dengan satu atau lebih router. Setiap IP yang dialokasikan controller di-advertise sebagai route, biasanya dalam bentuk prefix yang di-agregasi. Router yang menerima route akan memasukkan prefix tersebut ke tabel routing dan meneruskan traffic ke node yang mengiklankannya.

Perbedaan dengan Layer 2

Perbedaan kunci antara kedua mode:

  • Layer 2 meng-announce IP per node leader; BGP meng-advertise prefix dari semua node.
  • Layer 2 tidak butuh router khusus; BGP butuh router yang mendukung peering.
  • Layer 2 menitikberatkan traffic ke satu node; BGP menyebar traffic via ECMP.

Karena itu, BGP mode adalah pilihan utama untuk jaringan dengan router nyata dan kebutuhan skala throughput yang besar.

BGPPeer: Mendefinisikan Hubungan Peering

Konfigurasi Dasar Peer

BGPPeer mendefinisikan router yang menjadi partner peering. Berikut contoh peer ke router FRR di jaringan kalian:

BGPPeer ke router FRR
apiVersion: metallb.io/v1beta1
kind: BGPPeer
metadata:
  name: frr-router
  namespace: metallb-system
spec:
  myASN: 64500
  peerASN: 64512
  peerAddress: 192.168.1.254
  holdTime: 90s

myASN adalah ASN yang dipakai MetalLB, peerASN adalah ASN router, dan peerAddress adalah alamat IP router yang harus dijangkau dari semua node. holdTime: 90s mengatur seberapa lama sesi dianggap hidup tanpa pesan keepalive.

Verifikasi Sesi Peering

Setelah peer dibuat, pastikan sesi BGP establish:

Memeriksa status peering
kubectl get bgppeer
kubectl describe bgppeer frr-router

kubectl get bgppeer menampilkan daftar peer. Status detail seperti Established bisa dilihat di events kubectl describe bgppeer frr-router atau lewat log speaker — bagian yang akan kita bedah lebih dalam di episode 13 dan 19.

BGPAdvertisement: Mengiklankan IP ke Router

Resource yang Mengaktifkan Advertisement

Tanpa BGPAdvertisement, IP yang dialokasikan tidak akan diiklankan meskipun sesi peering sudah establish. Resource ini yang menghubungkan pool dengan sesi BGP:

BGPAdvertisement dasar
apiVersion: metallb.io/v1beta1
kind: BGPAdvertisement
metadata:
  name: bgp-basic
  namespace: metallb-system
spec:
  ipAddressPools:
    - first-pool
  peers:
    - frr-router

Dengan konfigurasi ini, semua IP dari first-pool akan di-advertise ke peer frr-router. Bagian peers bersifat opsional — jika dikosongkan, advertisement berlaku untuk semua peer yang terdefinisi.

Memeriksa Route di Router

Untuk memastikan advertisement diterima, periksa dari sisi router. Pada router dengan CLI Cisco, Juniper, atau Mikrotik, cek route yang diterima dari MetalLB:

Melihat route BGP dari MetalLB di router
show ip bgp
show ip route bgp

Perintah show ip bgp di router menampilkan prefix yang di-advertise MetalLB, dan show ip route bgp menunjukkan route yang aktif di tabel routing. Jika prefix terlihat, advertisement berhasil.

ECMP: Kekuatan Utama BGP Mode

Traffic Tersebar ke Banyak Node

Karena semua node meng-advertise prefix yang sama, router melihat banyak jalur dengan biaya (cost) yang sama menuju prefix tersebut. Ini memicu ECMP: router menyebar paket ke node-node tersebut secara round-robin atau hash.

Melihat jalur ECMP ke IP Service
kubectl get pods -n metallb-system -o wide
traceroute -n 192.168.1.200

Jika jaringan kalian menerapkan ECMP, traceroute -n 192.168.1.200 dari beberapa host berbeda bisa menunjukkan next-hop yang berbeda — bukti bahwa traffic tersebar. Perhatikan bahwa sifat penyebaran tergantung algoritma hash router; traffic per-flow umumnya tetap ke satu node.

Toleransi terhadap Node Mati

Ketika satu node mati, sesi BGP dari node tersebut terputus, dan router membuang jalur yang mati dari tabel. Traffic kemudian dialihkan ke node lain yang masih mengiklankan prefix — tanpa perlu failover ARP seperti Layer 2. Inilah keunggulan BGP untuk high availability, yang akan kita dalami di episode 15.

Karakteristik dan Syarat

Keunggulan

  • Throughput total tidak terbatas satu node karena ECMP menyebar beban.
  • Failover node lebih cepat dan lebih bersih secara jaringan.
  • Bisa diintegrasikan dengan routing perusahaan, firewall, dan topologi besar.

Syarat dan Batasan

  • Membutuhkan router yang mendukung BGP (Cisco, Juniper, Mikrotik, atau FRR open-source).
  • Konfigurasi jaringan lebih kompleks — ASN, peering, dan firewall harus disiapkan.
  • Tanpa ECMP yang benar, satu node tetap bisa menjadi titik bottleneck.

Pilihan Router Open Source

Jika tim kalian tidak punya router fisik, FRR (Free Range Routing) bisa dijalankan sebagai container Linux untuk simulasi. Ini pilihan yang kami pakai pada banyak lab di episode berikutnya, terutama saat membahas multi-peer dan route reflector di episode 16.

Penutup

Episode 6 menuntaskan BGP mode: speaker melakukan peering dengan router melalui BGPPeer, prefix diiklankan lewat BGPAdvertisement, dan ECMP memungkinkan traffic menyebar ke banyak node sekaligus — mengatasi batas single-node Layer 2.

Inti yang harus dibawa pulang:

  • BGP mode membutuhkan BGPPeer untuk peering dan BGPAdvertisement untuk iklan route.
  • Semua node mengiklankan prefix yang sama; router memakai ECMP untuk menyebar traffic.
  • Failover node lebih bersih karena router membuang jalur yang mati.
  • Mode ini butuh router BGP — Cisco, Juniper, Mikrotik, atau FRR open-source.
  • Sesi peering yang establish adalah prasyarat mutlak agar advertisement berjalan.

Di episode 7 selanjutnya kalian akan membuat Service LoadBalancer pertama — men-deploy aplikasi, meng-expose lewat type: LoadBalancer, memverifikasi IP eksternal yang di-assign, menguji akses dari luar cluster, dan menangani tiga masalah troubleshooting paling umum di awal penggunaan MetalLB.

Belajar MetalLB - BGP Mode | Belajar MetalLB