Gunakan perangkat lunak open-source strongSwan untuk membuat koneksi IPsec-VPN dengan Gateway VPN Alibaba Cloud guna mengaktifkan komunikasi jaringan pribadi antara lingkungan on-premises dan cloud Anda.
Contoh skenario
Dalam skenario ini, Anda men-deploy strongSwan pada perangkat gateway di data center Anda untuk membuat koneksi IPsec-VPN dual-tunnel dengan Alibaba Cloud. Hal ini menghubungkan data center Anda ke sumber daya cloud Anda.
Perencanaan alamat IP
Data center
Blok CIDR pribadi: 172.16.0.0/16
Perangkat strongSwan
NIC eth0: 172.16.20.80, dipetakan ke alamat IP egress publik 1: 120.XX.XX.202
(Opsional) NIC eth1: 172.16.21.248, dipetakan ke alamat IP egress publik 2: 47.XX.XX.127
CatatanUntuk skenario non-NAT, lihat Cara mengonfigurasi perangkat strongSwan yang NIC-nya memiliki alamat IP publik.
Anda dapat membuat koneksi IPsec-VPN dual-tunnel dengan menggunakan perangkat yang memiliki satu alamat IP egress publik (single egress) atau dua (dual egress). Topik ini menyediakan contoh untuk kedua skenario tersebut.
Alibaba Cloud
Blok CIDR VPC: 192.168.0.0/16
Blok CIDR vSwitch 1: 192.168.10.0/24
Blok CIDR vSwitch 2: 192.168.20.0/24
Blok CIDR vSwitch 3: 192.168.40.0/24
Blok CIDR vSwitch 4: 192.168.50.0/24
Blok CIDR vSwitch 5: 192.168.55.0/24
Gateway VPN
Alamat IPsec 1: 47.XX.XX.151
Alamat IPsec 2: 47.XX.XX.87
CatatanSetelah Anda membuat gateway VPN, sistem secara otomatis menetapkan dua alamat IPsec ke instans gateway VPN.
Alamat IP BGP
Topik ini menjelaskan cara mengonfigurasi perangkat strongSwan untuk koneksi IPsec-VPN yang menggunakan perutean statis dan Perutean dinamis BGP. Jika Anda tidak perlu menggunakan Perutean dinamis BGP, Anda dapat melewatkan bagian ini. Tabel berikut menjelaskan perencanaan blok CIDR BGP untuk contoh ini.
Resource | Tunnel | Blok CIDR terowongan BGP | Alamat IP BGP | BGP ASN |
Instans gateway VPN | Tunnel 1 | 169.254.10.0/30 Catatan Untuk instans gateway VPN yang sama, blok CIDR setiap terowongan harus unik. | 169.254.10.1 | 65535 |
Tunnel 2 | 169.254.20.0/30 | 169.254.20.1 | ||
Perangkat strongSwan | Tunnel 1 | 169.254.10.0/30 | 169.254.10.2 | 65530 |
Tunnel 2 | 169.254.20.0/30 | 169.254.20.2 |
Parameter VPN
Contoh ini menggunakan parameter yang sama untuk kedua terowongan. Untuk setiap terowongan, pastikan konfigurasi pada perangkat strongSwan dan di Alibaba Cloud sesuai.
Kunci pra-bersama: ChangeMe***
Konfigurasi IKE
Versi IKE: ikev2
Mode negosiasi: main
Algoritma enkripsi: aes
Algoritma autentikasi: sha1
Grup DH: group2
Masa aktif SA (detik): 86400
Konfigurasi IPsec:
Algoritma enkripsi: aes
Algoritma autentikasi: sha1
Grup DH: group2
Masa aktif SA (detik): 86400
Persiapan Alibaba Cloud
Berdasarkan jumlah alamat IP egress publik dan metode perutean yang akan Anda gunakan, lengkapi konfigurasi di sisi Alibaba Cloud:
Dual egress dengan Perutean dinamis BGP
Lihat Menjalin koneksi antara VPC dan pusat data (mode saluran ganda dan perutean dinamis BGP), lalu selesaikan langkah-langkah berikut: Buat Gateway VPN, Buat gateway pelanggan, Buat koneksi IPsec-VPN, dan Aktifkan pengumuman rute otomatis BGP.
Perangkat strongSwan memiliki dua alamat IP egress publik. Anda harus membuat dua gateway pelanggan.
Saat membuat koneksi IPsec-VPN, asosiasikan Tunnel 1 dengan egress publik 1 dan Tunnel 2 dengan egress publik 2. Dalam skenario ini, mode perutean diatur ke Destination Routing Mode.
Dual-egress static routing
Lihat Quick start for Standard VPN Gateways dan selesaikan langkah-langkah berikut: Create a VPN gateway, Create a customer gateway, Create an IPsec-VPN connection, dan Configure routes for the VPN gateway.
Perangkat strongSwan memiliki dua alamat IP egress publik. Anda harus membuat dua gateway pelanggan.
Saat membuat koneksi IPsec-VPN, asosiasikan Tunnel 1 dengan egress publik 1 dan Tunnel 2 dengan egress publik 2. Dalam skenario ini, mode perutean diatur ke Destination Routing Mode.
Single Egress - BGP Dynamic Routing
Lihat Membuat koneksi antara VPC dan pusat data (mode saluran ganda dan Perutean dinamis BGP), lalu ikuti langkah-langkah berikut: Buat Gateway VPN, Buat gateway pelanggan, Buat Koneksi IPsec-VPN, dan Aktifkan pengumuman rute otomatis BGP.
Perangkat strongSwan hanya memiliki satu alamat IP egress publik. Anda hanya perlu membuat satu gateway pelanggan.
Saat membuat koneksi IPsec-VPN, asosiasikan kedua terowongan dengan gateway pelanggan yang sama. Dalam skenario ini, mode perutean diatur ke Destination Routing Mode.
Single egress dengan perutean statis
Lihat Quick start for Standard VPN Gateways dan selesaikan langkah-langkah berikut: Create a VPN gateway, Create a customer gateway, Create an IPsec-VPN connection, dan Configure routes for the VPN gateway. Perhatikan poin-poin berikut:
Perangkat strongSwan hanya memiliki satu alamat IP egress publik. Anda hanya perlu membuat satu gateway pelanggan.
Saat membuat koneksi IPsec-VPN, Anda harus menggunakan Protected Data Flow mode dan menentukan parameter berikut. Asosiasikan kedua terowongan dengan gateway pelanggan yang sama.
Jaringan lokal: Masukkan blok CIDR VPC di sisi Alibaba Cloud, yaitu 192.168.0.0/16.
Jaringan remote: Masukkan blok CIDR pribadi data center, yaitu 172.16.0.0/16.
Dalam skenario di mana koneksi IPsec-VPN diasosiasikan dengan router transit, kami merekomendasikan agar Anda menggunakan Perutean dinamis BGP daripada metode ini.
Konfigurasi perangkat strongSwan
Langkah-langkah berikut menggunakan perangkat strongSwan yang menjalankan sistem operasi CentOS Stream 9 64-bit sebagai contoh. Untuk sistem operasi lain, lihat dokumentasi resmi strongSwan.
1. Konfigurasi kebijakan firewall
Pada perangkat strongSwan, izinkan traffic yang melewati protokol ESP (nomor protokol IP 50), port UDP 500, dan port UDP 4500.
iptables -I INPUT -p 50 -j ACCEPT
iptables -I INPUT -p udp --dport 500 -j ACCEPT
iptables -I INPUT -p udp --dport 4500 -j ACCEPT2. Aktifkan penerusan traffic
echo 1 > /proc/sys/net/ipv4/ip_forwardPerintah di atas bersifat sementara dan tidak bertahan setelah perangkat direstart. Untuk membuat perubahan permanen, ikuti langkah-langkah berikut.
3. Instal strongSwan
dnf install epel-release -y
dnf install strongswan -y4. Konfigurasi saluran data ganda
Dual egress dengan perutean statis dan BGP
Dual egress didasarkan pada antarmuka jaringan virtual XFRM. Untuk menggunakan antarmuka jaringan virtual XFRM, Anda harus menginstal strongSwan 5.8.0 atau yang lebih baru, menggunakan kernel Linux 4.19 atau yang lebih baru dan iproute2 5.1.0 atau yang lebih baru, serta memastikan bahwa kernel mendukung modul xfrm. Jika tidak ada hasil yang dikembalikan setelah menjalankan perintah lsmod | grep xfrm, berarti modul xfrm tidak didukung. Untuk informasi lebih lanjut, lihat XFRM Interfaces on Linux.
Tambahkan rute ke dua alamat IPsec di sisi Alibaba Cloud. Dengan demikian, traffic ke alamat IPsec 1 dirutekan melalui eth0 dan traffic ke alamat IPsec 2 dirutekan melalui eth1.
ip route add 47.XX.XX.151 via 172.16.20.253 dev eth0 #172.16.20.253 adalah alamat gateway pribadi eth0. ip route add 47.XX.XX.87 via 172.16.21.253 dev eth1 #172.16.21.253 adalah alamat gateway pribadi eth1.Pastikan Anda dapat melakukan ping ke dua alamat IPsec berikut.
ping 47.XX.XX.151 ping 47.XX.XX.87Buat dua antarmuka jaringan virtual untuk membuat tunnel IPsec-VPN.
ip link add ipsec0 type xfrm dev eth0 if_id 42 # Buat antarmuka jaringan virtual XFRM untuk Tunnel 1. ID antarmuka adalah 42 dan antarmuka dasar adalah antarmuka publik eth0. ip link add ipsec1 type xfrm dev eth1 if_id 43 # Buat antarmuka jaringan virtual XFRM untuk Tunnel 2. ID antarmuka adalah 43 dan antarmuka dasar adalah antarmuka publik eth1. ip link set ipsec0 up # Aktifkan antarmuka jaringan virtual XFRM untuk Tunnel 1. ip link set ipsec1 up # Aktifkan antarmuka jaringan virtual XFRM untuk Tunnel 2.PentingKonfigurasi untuk membuat antarmuka jaringan virtual bersifat sementara. Setelah perangkat strongSwan direstart, Anda harus menambahkan kembali konfigurasi tersebut dan menjalankan perintah
sudo systemctl restart strongswan;swanctl --load-all. Perintah ini memerlukan izin root. Anda dapat menambahkan skrip startup untuk perangkat strongSwan agar secara otomatis menambahkan antarmuka jaringan virtual setelah perangkat direstart.Ubah file konfigurasi strongSwan.
Cadangkan file konfigurasi strongSwan asli.
mv /etc/strongswan/swanctl/swanctl.conf /etc/strongswan/swanctl/swanctl.conf.bakBuat file konfigurasi strongSwan.
vi /etc/strongswan/swanctl/swanctl.confBerdasarkan parameter IPsec yang ditentukan dalam contoh skenario, tambahkan dan simpan konfigurasi berikut.
PentingJika Anda berencana menggunakan perutean statis, Anda harus menghapus komentar pada perintah
updown = /root/connect_1.shdanupdown = /root/connect_2.shdalam file konfigurasi.connections { vco1 { # Tambahkan konfigurasi VPN untuk Tunnel IPsec-VPN 1. version = 2 # Tentukan versi IKE. Pastikan nilainya sama dengan versi IKE Tunnel 1 di Alibaba Cloud. 2 menunjukkan IKEv2. local_addrs = 172.16.20.80 # Alamat IP NIC lokal pertama. remote_addrs = 47.XX.XX.151 # Tentukan alamat IP remote Tunnel 1, yaitu alamat IP publik Tunnel 1 gateway VPN di Alibaba Cloud. Ini adalah alamat IPsec 1. dpd_delay = 10 rekey_time = 84600 # Tentukan masa aktif SA untuk Tunnel 1. Pastikan nilainya sama dengan masa aktif SA dalam konfigurasi IKE Tunnel 1 di Alibaba Cloud. over_time = 1800 proposals = aes-sha1-modp1024 # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 1. Pastikan nilainya sama dengan nilai di Tunnel 1 di Alibaba Cloud. group2 sesuai dengan modp1024. encap = yes local { auth = psk # Tentukan PSK sebagai metode autentikasi untuk sisi lokal. id = 120.XX.XX.202 # Alamat IP egress publik lokal pertama. Pastikan nilainya sama dengan RemoteId Tunnel 1 di Alibaba Cloud. } remote { auth = psk # Tentukan PSK sebagai metode autentikasi untuk sisi peer. id = 47.XX.XX.151 # Alamat IPsec 1 di sisi Alibaba Cloud. Pastikan nilainya sama dengan LocalId Tunnel 1 di Alibaba Cloud. } children { vco_child1 { local_ts = 0.0.0.0/0 # Untuk Destination Routing Mode di Alibaba Cloud, aliran data yang dilindungi yang sesuai adalah 0.0.0.0/0. remote_ts = 0.0.0.0/0 # Untuk Destination Routing Mode di Alibaba Cloud, aliran data yang dilindungi yang sesuai adalah 0.0.0.0/0. mode = tunnel rekey_time = 85500 life_time = 86400 # Tentukan masa aktif SA untuk Tunnel 1. Pastikan nilainya sama dengan masa aktif SA dalam konfigurasi IPsec Tunnel 1 di Alibaba Cloud. dpd_action = restart start_action = start close_action = start esp_proposals = aes-sha1-modp1024 # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 1. Pastikan nilainya sama dengan nilai dalam konfigurasi IPsec Tunnel 1 di Alibaba Cloud. group2 sesuai dengan modp1024. if_id_out = 42 # Tentukan antarmuka jaringan virtual XFRM Tunnel 1 sebagai antarmuka egress dan ingress untuk Tunnel 1. if_id_in = 42 #updown = /root/connect_1.sh # Jalankan skrip /root/connect_1.sh untuk mengonfigurasi rute berdasarkan status UP/DOWN Tunnel 1. Parameter ini hanya diperlukan jika Anda menggunakan perutean statis. } } } vco2 { # Tambahkan konfigurasi VPN untuk Tunnel IPsec-VPN 2. version = 2 # Tentukan versi IKE. Pastikan nilainya sama dengan versi IKE Tunnel 2 di Alibaba Cloud. 2 menunjukkan IKEv2. local_addrs = 172.16.21.248 # Alamat IP NIC lokal kedua. remote_addrs = 47.XX.XX.87 # Tentukan alamat IP remote Tunnel 2, yaitu alamat IP publik Tunnel 2 gateway VPN di Alibaba Cloud. Ini adalah alamat IPsec 2. dpd_delay = 10 rekey_time = 84600 # Tentukan masa aktif SA untuk Tunnel 2. Pastikan nilainya sama dengan masa aktif SA dalam konfigurasi IKE Tunnel 2 di Alibaba Cloud. over_time = 1800 # proposals = aes-sha1-modp1024 # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 2. Pastikan nilainya sama dengan nilai dalam konfigurasi IKE Tunnel 2 di Alibaba Cloud. group2 sesuai dengan modp1024. encap = yes local { auth = psk # Tentukan PSK sebagai metode autentikasi untuk sisi lokal. id = 47.XX.XX.127 # Alamat IP egress publik lokal kedua. Pastikan nilainya sama dengan RemoteId Tunnel 2 di Alibaba Cloud. } remote { auth = psk # Tentukan PSK sebagai metode autentikasi untuk sisi peer. id = 47.XX.XX.87 # Alamat IPsec 2 di sisi Alibaba Cloud. Pastikan nilainya sama dengan LocalId Tunnel 2 di Alibaba Cloud. } children { vco_child2 { local_ts = 0.0.0.0/0 # Untuk Destination Routing Mode di Alibaba Cloud, aliran data yang dilindungi yang sesuai adalah 0.0.0.0/0. remote_ts = 0.0.0.0/0 # Untuk Destination Routing Mode di Alibaba Cloud, aliran data yang dilindungi yang sesuai adalah 0.0.0.0/0. mode = tunnel rekey_time = 85500 life_time = 86400 # Tentukan masa aktif SA untuk Tunnel 2. Pastikan nilainya sama dengan masa aktif SA dalam konfigurasi IPsec Tunnel 2 di Alibaba Cloud. dpd_action = restart start_action = start close_action = start esp_proposals = aes-sha1-modp1024 # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 2. Pastikan nilainya sama dengan nilai dalam konfigurasi IPsec Tunnel 2 di Alibaba Cloud. group2 sesuai dengan modp1024. if_id_out = 43 # Tentukan antarmuka jaringan virtual XFRM Tunnel 2 sebagai antarmuka egress dan ingress untuk Tunnel 2. if_id_in = 43 #updown = /root/connect_2.sh # Jalankan skrip /root/connect_2.sh untuk mengonfigurasi rute berdasarkan status UP/DOWN Tunnel 2. Parameter ini hanya diperlukan jika Anda menggunakan perutean statis. } } } } secrets { ike-vco1 { id = 47.XX.XX.151 # Alamat IP publik Tunnel 1 gateway VPN di sisi Alibaba Cloud. secret = ChangeMe*** # Tentukan kunci pra-bersama untuk Tunnel 1. Pastikan nilainya sama dengan kunci pra-bersama Tunnel 1 di sisi Alibaba Cloud. } ike-vco2 { id = 47.XX.XX.87 # Alamat IP publik Tunnel 2 gateway VPN di sisi Alibaba Cloud. secret = ChangeMe*** # Tentukan kunci pra-bersama untuk Tunnel 2. Pastikan nilainya sama dengan kunci pra-bersama Tunnel 2 di sisi Alibaba Cloud. } }
Restart proses strongSwan, muat ulang konfigurasi strongSwan, lalu periksa status tunnel.
sudo systemctl restart strongswan swanctl --load-all watch swanctl --list-sasOutput menunjukkan bahwa koneksi IPsec-VPN telah dibuat. Namun, komunikasi jaringan belum diaktifkan karena rute harus dikonfigurasi terlebih dahulu.

Konfigurasi rute.
Lihat konten yang relevan berdasarkan metode perutean yang ingin Anda gunakan.
Perutean dinamis BGP
CatatanSetelah perangkat strongSwan direstart, Anda harus menambahkan kembali konfigurasi BGP.
Jalankan perintah berikut untuk mengonfigurasi alamat IP BGP:
ip address add 169.254.10.2/30 dev ipsec0 ip address add 169.254.20.2/30 dev ipsec1Instal perangkat lunak FRRouting (FRR).
yum install -y frrJalankan perintah
vi /etc/frr/daemonsuntuk mengedit file konfigurasi dan mengaktifkan Perutean dinamis BGP.Tekan tombol
iuntuk masuk ke mode insert. Ubah nilai parameter bgpd menjadiyesuntuk mengaktifkan Perutean dinamis BGP. Tekan tombolEscuntuk keluar dari mode insert, lalu ketik:wquntuk menyimpan konfigurasi.Jalankan FRR.
systemctl enable frr systemctl restart frrTambahkan konfigurasi BGP.
Jalankan perintah berikut untuk masuk ke antarmuka konfigurasi:
vtyshJalankan perintah berikut untuk masuk ke mode konfigurasi:
config terminalTambahkan konfigurasi BGP.
Saat menjalankan perintah, ganti nilai-nilai berikut dengan nilai aktual yang Anda gunakan.
Ganti "169.254.10.1" dan "169.254.20.1" dengan alamat IP BGP tunnel di sisi Alibaba Cloud.
Ganti "65535" dengan BGP ASN gateway VPN dalam skenario Anda.
Ganti "172.16.20.0/24" dan "172.16.21.0/24" dengan blok CIDR data center Anda.
route-map allow-all permit 1 exit router bgp 65530 bgp router-id 169.254.10.2 neighbor 169.254.10.1 remote-as 65535 neighbor 169.254.10.1 timers 10 30 neighbor 169.254.20.1 remote-as 65535 neighbor 169.254.20.1 timers 10 30 address-family ipv4 unicast network 172.16.20.0/24 network 172.16.21.0/24 neighbor 169.254.10.1 soft-reconfiguration inbound neighbor 169.254.10.1 route-map allow-all in neighbor 169.254.10.1 route-map allow-all out neighbor 169.254.20.1 soft-reconfiguration inbound neighbor 169.254.20.1 route-map allow-all in neighbor 169.254.20.1 route-map allow-all out maximum-paths 32 exit-address-family exit
Jalankan perintah
exituntuk keluar dari mode konfigurasi, lalu jalankan perintahshow ip bgpuntuk melihat rute BGP.Anda dapat melihat bahwa perangkat strongSwan telah mempelajari rute ke VPC dan data center serta VPC dapat saling berkomunikasi.

Perutean statis
Buat dua skrip untuk dipanggil oleh strongSwan guna mengonfigurasi rute dan mengontrol penerusan traffic.
Buat dan edit skrip /root/connect_1.sh.
vi /root/connect_1.shTambahkan dan simpan konten berikut.
#!/usr/bin/env bash if [ x"$PLUTO_VERB" == "xup-client" ]; then echo "ip route add 192.168.0.0/16 dev ipsec0" >> /root/vpn_route.log;ip route add 192.168.0.0/16 dev ipsec0 metric 100 elif [ x"$PLUTO_VERB" == "xdown-client" ]; then echo "ip route del 192.168.0.0/16 dev ipsec0" >> /root/vpn_route.log;ip route del 192.168.0.0/16 dev ipsec0 metric 100 fiTujuan: Saat Tunnel 1 UP, skrip ini menambahkan rute untuk traffic yang ditujukan ke VPC Alibaba Cloud (192.168.0.0/16) melalui antarmuka jaringan virtual XFRM Tunnel 1. Skrip ini mengatur metrik rute menjadi 100, sehingga memberikan prioritas lebih tinggi daripada rute yang mengarah ke antarmuka jaringan virtual XFRM Tunnel 2. Saat Tunnel 1 DOWN, skrip ini menghapus rute tersebut.
Buat dan edit skrip /root/connect_2.sh.
vi /root/connect_2.shTambahkan dan simpan konten berikut.
#!/usr/bin/env bash if [ x"$PLUTO_VERB" == "xup-client" ]; then echo "ip route add 192.168.0.0/16 dev ipsec1" >> /root/vpn_route.log;ip route add 192.168.0.0/16 dev ipsec1 metric 101 elif [ x"$PLUTO_VERB" == "xdown-client" ]; then echo "ip route del 192.168.0.0/16 dev ipsec1" >> /root/vpn_route.log;ip route del 192.168.0.0/16 dev ipsec1 metric 101 fiTujuan: Saat Tunnel 2 UP, skrip ini menambahkan rute untuk traffic yang ditujukan ke VPC Alibaba Cloud (192.168.0.0/16) melalui antarmuka jaringan virtual XFRM Tunnel 2. Skrip ini mengatur metrik rute menjadi 101, sehingga memberikan prioritas lebih rendah daripada rute yang mengarah ke antarmuka jaringan virtual XFRM Tunnel 1. Saat Tunnel 2 DOWN, skrip ini menghapus rute tersebut.
Berikan izin eksekusi ke kedua skrip tersebut.
sudo chmod +x /root/connect_1.sh sudo chmod +x /root/connect_2.shRestart proses strongSwan.
sudo systemctl restart strongswanJalankan perintah berikut untuk memeriksa apakah rute telah dikonfigurasi:
route -n
Single egress dengan Perutean dinamis BGP
Perutean dinamis BGP didasarkan pada antarmuka jaringan virtual XFRM. Untuk menggunakan antarmuka jaringan virtual XFRM, Anda harus menginstal strongSwan 5.8.0 atau yang lebih baru, menggunakan kernel Linux 4.19 atau yang lebih baru dan iproute2 5.1.0 atau yang lebih baru, serta memastikan bahwa kernel mendukung modul xfrm. Jika tidak ada hasil yang dikembalikan setelah menjalankan perintah lsmod | grep xfrm, berarti modul xfrm tidak didukung. Untuk informasi lebih lanjut, lihat XFRM Interfaces on Linux.
Buat dua antarmuka jaringan virtual untuk membuat tunnel IPsec-VPN.
ip link add ipsec0 type xfrm dev eth0 if_id 42 # Buat antarmuka jaringan virtual XFRM untuk Tunnel 1. ID antarmuka adalah 42 dan antarmuka dasar adalah antarmuka publik eth0. ip link add ipsec1 type xfrm dev eth0 if_id 43 # Buat antarmuka jaringan virtual XFRM untuk Tunnel 2. ID antarmuka adalah 43 dan antarmuka dasar adalah antarmuka publik eth0. ip link set ipsec0 up # Aktifkan antarmuka jaringan virtual XFRM untuk Tunnel 1. ip link set ipsec1 up # Aktifkan antarmuka jaringan virtual XFRM untuk Tunnel 2.PentingKonfigurasi untuk membuat antarmuka jaringan virtual bersifat sementara. Setelah perangkat strongSwan direstart, Anda harus menambahkan kembali konfigurasi tersebut dan menjalankan perintah
sudo systemctl restart strongswan;swanctl --load-all. Perintah ini memerlukan izin root. Anda dapat menambahkan skrip startup untuk perangkat strongSwan agar secara otomatis menambahkan antarmuka jaringan virtual setelah perangkat direstart.Ubah file konfigurasi strongSwan.
Cadangkan file konfigurasi strongSwan asli.
mv /etc/strongswan/swanctl/swanctl.conf /etc/strongswan/swanctl/swanctl.conf.bakBuat file konfigurasi strongSwan.
vi /etc/strongswan/swanctl/swanctl.confBerdasarkan parameter IPsec yang ditentukan dalam contoh skenario, tambahkan dan simpan konfigurasi berikut.
connections { vco1 { # Tambahkan konfigurasi VPN untuk Tunnel IPsec-VPN 1. version = 2 # Tentukan versi IKE. Pastikan nilainya sama dengan versi IKE Tunnel 1 di Alibaba Cloud. 2 menunjukkan IKEv2. local_addrs = 172.16.20.80 # Alamat IP pribadi antarmuka eth0. remote_addrs = 47.XX.XX.151 # Tentukan alamat IP remote Tunnel 1, yaitu alamat IP publik Tunnel 1 gateway VPN di Alibaba Cloud. Ini adalah alamat IPsec 1. dpd_delay = 10 rekey_time = 84600 # Tentukan masa aktif SA untuk Tunnel 1. Pastikan nilainya sama dengan masa aktif SA dalam konfigurasi IKE Tunnel 1 di Alibaba Cloud. over_time = 1800 proposals = aes-sha1-modp1024 # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 1. Pastikan nilainya sama dengan nilai di Tunnel 1 di Alibaba Cloud. group2 sesuai dengan modp1024. encap = yes local { auth = psk # Tentukan PSK sebagai metode autentikasi untuk sisi lokal. id = 120.XX.XX.202 # Alamat IP egress publik eth0. Pastikan nilainya sama dengan RemoteId Tunnel 1 di Alibaba Cloud. } remote { auth = psk # Tentukan PSK sebagai metode autentikasi untuk sisi peer. id = 47.XX.XX.151 # Alamat IPsec 1 di sisi Alibaba Cloud. Pastikan nilainya sama dengan LocalId Tunnel 1 di Alibaba Cloud. } children { vco_child1 { local_ts = 0.0.0.0/0 # Untuk Destination Routing Mode di Alibaba Cloud, aliran data yang dilindungi yang sesuai adalah 0.0.0.0/0. remote_ts = 0.0.0.0/0 # Untuk Destination Routing Mode di Alibaba Cloud, aliran data yang dilindungi yang sesuai adalah 0.0.0.0/0. mode = tunnel rekey_time = 85500 life_time = 86400 # Tentukan masa aktif SA untuk Tunnel 1. Pastikan nilainya sama dengan masa aktif SA dalam konfigurasi IPsec Tunnel 1 di Alibaba Cloud. dpd_action = restart start_action = start close_action = start esp_proposals = aes-sha1-modp1024 # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 1. Pastikan nilainya sama dengan nilai dalam konfigurasi IPsec Tunnel 1 di Alibaba Cloud. group2 sesuai dengan modp1024. if_id_out = 42 # Tentukan antarmuka jaringan virtual XFRM Tunnel 1 sebagai antarmuka egress dan ingress untuk Tunnel 1. if_id_in = 42 } } } vco2 { # Tambahkan konfigurasi VPN untuk Tunnel IPsec-VPN 2. version = 2 # Tentukan versi IKE. Pastikan nilainya sama dengan versi IKE Tunnel 2 di Alibaba Cloud. 2 menunjukkan IKEv2. local_addrs = 172.16.20.80 # Alamat IP pribadi antarmuka eth0. remote_addrs = 47.XX.XX.87 # Tentukan alamat IP remote Tunnel 2, yaitu alamat IP publik Tunnel 2 gateway VPN di Alibaba Cloud. Ini adalah alamat IPsec 2. dpd_delay = 10 rekey_time = 84600 # Tentukan masa aktif SA untuk Tunnel 2. Pastikan nilainya sama dengan masa aktif SA dalam konfigurasi IKE Tunnel 2 di Alibaba Cloud. over_time = 1800 # proposals = aes-sha1-modp1024 # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 2. Pastikan nilainya sama dengan nilai dalam konfigurasi IKE Tunnel 2 di Alibaba Cloud. group2 sesuai dengan modp1024. encap = yes local { auth = psk # Tentukan PSK sebagai metode autentikasi untuk sisi lokal. id = 120.XX.XX.202 # Alamat IP egress publik eth0. Pastikan nilainya sama dengan RemoteId Tunnel 2 di Alibaba Cloud. } remote { auth = psk # Tentukan PSK sebagai metode autentikasi untuk sisi peer. id = 47.XX.XX.87 # Alamat IPsec 2 di sisi Alibaba Cloud. Pastikan nilainya sama dengan LocalId Tunnel 2 di Alibaba Cloud. } children { vco_child2 { local_ts = 0.0.0.0/0 # Untuk Destination Routing Mode di Alibaba Cloud, aliran data yang dilindungi yang sesuai adalah 0.0.0.0/0. remote_ts = 0.0.0.0/0 # Untuk Destination Routing Mode di Alibaba Cloud, aliran data yang dilindungi yang sesuai adalah 0.0.0.0/0. mode = tunnel rekey_time = 85500 life_time = 86400 # Tentukan masa aktif SA untuk Tunnel 2. Pastikan nilainya sama dengan masa aktif SA dalam konfigurasi IPsec Tunnel 2 di Alibaba Cloud. dpd_action = restart start_action = start close_action = start esp_proposals = aes-sha1-modp1024 # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 2. Pastikan nilainya sama dengan nilai dalam konfigurasi IPsec Tunnel 2 di Alibaba Cloud. group2 sesuai dengan modp1024. if_id_out = 43 # Tentukan antarmuka jaringan virtual XFRM Tunnel 2 sebagai antarmuka egress dan ingress untuk Tunnel 2. if_id_in = 43 } } } } secrets { ike-vco1 { id = 47.XX.XX.151 # Alamat IP publik Tunnel 1 gateway VPN di sisi Alibaba Cloud. secret = ChangeMe*** # Tentukan kunci pra-bersama untuk Tunnel 1. Pastikan nilainya sama dengan kunci pra-bersama Tunnel 1 di sisi Alibaba Cloud. } ike-vco2 { id = 47.XX.XX.87 # Alamat IP publik Tunnel 2 gateway VPN di sisi Alibaba Cloud. secret = ChangeMe*** # Tentukan kunci pra-bersama untuk Tunnel 2. Pastikan nilainya sama dengan kunci pra-bersama Tunnel 2 di sisi Alibaba Cloud. } }
Restart proses strongSwan, muat ulang konfigurasi strongSwan, lalu periksa status tunnel.
sudo systemctl restart strongswan swanctl --load-all watch swanctl --list-sasOutput menunjukkan bahwa koneksi IPsec-VPN telah dibuat. Namun, komunikasi jaringan belum diaktifkan karena rute harus dikonfigurasi terlebih dahulu.

Konfigurasi Perutean dinamis BGP.
CatatanSetelah perangkat strongSwan direstart, Anda harus menambahkan kembali konfigurasi BGP.
Jalankan perintah berikut untuk mengonfigurasi alamat IP BGP:
ip address add 169.254.10.2/30 dev ipsec0 ip address add 169.254.20.2/30 dev ipsec1Instal perangkat lunak FRRouting (FRR).
yum install -y frrJalankan perintah
vi /etc/frr/daemonsuntuk mengedit file konfigurasi dan mengaktifkan Perutean dinamis BGP.Tekan tombol
iuntuk masuk ke mode insert. Ubah nilai parameter bgpd menjadiyesuntuk mengaktifkan Perutean dinamis BGP. Tekan tombolEscuntuk keluar dari mode insert, lalu ketik:wquntuk menyimpan konfigurasi.Jalankan FRR.
systemctl enable frr systemctl restart frrTambahkan konfigurasi BGP.
Jalankan perintah berikut untuk masuk ke antarmuka konfigurasi:
vtyshJalankan perintah berikut untuk masuk ke mode konfigurasi:
config terminalTambahkan konfigurasi BGP.
Saat menjalankan perintah, ganti nilai-nilai berikut dengan nilai aktual yang Anda gunakan.
Ganti "169.254.10.1" dan "169.254.20.1" dengan alamat IP BGP tunnel di sisi Alibaba Cloud.
Ganti "65535" dengan BGP ASN gateway VPN dalam skenario Anda.
Ganti "172.16.20.0/24" dan "172.16.21.0/24" dengan blok CIDR data center Anda.
route-map allow-all permit 1 exit router bgp 65530 bgp router-id 169.254.10.2 neighbor 169.254.10.1 remote-as 65535 neighbor 169.254.10.1 timers 10 30 neighbor 169.254.20.1 remote-as 65535 neighbor 169.254.20.1 timers 10 30 address-family ipv4 unicast network 172.16.20.0/24 network 172.16.21.0/24 neighbor 169.254.10.1 soft-reconfiguration inbound neighbor 169.254.10.1 route-map allow-all in neighbor 169.254.10.1 route-map allow-all out neighbor 169.254.20.1 soft-reconfiguration inbound neighbor 169.254.20.1 route-map allow-all in neighbor 169.254.20.1 route-map allow-all out maximum-paths 32 exit-address-family exit
Jalankan perintah
exituntuk keluar dari mode konfigurasi, lalu jalankan perintahshow ip bgpuntuk melihat rute BGP.Anda dapat melihat bahwa perangkat strongSwan telah mempelajari rute ke VPC dan data center serta VPC dapat saling berkomunikasi.

Single egress dengan perutean statis
Dalam skenario single-egress yang menggunakan perutean statis, Alibaba Cloud mungkin secara proaktif mengalihkan traffic ke tunnel cadangan jika mendeteksi risiko pada tunnel aktif. Hal ini dapat menyebabkan gangguan traffic. Anda dapat memantau nilai parameter XfrmInTmplMismatch dalam file /proc/net/xfrm_stat untuk menentukan apakah Alibaba Cloud telah mengalihkan traffic ke tunnel cadangan. Jika nilai parameter ini terus berubah, berarti traffic telah dialihkan. Dalam kasus ini, Anda dapat mengubah nilai parameter priority untuk tunnel cadangan dalam file /etc/strongswan/swanctl/swanctl.conf untuk memprioritaskan traffic dari data center ke cloud melalui tunnel cadangan.
Cadangkan file konfigurasi strongSwan asli.
mv /etc/strongswan/swanctl/swanctl.conf /etc/strongswan/swanctl/swanctl.conf.bakBuat file konfigurasi strongSwan.
vi /etc/strongswan/swanctl/swanctl.confBerdasarkan konfigurasi yang ditentukan dalam bagian Contoh skenario, tambahkan dan simpan konfigurasi berikut.
connections { vco1 { # Tambahkan konfigurasi VPN untuk Tunnel IPsec-VPN 1. version = 2 # Tentukan versi IKE. Pastikan nilainya sama dengan versi IKE Tunnel 1 di Alibaba Cloud. 2 menunjukkan IKEv2. local_addrs = 172.16.20.80 # Alamat IP pribadi antarmuka eth0. remote_addrs = 47.XX.XX.151 # Tentukan alamat IP remote Tunnel 1, yaitu alamat IP publik Tunnel 1 gateway VPN di Alibaba Cloud. Ini adalah alamat IPsec 1. dpd_delay = 10 rekey_time = 84600 # Tentukan masa aktif SA untuk Tunnel 1. Pastikan nilainya sama dengan masa aktif SA dalam konfigurasi IKE Tunnel 1 di Alibaba Cloud. over_time = 1800 proposals = aes-sha1-modp1024 # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 1. Pastikan nilainya sama dengan nilai di Tunnel 1 di Alibaba Cloud. group2 sesuai dengan modp1024. encap = yes local { auth = psk # Tentukan PSK sebagai metode autentikasi untuk sisi lokal. id = 120.XX.XX.202 # Alamat IP egress publik lokal. Pastikan nilainya sama dengan RemoteId Tunnel 1 di Alibaba Cloud. } remote { auth = psk # Tentukan PSK sebagai metode autentikasi untuk sisi peer. id = 47.XX.XX.151 # Alamat IPsec 1 di sisi Alibaba Cloud. Pastikan nilainya sama dengan LocalId Tunnel 1 di Alibaba Cloud. } children { vco_child1 { local_ts = 172.16.0.0/16 # Aliran data yang dilindungi di sisi lokal. Masukkan blok CIDR pribadi data center, yaitu 172.16.0.0/16. remote_ts = 192.168.0.0/16 # Aliran data yang dilindungi di sisi Alibaba Cloud. Masukkan blok CIDR VPC, yaitu 192.168.0.0/16. mode = tunnel rekey_time = 85500 life_time = 86400 # Tentukan masa aktif SA untuk Tunnel 1. Pastikan nilainya sama dengan masa aktif SA dalam konfigurasi IPsec Tunnel 1 di Alibaba Cloud. dpd_action = restart start_action = start close_action = start esp_proposals = aes-sha1-modp1024 # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 1. Pastikan nilainya sama dengan nilai dalam konfigurasi IPsec Tunnel 1 di Alibaba Cloud. group2 sesuai dengan modp1024. priority = 1 # Tentukan prioritas Tunnel 1. Hal ini memprioritaskan penerusan traffic melalui tunnel aktif. } } } vco2 { # Tambahkan konfigurasi VPN untuk Tunnel IPsec-VPN 2. version = 2 # Tentukan versi IKE. Pastikan nilainya sama dengan versi IKE Tunnel 2 di Alibaba Cloud. 2 menunjukkan IKEv2. local_addrs = 172.16.20.80 # Alamat IP pribadi antarmuka eth0. remote_addrs = 47.XX.XX.87 # Tentukan alamat IP remote Tunnel 2, yaitu alamat IP publik Tunnel 2 gateway VPN di Alibaba Cloud. Ini adalah alamat IPsec 2. dpd_delay = 10 rekey_time = 84600 # Tentukan masa aktif SA untuk Tunnel 2. Pastikan nilainya sama dengan masa aktif SA dalam konfigurasi IKE Tunnel 2 di Alibaba Cloud. over_time = 1800 proposals = aes-sha1-modp1024 # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 2. Pastikan nilainya sama dengan nilai dalam konfigurasi IKE Tunnel 2 di Alibaba Cloud. group2 sesuai dengan modp1024. encap = yes local { auth = psk # Tentukan PSK sebagai metode autentikasi untuk sisi lokal. id = 120.XX.XX.202 # Alamat IP egress publik lokal. Pastikan nilainya sama dengan RemoteId Tunnel 2 di Alibaba Cloud. } remote { auth = psk # Tentukan PSK sebagai metode autentikasi untuk sisi peer. id = 47.XX.XX.87 # Alamat IPsec 2 di sisi Alibaba Cloud. Pastikan nilainya sama dengan LocalId Tunnel 2 di Alibaba Cloud. } children { vco_child2 { local_ts = 172.16.0.0/16 # Aliran data yang dilindungi di sisi lokal. Masukkan blok CIDR pribadi data center, yaitu 172.16.0.0/16. remote_ts = 192.168.0.0/16 # Aliran data yang dilindungi di sisi Alibaba Cloud. Masukkan blok CIDR VPC, yaitu 192.168.0.0/16. mode = tunnel rekey_time = 85500 life_time = 86400 # Tentukan masa aktif SA untuk Tunnel 2. Pastikan nilainya sama dengan masa aktif SA dalam konfigurasi IPsec Tunnel 2 di Alibaba Cloud. dpd_action = restart start_action = start close_action = start esp_proposals = aes-sha1-modp1024 # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 2. Pastikan nilainya sama dengan nilai dalam konfigurasi IPsec Tunnel 2 di Alibaba Cloud. group2 sesuai dengan modp1024. priority = 2 # Tentukan prioritas Tunnel 2, yang lebih rendah daripada Tunnel 1. } } } } secrets { ike-vco1 { id = 47.XX.XX.151 # Alamat IP publik Tunnel 1 gateway VPN di sisi Alibaba Cloud. secret = ChangeMe*** # Tentukan kunci pra-bersama untuk Tunnel 1. Pastikan nilainya sama dengan kunci pra-bersama Tunnel 1 di sisi Alibaba Cloud. } ike-vco2 { id = 47.XX.XX.87 # Alamat IP publik Tunnel 2 gateway VPN di sisi Alibaba Cloud. secret = ChangeMe*** # Tentukan kunci pra-bersama untuk Tunnel 2. Pastikan nilainya sama dengan kunci pra-bersama Tunnel 2 di sisi Alibaba Cloud. } }Restart proses strongSwan, muat ulang konfigurasi strongSwan, lalu periksa status tunnel.
sudo systemctl restart strongswan swanctl --load-all watch swanctl --list-sasOutput menunjukkan bahwa koneksi IPsec-VPN telah dibuat, dan data center serta VPC dapat saling berkomunikasi.

5. Uji konektivitas dan ketersediaan tinggi
Uji konektivitas antara data center dan VPC.
Dari klien di data center, lakukan
pingke instans ECS di VPC Alibaba Cloud. Menerima paket balasan echo mengonfirmasi bahwa koneksi berhasil.ping <alamat IP instans ECS di VPC>Uji ketersediaan tinggi koneksi IPsec-VPN.
Saat ping sedang berlangsung, putuskan tunnel aktif koneksi IPsec-VPN.
Anda dapat memutuskan tunnel aktif dengan mengubah kunci pra-bersamanya. Tunnel aktif akan terputus jika kunci pra-bersama di kedua ujung tunnel tidak cocok.
Setelah memutuskan tunnel aktif, periksa kembali konektivitas menggunakan perintah
ping. Anda akan melihat gangguan singkat pada trafficpingsebelum komunikasi dipulihkan, yang mengonfirmasi bahwa traffic secara otomatis dialihkan ke tunnel cadangan.
FAQ
Konfigurasi strongSwan untuk koneksi router transit
Jika koneksi IPsec-VPN diasosiasikan dengan router transit, konfigurasi pada perangkat strongSwan sama seperti yang dijelaskan dalam topik ini. Kami merekomendasikan agar Anda menggunakan Perutean dinamis BGP. Setelah konfigurasi selesai, Anda dapat melihat rute VPC yang dipelajari melalui BGP pada perangkat strongSwan. Kedua tunnel koneksi IPsec-VPN secara otomatis membuat perutean ECMP.
Dukungan IKEv1
Ya.
Saat mengonfigurasi file /etc/strongswan/swanctl/swanctl.conf, tentukan version = 1.
Tentukan aliran data yang dilindungi
Saat mengonfigurasi file /etc/strongswan/swanctl/swanctl.conf, tentukan blok CIDR dalam konfigurasi berikut. Pastikan mode Protected Data Flow juga dikonfigurasi untuk koneksi IPsec-VPN di sisi Alibaba Cloud.
Jika Anda perlu menentukan beberapa blok CIDR untuk data center atau VPC Alibaba Cloud, perangkat strongSwan dan koneksi IPsec-VPN harus menggunakan IKEv2.
children {
vco_child1 {
local_ts = 192.168.20.0/24,192.168.50.0/24 # Blok CIDR data center.
remote_ts = 10.0.0.0/16 # Blok CIDR VPC di sisi Alibaba Cloud.
}
}Konfigurasi strongSwan dengan alamat IP publik pada NIC
Jika perangkat strongSwan Anda memiliki alamat IP publik pada antarmuka jaringannya (skenario non-NAT), Anda hanya perlu mengubah nilai bidang local_addrs untuk setiap tunnel menjadi alamat IP publik dalam file /etc/strongswan/swanctl/swanctl.conf. Konfigurasi lain tetap tidak berubah.
connections {
vco1 {
local_addrs = 1.1.XX.XX # Alamat IP publik yang ditetapkan ke NIC perangkat strongSwan.
}
}Konfigurasi single-tunnel
Jika gateway VPN Anda hanya mendukung koneksi IPsec-VPN single-tunnel, kami merekomendasikan agar Anda meningkatkan koneksi IPsec-VPN ke mode dual-tunnel. Koneksi IPsec-VPN dual-tunnel mendukung pemulihan bencana lintas zona ketersediaan untuk meningkatkan ketersediaan tinggi.
