All Products
Search
Document Center

VPN Gateway:konfigurasi strongSwan

Last Updated:Apr 30, 2026

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

      Catatan

      Untuk 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

      Catatan

      Setelah 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.

  1. Perangkat strongSwan memiliki dua alamat IP egress publik. Anda harus membuat dua gateway pelanggan.

  2. 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.

  1. Perangkat strongSwan memiliki dua alamat IP egress publik. Anda harus membuat dua gateway pelanggan.

  2. 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.

  1. Perangkat strongSwan hanya memiliki satu alamat IP egress publik. Anda hanya perlu membuat satu gateway pelanggan.

  2. 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:

  1. Perangkat strongSwan hanya memiliki satu alamat IP egress publik. Anda hanya perlu membuat satu gateway pelanggan.

  2. 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.

Catatan

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

Catatan

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 ACCEPT

2. Aktifkan penerusan traffic

echo 1 > /proc/sys/net/ipv4/ip_forward
Penting

Perintah di atas bersifat sementara dan tidak bertahan setelah perangkat direstart. Untuk membuat perubahan permanen, ikuti langkah-langkah berikut.

Konfigurasi permanen

  1. Buka file /etc/sysctl.conf.

    vi /etc/sysctl.conf
  2. Tambahkan konfigurasi berikut ke dalam file.

    net.ipv4.ip_forward = 1
  3. Jalankan perintah berikut agar konfigurasi berlaku:

    sudo sysctl -p

3. Instal strongSwan

dnf install epel-release -y
dnf install strongswan -y

4. Konfigurasi saluran data ganda

Dual egress dengan perutean statis dan BGP

Penting

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.

  1. 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.87 
  2. 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 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.
    Penting

    Konfigurasi 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.

    Skrip startup

    1. Jalankan perintah berikut untuk membuat skrip:

      vi xfrm.sh
    2. Tambahkan dan simpan konfigurasi berikut.

      sudo 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.
      sudo 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.
      sudo ip link set ipsec0 up # Aktifkan antarmuka jaringan virtual XFRM untuk Tunnel 1.
      sudo ip link set ipsec1 up # Aktifkan antarmuka jaringan virtual XFRM untuk Tunnel 2.
    3. Jalankan perintah berikut untuk melihat jalur mutlak skrip:

      sudo find / -name xfrm.sh
    4. Jalankan perintah sudo vi /etc/rc.d/rc.local untuk menambahkan jalur mutlak skrip ke file /etc/rc.d/rc.local.

      Tekan tombol i untuk masuk ke mode insert. Tambahkan jalur mutlak skrip, misalnya /root/xfrm.sh, ke file /etc/rc.d/rc.local. Tekan tombol Esc untuk keluar dari mode insert, lalu ketik :wq untuk menyimpan konfigurasi.

    5. Berikan izin eksekusi ke file rc.local dan skrip xfrm.sh.

      sudo chmod +x /etc/rc.d/rc.local
      sudo chmod +x /root/xfrm.sh
  3. Ubah file konfigurasi strongSwan.

    1. Cadangkan file konfigurasi strongSwan asli.

      mv /etc/strongswan/swanctl/swanctl.conf /etc/strongswan/swanctl/swanctl.conf.bak
    2. Buat file konfigurasi strongSwan.

      vi /etc/strongswan/swanctl/swanctl.conf
    3. Berdasarkan parameter IPsec yang ditentukan dalam contoh skenario, tambahkan dan simpan konfigurasi berikut.

      Penting

      Jika Anda berencana menggunakan perutean statis, Anda harus menghapus komentar pada perintah updown = /root/connect_1.sh dan updown = /root/connect_2.sh dalam 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.
         }
      }
  4. Restart proses strongSwan, muat ulang konfigurasi strongSwan, lalu periksa status tunnel.

    sudo systemctl restart strongswan
    swanctl --load-all
    watch swanctl --list-sas

    Output menunjukkan bahwa koneksi IPsec-VPN telah dibuat. Namun, komunikasi jaringan belum diaktifkan karena rute harus dikonfigurasi terlebih dahulu.

    IPsec-VPN

  5. Konfigurasi rute.

    Lihat konten yang relevan berdasarkan metode perutean yang ingin Anda gunakan.

    Perutean dinamis BGP

    Catatan

    Setelah perangkat strongSwan direstart, Anda harus menambahkan kembali konfigurasi BGP.

    1. 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 ipsec1
    2. Instal perangkat lunak FRRouting (FRR).

      yum install -y frr
    3. Jalankan perintah vi /etc/frr/daemons untuk mengedit file konfigurasi dan mengaktifkan Perutean dinamis BGP.

      Tekan tombol i untuk masuk ke mode insert. Ubah nilai parameter bgpd menjadi yes untuk mengaktifkan Perutean dinamis BGP. Tekan tombol Esc untuk keluar dari mode insert, lalu ketik :wq untuk menyimpan konfigurasi.

    4. Jalankan FRR.

      systemctl enable frr
      systemctl restart frr
    5. Tambahkan konfigurasi BGP.

      1. Jalankan perintah berikut untuk masuk ke antarmuka konfigurasi:

        vtysh
      2. Jalankan perintah berikut untuk masuk ke mode konfigurasi:

        config terminal
      3. Tambahkan 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
        
    6. Jalankan perintah exit untuk keluar dari mode konfigurasi, lalu jalankan perintah show ip bgp untuk melihat rute BGP.

      Anda dapat melihat bahwa perangkat strongSwan telah mempelajari rute ke VPC dan data center serta VPC dapat saling berkomunikasi.BGP路由

    Perutean statis

    Buat dua skrip untuk dipanggil oleh strongSwan guna mengonfigurasi rute dan mengontrol penerusan traffic.

    1. Buat dan edit skrip /root/connect_1.sh.

      vi /root/connect_1.sh
    2. Tambahkan 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
      fi

      Tujuan: 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.

    3. Buat dan edit skrip /root/connect_2.sh.

      vi /root/connect_2.sh
    4. Tambahkan 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
      fi

      Tujuan: 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.

    5. Berikan izin eksekusi ke kedua skrip tersebut.

      sudo chmod +x /root/connect_1.sh
      sudo chmod +x /root/connect_2.sh
    6. Restart proses strongSwan.

      sudo systemctl restart strongswan
    7. Jalankan perintah berikut untuk memeriksa apakah rute telah dikonfigurasi:

      route -n

      静态路由

