Episode ini mengamankan jalur host: port yang harus dibuka untuk VXLAN, WireGuard, dan IPsec di firewall host maupun cloud security group, serta cara memilih interface host yang tepat lewat --iface dan menghindari konflik IP di jaringan yang padat.

Semua traffic Flannel pada akhirnya melewati jaringan host, dan jaringan host punya firewall. Jika port tunnel tertutup, jaringan terlihat sehat di dokumentasi tetapi koneksi antar node selalu gagal. Ini salah satu masalah paling membingungkan bagi pengguna baru Flannel.
Episode 15 mengamankan jalur host secara menyeluruh: port yang harus dibuka untuk setiap backend, cara memilih interface host yang tepat lewat --iface, dan cara menghindari konflik IP di jaringan yang padat.
Backend default membutuhkan UDP port 4789 terbuka antar node. Di host dengan firewall, buka port ini:
sudo ufw allow 4789/udp
sudo ufw reloadPerintah sudo ufw allow 4789/udp membuka port encapsulation VXLAN. Tanpa ini, paket Pod antar node tidak akan sampai meskipun route dan lease sehat.
WireGuard mendengarkan di UDP 51820, sedangkan IPsec memakai port 500 untuk IKE dan 4500 untuk NAT traversal. Buka semuanya sesuai backend yang dipakai:
sudo ufw allow 51820/udp
sudo ufw allow 500/udp
sudo ufw allow 4500/udpBackend ipip memakai protokol IP nomor 4, yang tidak dibuka lewat port melainkan lewat izin protokol. Pastikan firewall kalian mengizinkan protokol tersebut jika memakai ipip.
Cloud provider memblokir traffic antar node di lapisan security group atau firewall VPC, bukan di iptables host. Aturan yang harus ditambahkan mengikuti backend yang dipakai:
Source: 10.0.0.0/16
Protocol: UDP
Port: 4789
Description: Flannel VXLAN antar nodeSetiap provider punya sintaks sendiri, tetapi polanya sama: izinkan traffic antar node untuk port backend Flannel. Tambahkan aturan untuk subnet node, bukan untuk semua IP publik.
Setelah membuka port, uji langsung antar node:
nc -uvz <ip-node-lain> 4789Output dari nc -uvz <ip-node-lain> 4789 mengonfirmasi port UDP reachable antar node. Jika hasilnya timeout, periksa security group dan firewall host secara berurutan.
Node modern punya banyak interface: eth0 untuk jaringan utama, eth1 untuk storage, docker0 untuk container. flanneld menebak interface dari route default, dan tebakan ini bisa salah. Akibatnya tunnel dibuat di interface yang salah dan traffic antar node gagal.
Paksa pilihan interface secara eksplisit:
net-conf.json: |
{
"Network": "10.244.0.0/16",
"Backend": {
"Type": "vxlan"
},
"Iface": "eth0"
}Perintah flanneld --iface eth0 juga bisa dipakai sebagai flag. Pilih interface yang benar-benar menuju jaringan host lain, biasanya yang dipakai kubelet untuk komunikasi control plane.
Cek IP yang dipakai interface flannel.1:
ip -d link show flannel.1
ip -4 addr show eth0Bandingkan nilai local pada ip -d link show flannel.1 dengan IP eth0. Jika keduanya cocok, flanneld memakai interface yang benar.
Konflik IP terjadi ketika network Flannel bentrok dengan jaringan yang sudah ada, misalnya VPC 10.244.0.0/16 sedang dipakai layanan lain. Gejalanya kacau: route menuju Pod juga menangkap traffic layanan lain. Sebelum install, pastikan network Flannel tidak bentrok dengan CIDR VPC atau jaringan on-premise.
ip -4 addr show
ip route showPerintah ip route show menampilkan jaringan yang sedang dipakai node. Bandingkan dengan Network di net-conf.json untuk memastikan tidak ada tumpang tindih.
Konflik IP juga terjadi jika dua cluster memakai network Flannel yang sama dan digabungkan. Setiap cluster harus memakai CIDR yang unik. Saat merencanakan multi-cluster, alokasikan CIDR berbeda untuk masing-masing, misalnya cluster A 10.244.0.0/16 dan cluster B 10.245.0.0/16.
Selain memeriksa port, pastikan host networking sehat secara keseluruhan. Cek bahwa semua interface yang dibutuhkan up, route antar node tersedia, dan tidak ada kebocoran route dari jaringan lain yang menutupi route Flannel.
ip -br addr show
ip route show | grep -E "10.244|default"Output dari ip -br addr show menampilkan ringkasan interface, dan perintah route menunjukkan jaringan Pod beserta route default. Keduanya memberi gambaran utuh kondisi host.
Simpan daftar port dan security group di dokumentasi atau repository infrastruktur. Saat node baru ditambahkan atau cloud environment diganti, daftar ini jadi panduan yang mencegah masalah firewall terulang.
Episode 15 mengamankan jalur host Flannel: membuka port VXLAN, WireGuard, dan IPsec di firewall dan security group, memilih interface host yang tepat, serta menghindari konflik CIDR.
Inti yang harus dibawa pulang:
Di episode 16 selanjutnya kita akan menyetel performa: optimasi performa dan MTU — menghitung MTU yang benar dengan overhead VXLAN 50 bytes, menghindari fragmentasi, serta mengaktifkan direct routing untuk traffic intra-subnet yang lebih cepat.