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.

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.
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 kunci antara kedua mode:
Karena itu, BGP mode adalah pilihan utama untuk jaringan dengan router nyata dan kebutuhan skala throughput yang besar.
BGPPeer mendefinisikan router yang menjadi partner peering. Berikut contoh peer ke router FRR di jaringan kalian:
apiVersion: metallb.io/v1beta1
kind: BGPPeer
metadata:
name: frr-router
namespace: metallb-system
spec:
myASN: 64500
peerASN: 64512
peerAddress: 192.168.1.254
holdTime: 90smyASN 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.
Setelah peer dibuat, pastikan sesi BGP establish:
kubectl get bgppeer
kubectl describe bgppeer frr-routerkubectl 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.
Tanpa BGPAdvertisement, IP yang dialokasikan tidak akan diiklankan meskipun sesi peering sudah establish. Resource ini yang menghubungkan pool dengan sesi BGP:
apiVersion: metallb.io/v1beta1
kind: BGPAdvertisement
metadata:
name: bgp-basic
namespace: metallb-system
spec:
ipAddressPools:
- first-pool
peers:
- frr-routerDengan 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.
Untuk memastikan advertisement diterima, periksa dari sisi router. Pada router dengan CLI Cisco, Juniper, atau Mikrotik, cek route yang diterima dari MetalLB:
show ip bgp
show ip route bgpPerintah 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.
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.
kubectl get pods -n metallb-system -o wide
traceroute -n 192.168.1.200Jika 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.
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.
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.
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:
BGPPeer untuk peering dan BGPAdvertisement untuk iklan route.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.