Single egress dengan Perutean dinamis BGP

Penting

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.

  1. 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.
    Penting

    Konfigurasi 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.

    Skrip startup

    1. Jalankan perintah berikut untuk membuat skrip:

      vi xfrm.sh
    2. Tambahkan dan simpan konfigurasi berikut.

      sudo 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.
      sudo 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.
      sudo ip link set ipsec0 up # Aktifkan antarmuka jaringan virtual XFRM untuk Tunnel 1.
      sudo ip link set ipsec1 up # Aktifkan antarmuka jaringan virtual XFRM untuk Tunnel 2.
    3. Jalankan perintah berikut untuk melihat jalur mutlak skrip:

      sudo find / -name xfrm.sh
    4. Jalankan perintah sudo vi /etc/rc.d/rc.local untuk menambahkan jalur mutlak skrip ke file /etc/rc.d/rc.local.

      Tekan tombol i untuk masuk ke mode insert. Tambahkan jalur mutlak skrip, misalnya /root/xfrm.sh, ke file /etc/rc.d/rc.local. Tekan tombol Esc untuk keluar dari mode insert, lalu ketik :wq untuk menyimpan konfigurasi.

    5. Berikan izin eksekusi ke file rc.local dan skrip xfrm.sh.

      sudo chmod +x /etc/rc.d/rc.local
      sudo chmod +x /root/xfrm.sh
  2. Ubah file konfigurasi strongSwan.

    1. Cadangkan file konfigurasi strongSwan asli.

      mv /etc/strongswan/swanctl/swanctl.conf /etc/strongswan/swanctl/swanctl.conf.bak
    2. Buat file konfigurasi strongSwan.

      vi /etc/strongswan/swanctl/swanctl.conf
    3. Berdasarkan 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.
         }
      }
  3. Restart proses strongSwan, muat ulang konfigurasi strongSwan, lalu periksa status tunnel.

    sudo systemctl restart strongswan
    swanctl --load-all
    watch swanctl --list-sas

    Output menunjukkan bahwa koneksi IPsec-VPN telah dibuat. Namun, komunikasi jaringan belum diaktifkan karena rute harus dikonfigurasi terlebih dahulu.

    单出口

  4. Konfigurasi Perutean dinamis BGP.

    Catatan

    Setelah perangkat strongSwan direstart, Anda harus menambahkan kembali konfigurasi BGP.

    1. 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 ipsec1
    2. Instal perangkat lunak FRRouting (FRR).

      yum install -y frr
    3. Jalankan perintah vi /etc/frr/daemons untuk mengedit file konfigurasi dan mengaktifkan Perutean dinamis BGP.

      Tekan tombol i untuk masuk ke mode insert. Ubah nilai parameter bgpd menjadi yes untuk mengaktifkan Perutean dinamis BGP. Tekan tombol Esc untuk keluar dari mode insert, lalu ketik :wq untuk menyimpan konfigurasi.

    4. Jalankan FRR.

      systemctl enable frr
      systemctl restart frr
    5. Tambahkan konfigurasi BGP.

      1. Jalankan perintah berikut untuk masuk ke antarmuka konfigurasi:

        vtysh
      2. Jalankan perintah berikut untuk masuk ke mode konfigurasi:

        config terminal
      3. Tambahkan 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
        
    6. Jalankan perintah exit untuk keluar dari mode konfigurasi, lalu jalankan perintah show ip bgp untuk melihat rute BGP.

      Anda dapat melihat bahwa perangkat strongSwan telah mempelajari rute ke VPC dan data center serta VPC dapat saling berkomunikasi.BGP路由

