Setup Site-to-Site VPN dengan IPsec/L2TP + Omada Router
Pernah punya dua kantor atau dua lokasi yang butuh bisa saling akses resource internal? Artikel ini bakal ngebahas gimana gw setup site-to-site VPN menggunakan VPS sebagai VPN server dengan stack IPsec/L2TP, dan Omada Router (TP-Link) di sisi client.
Topologi
Main Site (192.168.0.0/24) Site B (192.168.2.0/24)
| |
Omada Router Omada Router
| |
└────────── VPS VPN Server ──────────┘
(192.168.42.0/24)
100.xx.xx.xx(Public IP)
Kedua site konek ke VPS sebagai hub, lalu VPS forward traffic antar-site.
1. Install VPN Server di VPS
Pakai script otomatis dari project open source hwdsl2/setup-ipsec-vpn:
wget https://get.vpnsetup.net -O vpn.sh && sudo sh vpn.sh
Script ini otomatis install dan konfigurasi:
- Libreswan (IPsec)
- xl2tpd (L2TP)
- Generate PSK, username, dan password secara random
Setelah install, catat output-nya:
Server IP: 100.xx.xx.xx(Public IP)
IPsec PSK: <your-psk>
Username: vpnuser
Password: <your-password>
Tambah User Per Site
Edit file credentials:
nano /etc/ppp/chap-secrets
Tambah user untuk masing-masing site:
"Main_site" l2tpd "password" 192.168.42.100
"Site_[X]" l2tpd "password" 192.168.42.102
Format kolom terakhir adalah IP static yang akan selalu didapat site tersebut saat konek — penting buat routing yang stabil.
systemctl restart xl2tpd
2. Konfigurasi Omada Router — Main Site
Masuk ke Omada Controller → Settings → VPN → Create New VPN Policy
| Field | Value |
|---|---|
| Name | Main_site |
| Purpose | Client-to-Site VPN |
| VPN Type | VPN Client - L2TP |
| Working Mode | Routing |
| Username | Main_site |
| Password | password |
| IPsec Encryption | Encrypted |
| Remote Server | 100.xx.xx.xx(Public IP) |
| Remote Subnets | 192.168.42.0/24, 192.168.2.0/24 |
| Pre-Shared Key | <isi PSK dari VPS> |
| WAN | Pilih WAN yang aktif |
Remote Subnets diisi dua:
192.168.42.0/24— VPN pool192.168.2.0/24— LAN Site B (supaya bisa routing ke sana)
3. Konfigurasi Omada Router — Site B
Sama seperti Main Site, ganti:
| Field | Value |
|---|---|
| Name | Site_B |
| Username | Site_B |
| Remote Subnets | 192.168.42.0/24, 192.168.0.0/24 |
Remote Subnets Site B harus include LAN Main Site (192.168.0.0/24).
Penting: Pastikan subnet LAN antar site berbeda. Kalau sama (misal keduanya 192.168.0.0/24) akan konflik routing dan VPN tidak bisa forward traffic dengan benar.4. Tambah Route di VPS
VPS perlu tahu bahwa subnet LAN masing-masing site bisa dijangkau lewat interface ppp yang sesuai.
Cek interface setelah kedua site konek:
ip route | grep 192.168
Output contoh:
192.168.42.100 dev ppp0 proto kernel scope link src 192.168.42.1
192.168.42.102 dev ppp1 proto kernel scope link src 192.168.42.1
Tambah route ke LAN masing-masing site:
ip route add 192.168.0.0/24 dev ppp0 # Main Site LAN via ppp0
ip route add 192.168.2.0/24 dev ppp1 # Site B LAN via ppp1
Aktifkan IP forwarding agar VPS bisa forward traffic antar-site:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
Note: Route ini hilang setelah reboot. Untuk permanen, bisa tambahkan ke /etc/rc.local atau buat systemd service tersendiri.5. Verifikasi Koneksi
Cek log IPsec di VPS
journalctl -u ipsec.service | tail -20
Kalau berhasil akan muncul:
IPsec SA established transport mode {ESPinUDP=... DPD=active}
Ping antar site
SSH ke Omada (CLI):
ssh -oHostKeyAlgorithms=+ssh-rsa [email protected]
Ping dari Main Site ke gateway Site B:
#ping 192.168.2.1
Ping dari Main Site ke VPN server:
#ping 192.168.42.1
Troubleshooting
Stuck di STATE_MAIN_R2
IPsec handshake gagal di tahap awal. Penyebab umum:
- PSK salah → cek ulang
cat /etc/ipsec.secrets - Port UDP 500/4500 diblok di sisi ISP atau firewall
IPsec konek tapi ping antar-site gagal
- Route di VPS belum ditambahkan
- IP forwarding belum aktif
- Remote Subnets di Omada belum include LAN site lain
Kesimpulan
Dengan setup ini, kedua site bisa saling komunikasi layaknya satu jaringan lokal — tanpa perlu dedicated leased line atau hardware VPN mahal. VPS Ubuntu biasa + script open source + Omada Router sudah cukup untuk kebutuhan site-to-site VPN skala kecil-menengah.
Stack yang digunakan:
- Libreswan + xl2tpd untuk VPN server
- IPsec/L2TP sebagai protokol tunnel
- Omada ER Series sebagai VPN client di sisi router
Tags: networking, vpn, omada, ipsec, l2tp, self-hosted, linux