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 pool
  • 192.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