Single egress dengan perutean statis

Penting

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.

  1. Cadangkan file konfigurasi strongSwan asli.

    mv /etc/strongswan/swanctl/swanctl.conf /etc/strongswan/swanctl/swanctl.conf.bak
  2. Buat file konfigurasi strongSwan.

    vi /etc/strongswan/swanctl/swanctl.conf
  3. Berdasarkan 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.
       }
    }
  4. Restart proses strongSwan, muat ulang konfigurasi strongSwan, lalu periksa status tunnel.

    sudo systemctl restart strongswan
    swanctl --load-all
    watch swanctl --list-sas

    Output menunjukkan bahwa koneksi IPsec-VPN telah dibuat, dan data center serta VPC dapat saling berkomunikasi.

    单出口

5. Uji konektivitas dan ketersediaan tinggi

  1. Uji konektivitas antara data center dan VPC.

    Dari klien di data center, lakukan ping ke instans ECS di VPC Alibaba Cloud. Menerima paket balasan echo mengonfirmasi bahwa koneksi berhasil.

    ping <alamat IP instans ECS di VPC>
  2. Uji ketersediaan tinggi koneksi IPsec-VPN.

    1. 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.

    2. Setelah memutuskan tunnel aktif, periksa kembali konektivitas menggunakan perintah ping. Anda akan melihat gangguan singkat pada traffic ping sebelum 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

Penting

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.

Contoh single-tunnel

Contoh single-tunnel

Contoh skenario

Dalam skenario yang ditunjukkan pada gambar berikut, Anda dapat men-deploy perangkat lunak strongSwan pada perangkat gateway di data center Anda dan membuat koneksi IPsec-VPN single-tunnel dengan Alibaba Cloud untuk mengaktifkan komunikasi jaringan antara data center dan sumber daya cloud Anda.

Perencanaan alamat IP

Sisi data center

Sisi Alibaba Cloud

  • Blok CIDR VPC: 172.16.0.0/16

    • Blok CIDR vSwitch 1: 172.16.1.0/24

    • Blok CIDR vSwitch 2: 172.16.2.0/24

  • Gateway VPN

    • Alamat IPsec: 3.3.XX.XX

      Catatan

      Setelah Anda membuat gateway VPN, sistem secara otomatis menetapkan alamat IPsec ke instans gateway VPN.

Parameter VPN

Pastikan konfigurasi pada perangkat strongSwan dan di Alibaba Cloud sama.

  • 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

