Episode ini membahas VPN site-to-site: menghubungkan dua jaringan LAN kantor lewat tunnel WireGuard. Kalian mempelajari topologi full mesh dan hub-and-spoke, konfigurasi dua server WireGuard, routing antar subnet, dan aturan firewall yang dibutuhkan.

Sejauh ini tunnel kalian hanya menghubungkan dua perangkat. Sekarang kita naik level: menghubungkan dua jaringan — subnet LAN kantor di dua lokasi — sehingga perangkat di lokasi A bisa bicara dengan perangkat di lokasi B seperti berada di jaringan yang sama.
Episode 9 membahas VPN site-to-site: memilih topologi, mengonfigurasi dua server WireGuard di masing-masing situs, menyusun routing antar subnet, dan memasang aturan firewall yang membuka jalan antar LAN. Akhir episode, kalian akan punya dua kantor yang saling terhubung mulus.
Untuk dua situs, full mesh adalah pilihan paling langsung: setiap situs punya peer ke situs lain, dan semua trafik antar situs mengalir langsung tanpa perantara. Dengan dua situs, konfigurasi hanya membutuhkan satu [Peer] di masing-masing sisi.
Jika nanti ada tiga situs atau lebih, pertimbangkan hub-and-spoke: satu situs menjadi hub pusat, dan semua situs lain terhubung hanya ke hub. Trafik antar spoke diteruskan hub. Topologi ini menyederhanakan konfigurasi per situs (hanya satu peer), tetapi menambah latensi karena setiap paket melewati hub. Detailnya kita bahas di episode 11.
Misalkan kantor A memakai LAN 10.1.0.0/24 dan kantor B memakai 10.2.0.0/24. Kita alokasikan dua alamat tunnel: 10.9.0.1 untuk gateway WireGuard kantor A dan 10.9.0.2 untuk kantor B.
[Interface]
Address = 10.9.0.1/30
ListenPort = 51820
PrivateKey = <kunci privat A>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
[Peer]
PublicKey = <kunci publik B>
AllowedIPs = 10.2.0.0/24, 10.9.0.2/32
Endpoint = 203.0.113.2:51820AllowedIPs = 10.2.0.0/24, 10.9.0.2/32 berarti trafik menuju LAN B dan alamat tunnel B masuk lewat peer ini. Perhatikan PostUp membuka FORWARD untuk interface wg0, karena fungsi gateway tidak hanya menerima paket untuk dirinya sendiri.
[Interface]
Address = 10.9.0.2/30
ListenPort = 51820
PrivateKey = <kunci privat B>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
[Peer]
PublicKey = <kunci publik A>
AllowedIPs = 10.1.0.0/24, 10.9.0.1/32
Endpoint = 203.0.113.1:51820Perhatikan bahwa AllowedIPs di setiap sisi mendeklarasikan subnet jaringan situs lawan, bukan hanya alamat tunnel. Inilah yang membuat perangkat di balik gateway ikut ter-route lewat tunnel.
Gateway WireGuard harus meneruskan paket antar interface. Aktifkan forwarding kernel dan jangan lupa mempersistenkannya:
sudo sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wg-forward.confSelain FORWARD dari wg0, pastikan firewall menerima paket masuk dari interface LAN dan meneruskannya ke tunnel. Gunakan nftables untuk kebijakan yang jelas:
table inet wg {
chain forward {
type filter hook forward priority 0; policy drop;
iifname "wg0" accept
oifname "wg0" accept
}
}Kebijakan iifname "wg0" accept dan oifname "wg0" accept di atas menerima paket yang masuk dan keluar lewat wg0, sementara trafik lain tetap di-drop. Simpan kebijakan dengan nft -f file.conf dan muat saat boot.
Setelah kedua gateway naik, uji dari kantor A:
ping -c 3 10.9.0.2
ping -c 3 10.2.0.10
sudo wg show wg0Ping pertama menguji tunnel, ping kedua menguji forwarding ke perangkat nyata di LAN B. Jika ping ke 10.9.0.2 berhasil tapi ke 10.2.0.10 tidak, periksa aturan FORWARD di gateway B.
Episode 9 menyelesaikan VPN site-to-site: memilih topologi, mengonfigurasi dua gateway WireGuard dengan AllowedIPs berisi subnet LAN lawan, mengaktifkan forwarding, dan memasang aturan firewall yang meneruskan trafik antar situs.
Inti yang harus dibawa pulang:
AllowedIPs di site-to-site berisi subnet LAN lawan, bukan hanya alamat tunnel.net.ipv4.ip_forward=1.wg0.wg0 secara eksplisit.Di episode 10 selanjutnya kita membahas client-to-site remote access — menghubungkan laptop dan perangkat seluler ke jaringan kantor, membedakan split tunnel dan full tunnel, mengelola kunci per client, serta memperkenalkan alat manajemen seperti wg-dashboard dan Firezone.