Introduction
VPN Hub-and-spoke adalah topologi VPN di mana jaringan kantor-kantor cabang (spokes) terhubung ke kantor pusat (hub). Sehingga LAN dari semua jaringan cabang dapat saling terhubung melalui jaringan pusat.
Artikel ini ditulis dengan asumsi Router Hub dan Spoke sama-sama menggunakan Static IP Public.
Selanjutnya router pusat akan disebut “Hub” dan router cabang akan disebut “Spoke”.
GNS3 Lab
Tujuan utama dari lab ini adalah menghubungkan ketiga LAN dari router-router di atas menggunakan IKEv2/IPSec VPN. Router yang digunakan adalah Netgate TNSR sebagai Hub, lalu Cisco IOSv dan Mikrotik CHR sebagai Spoke. Sehingga LAN Cisco ke LAN Mikrotik akan melewati Netgate TNSR.
Perlu diketahui bahwa VPN pada TNSR dan Cisco sama-sama menggunakan route-based, sedangkan Mikrotik menggunakan policy-based. Sehingga menghubungkan VPN Mikrotik dengan TNSR membutuhkan pendekatan yang berbeda.
Silakan ikuti artikel Netgate TNSR - Simulasi Router Menggunakan GNS3 untuk cara install TNSR pada GNS3.
Netgate TNSR
tunnel ipip 0 # Tunnel ke Cisco
source ipv4 address 104.18.27.120
destination ipv4 address 104.18.27.130
exit
tunnel ipip 1 # Tunnel ke Mikrotik
source ipv4 address 104.18.27.120
destination ipv4 address 104.18.27.140
exit
ipsec tunnel 0 # Parameter IPSec ke Cisco
enable
crypto config-type ike
crypto ike
version 2
lifetime 28800
proposal 1
encryption aes256
integrity sha256
group modp2048
exit
identity local
type address
value 104.18.27.120
exit
identity remote
type address
value 104.18.27.130
exit
authentication local
round 1
psk 123abc
exit
exit
authentication remote
round 1
psk 123abc
exit
exit
child 1
lifetime 3600
proposal 1
encryption aes256
integrity sha256
group modp2048
exit
exit
exit
exit
ipsec tunnel 1 # Parameter IPSec ke Mikrotik
enable
crypto config-type ike
crypto ike
version 2
lifetime 28800
proposal 1
encryption aes256
integrity sha256
group modp2048
exit
identity local
type address
value 104.18.27.120
exit
identity remote
type address
value 104.18.27.140
exit
authentication local
round 1
psk 123abc
exit
exit
authentication remote
round 1
psk 123abc
exit
exit
child 1
lifetime 3600
proposal 1
encryption aes256
integrity sha256
group modp2048
exit
exit
exit
exit
interface GE0 # WAN Interface
enable
ip address 104.18.27.120/24
exit
interface GE1 # LAN INterface
enable
ip address 192.168.0.1/24
exit
interface ipip0 # Tunnel Interface ke Cisco
enable
mtu 1400
ip address 10.10.0.1/30
exit
interface ipip1 # Tunnel Interface ke Mikrotik. Mikrotik tidak mengetahui interface atau IP ptp ini karena Mikrotik menggunakan policy-based.
enable # Bahkan lawan IP ini (10.10.1.2/30) tidak ada di Mikrotik. Interface dan IP di sini hanya digunakan secara internal oleh TNSR
mtu 1400 # untuk meneruskan trafik IPSec ke Mikrotik.
ip address 10.10.1.1/30
exit
route table ipv4-VRF:0 # Static Routing ke LAN Cisco dan LAN Mikrotik
id 0
route 172.16.0.0/24
next-hop 0 via 10.10.0.2
exit
route 192.168.255.0/24
next-hop 0 via 10.10.1.2
exit
exit
Jika terdapat banyak spoke yang harus terhubung ke Hub, maka sebaiknya menggunakan 1 Tunnel dan Interface saja yang di-set menjadi point-to-multipoint, dari pada membuat 1 Tunnel & Interface untuk masing-masing spoke. Caranya dengan menghilangkan destination ipv4 address a.b.c.d. Lalu menggunakan command tunnel next-hops ipipX untuk menambahkan IP spoke.
Cisco IOSv
crypto ikev2 proposal SPOKE1-PROP # Parameter IPSec
encryption aes-cbc-256
integrity sha256
group 14
crypto ikev2 policy SPOKE1-POL
proposal SPOKE1-PROP
crypto ikev2 keyring SPOKE1-KEYRING
peer HUB
address 104.18.27.120
pre-shared-key 123abc
!
crypto ikev2 profile SPOKE1-PROF
match identity remote address 104.18.27.120 255.255.255.255
identity local address 104.18.27.130
authentication remote pre-share
authentication local pre-share
keyring local SPOKE1-KEYRING
crypto ipsec transform-set SPOKE1-TS esp-aes 256 esp-sha256-hmac
mode tunnel
crypto ipsec profile SPOKE1-IPSEC
set transform-set SPOKE1-TS
set ikev2-profile SPOKE1-PROF
interface Tunnel0 # Tunnel Interface ke TNSR
ip address 10.10.0.2 255.255.255.252
tunnel source GigabitEthernet0/0
tunnel mode ipsec ipv4
tunnel destination 104.18.27.120
tunnel protection ipsec profile SPOKE1-IPSEC
interface GigabitEthernet0/0 # WAN Interface
ip address 104.18.27.130 255.255.255.0
no shutdown
interface GigabitEthernet0/1 # LAN Interface
ip address 172.16.0.1 255.255.255.0
no shutdown
ip route 192.168.0.0 255.255.255.0 Tunnel0
ip route 192.168.255.0 255.255.255.0 Tunnel0
Mikrotik CHR
Di sini yang pendekatannya berbeda. Mikrotik menggunakan policy-based sehingga trafik IPSec tidak mengalir melewati Tunnel Interface, akan tetapi dienkripsi apabila trafik tersebut memenuhi persyaratan ip/ipsec/policy.
/ip address
add address=104.18.27.140/24 interface=ether1 network=104.18.27.0 # WAN Interface
add address=192.168.255.1/24 interface=ether2 network=192.168.255.0 # LAN Interface
/ip ipsec profile # Parameter IPSec
add name=SPOKE2-PROF dh-group=modp2048 enc-algorithm=aes-256 hash-algorithm=sha256
/ip ipsec peer
add address=104.18.27.120/32 exchange-mode=ike2 name=HUB profile=SPOKE2-PROF
/ip ipsec proposal
add auth-algorithms=sha256 enc-algorithms=aes-256-cbc name=SPOKE2-PROP pfs-group=modp2048
/ip ipsec identity
add peer=HUB secret=123abc
/ip ipsec policy # Level=unique diperlukan jika policy lebih dari 1 untuk peer yang sama
add dst-address=192.168.0.0/24 level=unique peer=HUB proposal=SPOKE2-PROP \
src-address=192.168.255.0/24 tunnel=yes
add dst-address=172.16.0.0/24 level=unique peer=HUB proposal=SPOKE2-PROP \
src-address=192.168.255.0/24 tunnel=yes
/ip route
add dst-address=172.16.0.0/24 gateway=104.18.27.120
add dst-address=192.168.0.0/24 gateway=104.18.27.120
Quick Test
Tes ping dari LAN Cisco ke LAN Mikrotik

Troubleshooting
- Pastikan IP ptp reachable dari kedua sisi.
- Pada TNSR, gunakan command
show ipsec tunnel verboseuntuk menganalisa output IPSec.- Pada Cisco, command
show configurationdapat memberikan informasi jika ada yang kurang/mismatch pada konfigurasi IPSec. lalu commanddebug crypto ...juga sangat bermanfaat untuk mengetahui error yang terjadi pada IPSec atau IKEv2.- Pada Mikrotik, command
ip/ipsec/policy print detailakan memperlihatkan status Phase 2. Gunakan jugaip/ipsec/active-peers print detailuntuk melihat status peering.
Penutup
Artikel ini dapat dijadikan referensi apabila teman-teman ingin membuat topologi VPN Hub-and-spoke dengan syarat semua Router menggunakan IP Static. Sekarang bagaimana jika hanya Router Hub saja yang menggunakan IP Static, sedangkan Router Spoke menggunakan IP Dynamic atau bahkan berada di belakang NAT? InsyaAllah akan dibahas pada tulisan selanjutnya. Ditunggu ya!