Sebelum mengonfigurasi perangkat strongSwan, lengkapi langkah-langkah berikut di sisi Alibaba Cloud sesuai konfigurasi dalam skenario contoh: Buat Gateway VPN, Buat gateway pelanggan, Buat koneksi IPsec-VPN, dan Konfigurasikan entri rute untuk Gateway VPN. Untuk informasi selengkapnya, lihat Membangun koneksi antara VPC dan pusat data (mode saluran data tunggal).

Saat membuat koneksi IPsec-VPN, atur mode perutean tunnel ke Protected Data Flow mode:

  • Jaringan lokal: Masukkan blok CIDR VPC di sisi Alibaba Cloud, yaitu 172.16.0.0/16.

  • Jaringan remote: Masukkan blok CIDR pribadi data center, yaitu 10.0.0.0/16.

Konfigurasi perangkat strongSwan

Catatan

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 ACCEPT

2. Aktifkan penerusan traffic

echo 1 > /proc/sys/net/ipv4/ip_forward
Penting

Perintah di atas bersifat sementara dan tidak bertahan setelah perangkat direstart. Untuk membuat perubahan permanen, ikuti langkah-langkah berikut.

Konfigurasi permanen

  1. Buka file /etc/sysctl.conf.

    vi /etc/sysctl.conf
  2. Tambahkan konfigurasi berikut ke dalam file.

    net.ipv4.ip_forward = 1
  3. Jalankan perintah berikut agar konfigurasi berlaku:

    sudo sysctl -p

3. Instal strongSwan

dnf install epel-release -y
dnf install strongswan -y

4. Konfigurasi tunnel

Konfigurasi tunnel berdasarkan aliran data yang dilindungi.

  1. Cadangkan file konfigurasi strongSwan asli.

    mv /etc/strongswan/swanctl/swanctl.conf /etc/strongswan/swanctl/swanctl.conf.bak
  2. Buat file konfigurasi strongSwan.

    vi /etc/strongswan/swanctl/swanctl.conf
  3. Berdasarkan konfigurasi yang ditentukan dalam contoh skenario, tambahkan dan simpan konfigurasi berikut.

    connections {
       vco1 {                            # Tambahkan konfigurasi VPN untuk Tunnel 1.
          version = 2                    # Tentukan versi IKE. Pastikan nilainya sama dengan versi IKE Tunnel 1 di Alibaba Cloud. 2 menunjukkan IKEv2.
          local_addrs  = 10.0.0.1        # Alamat IP NIC lokal.
          remote_addrs = 3.3.XX.XX       # 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 = 1.1.XX.XX              # Alamat IP egress publik. Pastikan nilainya sama dengan RemoteId Tunnel 1 di Alibaba Cloud.
          }
          remote {
             auth = psk                  # Tentukan PSK sebagai metode autentikasi untuk sisi peer.
             id = 3.3.XX.XX              # Alamat IPsec di sisi Alibaba Cloud. Pastikan nilainya sama dengan LocalId Tunnel 1 di Alibaba Cloud.
          }
          children {
             vco_child1 {
                local_ts  = 10.0.0.0/16    # Aliran data yang dilindungi di sisi lokal.
                remote_ts = 172.16.0.0/16    # Aliran data yang dilindungi di sisi Alibaba Cloud.
                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.
             }
          }
       }
    
    }
    
    secrets {
       ike-vco1 {
          id = 3.3.XX.XX               # 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.
       }
    }
    
  4. Restart proses strongSwan dan muat ulang konfigurasi strongSwan.

    systemctl restart strongswan
    swanctl --load-all
  5. Periksa status tunnel.

    watch swanctl --list-sas 

    image

    Output menunjukkan bahwa koneksi IPsec-VPN telah dibuat antara perangkat strongSwan dan gateway VPN.

5. Uji konektivitas

Uji konektivitas antara perangkat strongSwan dan VPC.

Dari perangkat strongSwan, lakukan ping ke instans ECS di VPC Alibaba Cloud. Menerima paket balasan echo mengonfirmasi bahwa koneksi berhasil.

ping <alamat IP instans ECS di VPC>