Episode ini membangun ketersediaan tinggi untuk L2TP/IPsec: pola HA dengan banyak LNS, failover floating IP lewat VRRP, deteksi peer mati dengan DPD dan failureshunt, serta load balancing dengan DNS round-robin, ECMP, dan xl2tpd multi-instance.

VPN adalah jalur hidup tim yang bekerja jarak jauh — ketika server VPN mati, produktivitas ikut mati. Episode 19 membahas high availability dan redundancy: bagaimana memastikan layanan L2TP/IPsec tetap berjalan meskipun satu server atau satu koneksi gagal.
Kita akan membedah tiga level ketersediaan: failover antar server dengan floating IP, deteksi kegagalan peer dengan DPD, dan load balancing untuk membagi beban banyak pengguna. Ketiganya saling melengkapi untuk membangun deployment yang tangguh.
Pola paling umum adalah sepasang server LNS — satu aktif, satu standby — yang berbagi floating IP virtual. keepalived dengan VRRP memindahkan floating IP ke server cadangan saat server utama mati. Karena client menghubungi floating IP, kegagalan server utama tidak terasa oleh pengguna.
Konfigurasi keepalived di server utama:
vrrp_instance VPN_HA {
state MASTER
interface eth0
virtual_router_id 51
priority 100
virtual_ipaddress {
203.0.113.10/32 dev eth0
}
}Server standby memakai konfigurasi yang sama dengan state BACKUP dan priority 90. Saat MASTER mati, BACKUP mengambil alih 203.0.113.10.
DPD (Dead Peer Detection) memastikan peer yang mati terdeteksi cepat, sementara failureshunt memasang aturan pengalihan saat tunnel gagal — misalnya menolak traffic (drop) agar tidak bocor, atau mengalihkan ke jalur lain (pass):
conn vpn-ha
dpddelay=5
dpdtimeout=30
dpdaction=clear
failureshunt=dropNilai failureshunt=drop menjatuhkan traffic VPN yang tidak memiliki tunnel — mencegah data bocor melewati jalur publik saat HA gagal.
Untuk membagi beban, daftarkan beberapa alamat server pada satu nama DNS. Client akan terhubung ke alamat yang bergantian. Pendekatan ini sederhana tapi tidak memperhitungkan kapasitas tiap server — server yang sudah penuh tetap menerima koneksi baru.
Alternatif yang lebih cerdas adalah ECMP (Equal-Cost Multi-Path) di router: beberapa route dengan biaya sama menuju beberapa gateway LNS, dan router membagi paket. ECMP membutuhkan router yang mendukungnya dan stateful treatment untuk koneksi VPN.
Ketika satu proses xl2tpd menjadi hambatan, jalankan beberapa instance pada server berbeda dengan konfigurasi terpisah. Setiap instance mendengarkan floating IP sendiri:
sudo xl2tpd -D -c /etc/xl2tpd/xl2tpd-1.conf -p /var/run/xl2tpd-1.pid
sudo xl2tpd -D -c /etc/xl2tpd/xl2tpd-2.conf -p /var/run/xl2tpd-2.pidSetiap file konfigurasi memakai local ip dan ip range yang berbeda agar tidak terjadi konflik alamat.
Untuk ketersediaan penuh, gabungkan semua lapisan: dua server dengan floating IP lewat VRRP, DPD untuk deteksi cepat, failover otomatis yang membawa service ikut naik di server standby, dan load balancer di depan jika perlu.
Checklist perancangan:
ipsec dan xl2tpd harus ikut pindah ke server standby.dpddelay dan dpdtimeout dengan kondisi jaringan.Uji skema HA secara berkala dengan mematikan server utama secara paksa dan mengukur waktu recovery. Latihan ini mengungkap titik lemah yang tidak terlihat saat semua berjalan normal.
Skema HA hanya berguna jika kegagalannya benar-benar terdeteksi. Tambahkan pemantauan khusus HA:
ip addr show | grep 203.0.113.10
sudo ipsec statusall | grep -c "up "
sudo systemctl status keepalivedPeriksa tiga hal: floating IP masih menempel, jumlah SA aktif, dan keepalived hidup. Kombinasikan dengan alerting di episode 21 agar kegagalan failover langsung diketahui tim.
Warning
Dua server LNS tidak boleh membagikan ip range yang sama, karena dua client bisa menerima alamat yang sama. Pisahkan kolam alamat antar server, atau gabungkan dengan server alokasi terpusat seperti RADIUS.
Episode 19 membangun ketersediaan tinggi: pola VRRP dengan floating IP untuk failover antar LNS, DPD dan failureshunt untuk menangani kegagalan peer, serta DNS round-robin, ECMP, dan xl2tpd multi-instance untuk membagi beban.
Inti yang harus dibawa pulang:
failureshunt mengatur arah traffic saat gagal.ip range antar server.Di episode 20 selanjutnya kita akan membahas automation dan Infrastructure as Code — role Ansible untuk Libreswan, strongSwan, dan xl2tpd, pembuatan konfigurasi otomatis, serta integrasi dengan RADIUS, LDAP, dan ACME.