全部产品
Search
文档中心

VPN Gateway:Konfigurasi strongSwan

更新时间:Mar 11, 2026

Terapkan strongSwan pada perangkat Linux di pusat data lokal untuk membuat koneksi IPsec-VPN dual-tunnel dengan Alibaba Cloud VPN Gateway guna mendukung komunikasi situs-ke-situs berbasis ketersediaan tinggi.

strongSwan adalah solusi VPN open-source berbasis IPsec yang berjalan pada distribusi Linux utama. Solusi ini mendukung negosiasi IKEv1/IKEv2, pemilih traffic berbasis rute maupun kebijakan (policy-based), serta perutean dinamis BGP melalui antarmuka virtual XFRM, menjadikannya pilihan fleksibel untuk menghubungkan jaringan lokal ke Alibaba Cloud.

Contoh dalam topik ini menggunakan mode dual-tunnel bawaan dari instans VPN Gateway. Untuk informasi lebih lanjut, lihat Apa itu koneksi IPsec-VPN?. Jika instans VPN Gateway Anda hanya mendukung mode single-tunnel, lihat Bagaimana cara mengonfigurasi tunnel tunggal? di akhir topik ini.

Prasyarat

Sebelum memulai, pastikan Anda telah menyiapkan:

  • Instans VPN Gateway yang mendukung mode dual-tunnel

  • Perangkat Linux yang menjalankan CentOS Stream 9 (64-bit) atau distribusi yang kompatibel

  • strongSwan versi 5.8.0 atau lebih baru (diperlukan untuk antarmuka virtual XFRM dalam skenario dual-egress dan BGP)

  • Kernel Linux 4.19 atau lebih baru dengan dukungan modul XFRM, serta iproute2 5.1.0 atau lebih baru (untuk konfigurasi berbasis XFRM)

  • Konektivitas jaringan pada port UDP 500 dan 4500, serta protokol ESP (protokol IP 50) diizinkan melalui semua firewall perantara

Contoh skenario

Gambar berikut menunjukkan penerapan khas. Perangkat strongSwan di jaringan lokal membuat koneksi IPsec-VPN dual-tunnel dengan Alibaba Cloud, memungkinkan komunikasi antara VPC dan pusat data Anda.

image

Perencanaan alamat IP

Sisi pusat data lokal

  • Blok CIDR pribadi: 172.16.0.0/16

  • Perangkat strongSwan

    • Kartu antarmuka jaringan eth0: 172.16.20.80, egress publik NAT-mapped 1: 120.XX.XX.202

    • (Opsional) Kartu antarmuka jaringan eth1: 172.16.21.248, egress publik NAT-mapped 2: 47.XX.XX.127

      Untuk skenario non-NAT, lihat Bagaimana cara mengonfigurasi strongSwan ketika antarmuka jaringan memiliki alamat IP publik (non-NAT)?.
      Anda dapat membuat koneksi IPsec-VPN dual-tunnel dengan Alibaba Cloud dari perangkat yang memiliki satu egress publik (single egress) atau dua egress publik (dual egress). Topik ini menyediakan contoh untuk kedua skenario tersebut.

Sisi 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.30.0/24

    • Blok CIDR vSwitch 4: 192.168.40.0/24

    • Blok CIDR vSwitch 5: 192.168.50.0/24

  • VPN Gateway

    • Alamat IPsec 1: 47.XX.XX.151

    • Alamat IPsec 2: 47.XX.XX.87

      Setelah Anda membuat instans VPN Gateway, sistem secara otomatis menetapkan dua alamat IPsec ke instans tersebut.

Alamat IP BGP

Topik ini mencakup perutean statis dan Border Gateway Protocol (BGP) dynamic routing. Lewati bagian ini jika Anda tidak berencana menggunakan BGP. Tabel berikut menunjukkan perencanaan blok CIDR BGP yang digunakan dalam topik ini.

Sumber Daya

Tunnel

Blok CIDR tunnel BGP

Alamat IP BGP

Nomor AS BGP

VPN Gateway

Tunnel 1

169.254.10.0/30

Blok CIDR setiap tunnel di bawah instans VPN Gateway 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

Perencanaan parameter VPN

Kedua tunnel menggunakan nilai parameter yang sama dalam contoh ini. Untuk setiap tunnel, konfigurasi IKE dan IPsec pada perangkat strongSwan harus sesuai dengan konfigurasi di sisi Alibaba Cloud.

Kunci pra-bersama: ChangeMe***

Parameter

IKE

IPsec

Versi / Mode

IKEv2 / main

-

Algoritma enkripsi

aes128

aes128

Algoritma autentikasi

sha1

sha1

Grup DH

group2 (modp1024)

group2 (modp1024)

Masa aktif SA (detik)

86400

86400

Parameter enkripsi dalam contoh ini (aes128-sha1-modp1024) dipilih untuk kompatibilitas luas. Untuk lingkungan produksi, pertimbangkan penggunaan algoritma yang lebih kuat seperti aes256-sha256-modp2048 atau aes256gcm16-sha384-ecp384.

Persiapkan sisi Alibaba Cloud

Lengkapi konfigurasi Alibaba Cloud berdasarkan jumlah egress publik dan metode perutean Anda. Pilih tab yang sesuai dengan skenario Anda.

Dual egress—perutean dinamis BGP

Untuk informasi lebih lanjut, lihat Hubungkan VPC ke pusat data lokal dalam mode dual-tunnel dan gunakan perutean BGP. Lengkapi langkah-langkah Create a VPN gateway, Create customer gateways, Create an IPsec-VPN connection, dan Enable BGP dynamic routing .

  1. Karena perangkat strongSwan memiliki dua alamat IP egress publik, buat dua gateway pelanggan.

  2. Saat membuat koneksi IPsec-VPN, asosiasikan Tunnel 1 dengan egress publik 1 dan Tunnel 2 dengan egress publik 2. Contoh ini menggunakan Destination Routing Mode.

Dual egress—perutean statis

Untuk informasi lebih lanjut, lihat Menghubungkan VPC ke pusat data lokal dalam mode saluran ganda. Ikuti langkah-langkah berikut: Buat Gateway VPN, Buat gateway pelanggan, Buat koneksi IPsec, dan Mengonfigurasi rute Gateway VPN.

  1. Karena perangkat strongSwan memiliki dua alamat IP egress publik, buat dua gateway pelanggan.

  2. Saat membuat koneksi IPsec-VPN, asosiasikan Tunnel 1 dengan egress publik 1 dan Tunnel 2 dengan egress publik 2. Contoh ini menggunakan Destination Routing Mode.

Single egress—perutean dinamis BGP

Untuk informasi lebih lanjut, lihat Hubungkan VPC ke pusat data lokal dalam mode dual-tunnel dan gunakan perutean BGP. Lengkapi langkah-langkah Create a VPN gateway, Create customer gateways, Create an IPsec-VPN connection, dan Enable BGP dynamic routing .

  1. Perangkat strongSwan memiliki satu alamat IP egress publik. Buat satu gateway pelanggan.

  2. Saat membuat koneksi IPsec-VPN, asosiasikan kedua tunnel dengan gateway pelanggan yang sama. Contoh ini menggunakan Destination Routing Mode.

Single egress—perutean statis

Untuk informasi lebih lanjut, lihat Hubungkan VPC ke pusat data lokal dalam mode dual-tunnel. Lengkapi langkah-langkah Create a VPN gateway, Create a customer gateway, Create an IPsec connection, dan Configure VPN Gateway routes . Perhatikan poin-poin berikut:

  1. Perangkat strongSwan memiliki satu alamat IP egress publik. Buat satu gateway pelanggan.

  2. Saat membuat koneksi IPsec-VPN, pilih mode Protected Data Flows dan asosiasikan kedua tunnel dengan gateway pelanggan yang sama. Konfigurasikan parameter berikut:

    • Tetapkan Local Network ke blok CIDR VPC di sisi Alibaba Cloud, yaitu 192.168.0.0/16.

    • Tetapkan Remote Network ke blok CIDR pribadi pusat data lokal, yaitu 172.16.0.0/16.

Jika koneksi IPsec-VPN diasosiasikan dengan Transit Router, gunakan perutean dinamis BGP. Perutean statis tidak disarankan untuk skenario ini.

Konfigurasi perangkat strongSwan

Langkah-langkah berikut menggunakan CentOS Stream 9 (64-bit) sebagai contoh. Untuk distribusi lainnya, lihat dokumentasi resmi strongSwan.

1. Konfigurasi kebijakan firewall

Izinkan protokol ESP (protokol IP 50), port UDP 500, dan port UDP 4500 pada perangkat strongSwan.

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
Aturan iptables ini tidak bertahan setelah reboot. Untuk membuatnya permanen, gunakan iptables-save, firewall-cmd --permanent, atau tool manajemen firewall pilihan distribusi Anda.

2. Aktifkan penerusan traffic

Aktifkan IP forwarding agar perangkat strongSwan dapat meneruskan traffic antara jaringan lokal dan VPC. Perintah berikut berlaku langsung dan bertahan setelah reboot.

  1. Tambahkan konfigurasi penerusan ke /etc/sysctl.conf.

    echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
  2. Terapkan konfigurasi.

    sudo sysctl -p
  3. Verifikasi bahwa IP forwarding telah diaktifkan.

    cat /proc/sys/net/ipv4/ip_forward

    Output seharusnya 1.

3. Instal strongSwan

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

4. Konfigurasi dual tunnel

Dual egress—perutean statis dan perutean dinamis BGP

Penting

Dual egress memerlukan antarmuka jaringan virtual XFRM. Verifikasi hal berikut sebelum melanjutkan: strongSwan 5.8.0 atau lebih baru, kernel Linux 4.19 atau lebih baru, iproute2 5.1.0 atau lebih baru, serta dukungan modul XFRM (jalankan lsmod | grep xfrm untuk memeriksa). Untuk informasi lebih lanjut, lihat XFRM Interfaces on Linux.

  1. Tambahkan rute agar traffic ke alamat IPsec 1 melewati eth0 dan traffic ke alamat IPsec 2 melewati 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.

    Verifikasi konektivitas ke kedua alamat IPsec.

    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 eth0 publik.
    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 eth1 publik.
    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

    Antarmuka XFRM tidak bertahan setelah reboot. Anda harus mengonfigurasi skrip startup berikut agar antarmuka dibuat ulang secara otomatis dan strongSwan dimuat ulang setiap kali boot.

    Klik untuk melihat skrip startup.

    1. Buat file skrip.

      vi xfrm.sh
    2. Tambahkan konten berikut dan simpan file.

      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 eth0 publik.
      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 eth1 publik.
      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. Cari jalur mutlak skrip tersebut.

      sudo find / -name xfrm.sh
    4. Tambahkan jalur skrip ke /etc/rc.d/rc.local agar dijalankan saat startup. Ganti /path/to/xfrm.sh dengan jalur aktual yang dikembalikan oleh perintah find sebelumnya.

      echo '/path/to/xfrm.sh' | sudo tee -a /etc/rc.d/rc.local
    5. Berikan izin eksekusi ke file rc.local dan skrip xfrm.sh.

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

    1. Buat cadangan file konfigurasi strongSwan asli.

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

      vi /etc/strongswan/swanctl/swanctl.conf
    3. Tambahkan konfigurasi berikut. Setiap nilai parameter harus sesuai dengan konfigurasi tunnel Alibaba Cloud yang bersesuaian.

      Penting

      Untuk perutean statis, hapus komentar baris updown = /root/connect_1.sh dan updown = /root/connect_2.sh dalam konfigurasi.

      connections {
         vco1 {                            # Tambahkan konfigurasi VPN untuk Tunnel IPsec-VPN 1.
            version = 2                    # Tentukan versi IKE. Harus sama dengan versi IKE Tunnel 1 di sisi Alibaba Cloud. Angka 2 menunjukkan IKEv2.
            local_addrs  = 172.16.20.80       # Alamat IP kartu antarmuka jaringan lokal pertama.
            remote_addrs = 47.XX.XX.151       # Tentukan alamat IP peer Tunnel 1 sebagai alamat IP gateway Tunnel 1 di sisi Alibaba Cloud, yaitu alamat IPsec 1.
            dpd_delay = 10
            rekey_time = 84600             # Tentukan masa aktif SA untuk Tunnel 1. Harus sama dengan masa aktif SA dalam konfigurasi IKE Tunnel 1 di sisi Alibaba Cloud.
            over_time = 1800               
            proposals = aes128-sha1-modp1024  # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 1. Harus sama dengan konfigurasi IKE Tunnel 1 di sisi Alibaba Cloud. group2 sesuai dengan modp1024.
            encap = yes
      
            local {
               auth = psk                  # Tetapkan metode autentikasi sisi lokal ke PSK, yaitu metode kunci pra-bersama.
               id = 120.XX.XX.202             # Alamat IP egress publik lokal pertama. Harus sama dengan RemoteId Tunnel 1 di sisi Alibaba Cloud.
            }
            remote {
               auth = psk                  # Tetapkan metode autentikasi peer ke PSK. Artinya Alibaba Cloud menggunakan metode kunci pra-bersama.
               id = 47.XX.XX.151             # Alamat IPsec 1 di sisi Alibaba Cloud. Harus sama dengan LocalId Tunnel 1 di sisi Alibaba Cloud.
            }
            children {
               vco_child1 {
                  local_ts  = 0.0.0.0/0    # Pemilih traffic berbasis kebijakan untuk mode perutean berbasis tujuan di Alibaba Cloud adalah 0.0.0.0/0.
                  remote_ts = 0.0.0.0/0    # Pemilih traffic berbasis kebijakan untuk mode perutean berbasis tujuan di Alibaba Cloud adalah 0.0.0.0/0.
                  mode = tunnel
                  rekey_time = 85500
                  life_time = 86400        # Tentukan masa aktif SA untuk Tunnel 1. Harus sama dengan masa aktif SA dalam konfigurasi IPsec Tunnel 1 di sisi Alibaba Cloud.
                  dpd_action = restart
                  start_action = start
                  close_action = start
                  esp_proposals = aes128-sha1-modp1024   # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 1. Harus sama dengan konfigurasi IPsec Tunnel 1 di sisi Alibaba Cloud. group2 sesuai dengan modp1024.
      
                  if_id_out = 42           # Tentukan antarmuka egress dan ingress untuk Tunnel 1 sebagai antarmuka jaringan virtual XFRM Tunnel 1.
                  if_id_in = 42
                  #updown = /root/connect_1.sh         # Jalankan skrip /root/connect_1.sh untuk mengonfigurasi rute berdasarkan status UP dan DOWN Tunnel 1. Parameter ini hanya diperlukan saat menggunakan perutean statis.
               }
            }
         }
        vco2 {                             # Tambahkan konfigurasi VPN untuk Tunnel IPsec-VPN 2.
            version = 2                    # Tentukan versi IKE. Harus sama dengan versi IKE Tunnel 2 di sisi Alibaba Cloud. Angka 2 menunjukkan IKEv2.
            local_addrs  = 172.16.21.248        # Alamat IP kartu antarmuka jaringan lokal kedua.
            remote_addrs = 47.XX.XX.87       # Alamat IPsec 2 di sisi Alibaba Cloud.
            dpd_delay = 10
            rekey_time = 84600             # Masa aktif SA. Harus sesuai dengan konfigurasi IKE Tunnel 2.
            over_time = 1800
            proposals = aes128-sha1-modp1024  # group2 = modp1024. Harus sesuai dengan konfigurasi IKE Tunnel 2.
            encap = yes
      
            local {
               auth = psk                  # Autentikasi kunci pra-bersama.
               id = 47.XX.XX.127              # Alamat IP egress publik lokal kedua. Harus sesuai dengan RemoteId Tunnel 2.
            }
            remote {
               auth = psk                  # Tetapkan metode autentikasi peer ke PSK. Artinya Alibaba Cloud menggunakan metode kunci pra-bersama.
               id = 47.XX.XX.87             # Alamat IPsec 2 di sisi Alibaba Cloud. Harus sama dengan LocalId Tunnel 2 di sisi Alibaba Cloud.
            }
            children {
               vco_child2 {
                  local_ts  = 0.0.0.0/0    # Pemilih traffic berbasis kebijakan untuk mode perutean berbasis tujuan di Alibaba Cloud adalah 0.0.0.0/0.
                  remote_ts = 0.0.0.0/0    # Pemilih traffic berbasis kebijakan untuk mode perutean berbasis tujuan di Alibaba Cloud adalah 0.0.0.0/0.
                  mode = tunnel 
                  rekey_time = 85500
                  life_time = 86400        # Tentukan masa aktif SA untuk Tunnel 2. Harus sama dengan masa aktif SA dalam konfigurasi IPsec Tunnel 2 di sisi Alibaba Cloud.
                  dpd_action = restart
                  start_action = start
                  close_action = start
                  esp_proposals = aes128-sha1-modp1024     # Tentukan algoritma enkripsi, algoritma autentikasi, dan grup DH untuk Tunnel 2. Harus sama dengan konfigurasi IPsec Tunnel 2 di sisi Alibaba Cloud. group2 sesuai dengan modp1024.
                  if_id_out = 43           # Tentukan antarmuka egress dan ingress untuk Tunnel 2 sebagai antarmuka jaringan virtual XFRM Tunnel 2.
                  if_id_in = 43
                  #updown = /root/connect_2.sh           # Jalankan skrip /root/connect_2.sh untuk mengonfigurasi rute berdasarkan status UP dan DOWN Tunnel 2. Parameter ini hanya diperlukan saat 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. Kunci harus 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. Kunci harus sama dengan kunci pra-bersama Tunnel 2 di sisi Alibaba Cloud.
         }
      }
  4. Restart proses strongSwan, muat ulang konfigurasi strongSwan, dan periksa status tunnel.

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

    Output berikut mengonfirmasi bahwa koneksi IPsec-VPN telah terbentuk. Namun, konektivitas jaringan memerlukan konfigurasi rute pada langkah berikutnya.

    IPsec-VPN tunnel established between strongSwan and VPN Gateway

  5. Konfigurasi rute.

    Lihat bagian yang sesuai dengan metode perutean yang akan Anda gunakan.

    Perutean dinamis BGP

    Alamat IP BGP yang ditetapkan ke antarmuka XFRM (ip address add) tidak bertahan setelah reboot. Tambahkan perintah ini ke skrip startup XFRM yang dijelaskan sebelumnya. Konfigurasi BGP FRR akan bertahan secara otomatis setelah Anda menjalankan write memory di vtysh (lihat langkah terakhir di bawah).
    1. Konfigurasi alamat IP BGP pada antarmuka XFRM.

      ip address add 169.254.10.2/30 dev ipsec0
      ip address add 169.254.20.2/30 dev ipsec1
    2. Instal FRR (Free Range Routing) untuk dukungan BGP.

      yum install -y frr
    3. Edit vi /etc/frr/daemons dan tetapkan parameter bgpd ke yes untuk mengaktifkan BGP.

      Edit file, lakukan perubahan, lalu simpan.

    4. Aktifkan dan mulai FRR.

      systemctl enable frr
      systemctl restart frr
    5. Tambahkan konfigurasi BGP. Ganti alamat IP dan nomor AS dengan nilai aktual Anda.

      1. Masuk ke antarmuka konfigurasi FRR.

        vtysh
      2. Masuk ke mode konfigurasi.

        config terminal
      3. Tambahkan konfigurasi BGP dengan perintah berikut.

        Ganti nilai berikut dengan alamat aktual Anda:

        • Ganti "169.254.10.1" dan "169.254.20.1" dengan alamat IP BGP aktual tunnel di sisi Alibaba Cloud.

        • Ganti "65535" dengan nomor AS BGP aktual Gateway VPN.

        • Ganti "172.16.20.0/24" dan "172.16.21.0/24" dengan blok CIDR aktual pusat data lokal 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 exit untuk keluar dari mode konfigurasi, lalu jalankan show ip bgp untuk melihat rute BGP.

      Output mengonfirmasi bahwa perangkat strongSwan telah mempelajari rute VPC. Pusat data lokal dan VPC kini dapat berkomunikasi.BGP routes learned from VPC

    7. Simpan konfigurasi BGP agar bertahan setelah FRR direstart.

      write memory

    Perutean statis

    Buat dua skrip yang dipanggil strongSwan untuk mengonfigurasi rute dan mengontrol aliran 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

      Skrip ini menambahkan rute untuk traffic dari pusat data lokal ke VPC Alibaba Cloud (192.168.0.0/16) melalui antarmuka jaringan virtual XFRM Tunnel 1 saat tunnel aktif. Nilai metric rute ini diatur ke 100, memberikan prioritas lebih tinggi daripada rute Tunnel 2. Jika Tunnel 1 mati, skrip mencabut 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

      Skrip ini menambahkan rute untuk traffic dari pusat data lokal ke VPC Alibaba Cloud (192.168.0.0/16) melalui antarmuka jaringan virtual XFRM Tunnel 2 saat tunnel aktif. Nilai metric rute ini diatur ke 101, memberikan prioritas lebih rendah daripada rute Tunnel 1. Jika Tunnel 2 mati, skrip mencabut rute tersebut.

    5. Berikan izin eksekusi ke kedua skrip.

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

      sudo systemctl restart strongswan
    7. Verifikasi rute.

      route -n

      Static routes configured successfully

Single egress—perutean dinamis BGP

Penting

Perutean dinamis BGP memerlukan antarmuka jaringan virtual XFRM. Verifikasi hal berikut: strongSwan 5.8.0 atau lebih baru, kernel Linux 4.19 atau lebih baru, iproute2 5.1.0 atau lebih baru, serta dukungan modul XFRM (jalankan lsmod | grep xfrm untuk memeriksa). 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 eth0 publik.
    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 eth0 publik.
    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

    Antarmuka XFRM tidak bertahan setelah reboot. Anda harus mengonfigurasi skrip startup berikut agar antarmuka dibuat ulang secara otomatis dan strongSwan dimuat ulang setiap kali boot.

    Klik untuk melihat skrip startup.

    1. Buat file 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 eth0 publik.
      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 eth0 publik.
      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. Cari jalur mutlak skrip tersebut.

      sudo find / -name xfrm.sh
    4. Tambahkan jalur skrip ke /etc/rc.d/rc.local agar dijalankan saat startup. Ganti /path/to/xfrm.sh dengan jalur aktual yang dikembalikan oleh perintah find sebelumnya.

      echo '/path/to/xfrm.sh' | sudo tee -a /etc/rc.d/rc.local
    5. Berikan izin eksekusi ke file rc.local dan skrip xfrm.sh.

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

    1. Buat cadangan file konfigurasi strongSwan asli.

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

      vi /etc/strongswan/swanctl/swanctl.conf
    3. Konfigurasi berikut mirip dengan contoh dual-egress. Hanya perbedaan yang diberi anotasi. Tambahkan dan simpan konfigurasi berikut.

      connections {
         vco1 {
            version = 2
            local_addrs  = 172.16.20.80    # Kedua tunnel menggunakan antarmuka eth0 yang sama (single egress).
            remote_addrs = 47.XX.XX.151
            dpd_delay = 10
            rekey_time = 84600
            over_time = 1800
            proposals = aes128-sha1-modp1024
            encap = yes
      
            local {
               auth = psk
               id = 120.XX.XX.202
            }
            remote {
               auth = psk
               id = 47.XX.XX.151
            }
            children {
               vco_child1 {
                  local_ts  = 0.0.0.0/0
                  remote_ts = 0.0.0.0/0
                  mode = tunnel
                  rekey_time = 85500
                  life_time = 86400
                  dpd_action = restart
                  start_action = start
                  close_action = start
                  esp_proposals = aes128-sha1-modp1024
      
                  if_id_out = 42
                  if_id_in = 42
               }
            }
         }
        vco2 {
            version = 2
            local_addrs  = 172.16.20.80    # Sama dengan vco1 (single egress).
            remote_addrs = 47.XX.XX.87
            dpd_delay = 10
            rekey_time = 84600
            over_time = 1800
            proposals = aes128-sha1-modp1024
            encap = yes
      
            local {
               auth = psk
               id = 120.XX.XX.202          # Alamat IP egress publik yang sama dengan vco1 (single egress).
            }
            remote {
               auth = psk
               id = 47.XX.XX.87
            }
            children {
               vco_child2 {
                  local_ts  = 0.0.0.0/0
                  remote_ts = 0.0.0.0/0
                  mode = tunnel
                  rekey_time = 85500
                  life_time = 86400
                  dpd_action = restart
                  start_action = start
                  close_action = start
                  esp_proposals = aes128-sha1-modp1024
                  if_id_out = 43
                  if_id_in = 43
               }
            }
         }
      }
      
      secrets {
         ike-vco1 {
            id = 47.XX.XX.151
            secret = ChangeMe***
         }
         ike-vco2 {
            id = 47.XX.XX.87
            secret = ChangeMe***
         }
      }
  3. Restart proses strongSwan, muat ulang konfigurasi strongSwan, dan periksa status tunnel.

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

    Output berikut mengonfirmasi bahwa koneksi IPsec-VPN telah terbentuk. Konfigurasikan rute pada langkah berikutnya untuk mengaktifkan konektivitas jaringan.

    Single-egress IPsec-VPN tunnel established

  4. Konfigurasi perutean dinamis BGP.

    Alamat IP BGP yang ditetapkan ke antarmuka XFRM (ip address add) tidak bertahan setelah reboot. Tambahkan perintah ini ke skrip startup XFRM yang dijelaskan sebelumnya. Konfigurasi BGP FRR akan bertahan secara otomatis setelah Anda menjalankan write memory di vtysh (lihat langkah terakhir di bawah).
    1. Konfigurasi alamat IP BGP pada antarmuka XFRM.

      ip address add 169.254.10.2/30 dev ipsec0
      ip address add 169.254.20.2/30 dev ipsec1
    2. Instal FRR (Free Range Routing) untuk dukungan BGP.

      yum install -y frr
    3. Edit vi /etc/frr/daemons dan tetapkan parameter bgpd ke yes untuk mengaktifkan BGP.

      Edit file, lakukan perubahan, lalu simpan.

    4. Aktifkan dan mulai FRR.

      systemctl enable frr
      systemctl restart frr
    5. Tambahkan konfigurasi BGP. Ganti alamat IP dan nomor AS dengan nilai aktual Anda.

      1. Masuk ke antarmuka konfigurasi FRR.

        vtysh
      2. Masuk ke mode konfigurasi.

        config terminal
      3. Tambahkan konfigurasi BGP dengan perintah berikut.

        Ganti nilai berikut dengan alamat aktual Anda:

        • Ganti "169.254.10.1" dan "169.254.20.1" dengan alamat IP BGP aktual tunnel di sisi Alibaba Cloud.

        • Ganti "65535" dengan nomor AS BGP aktual Gateway VPN.

        • Ganti "172.16.20.0/24" dan "172.16.21.0/24" dengan blok CIDR aktual pusat data lokal 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 exit untuk keluar dari mode konfigurasi, lalu jalankan show ip bgp untuk melihat rute BGP.

      Output mengonfirmasi bahwa perangkat strongSwan telah mempelajari rute VPC. Pusat data lokal dan VPC kini dapat berkomunikasi.BGP routes learned from VPC

    7. Simpan konfigurasi BGP agar bertahan setelah FRR direstart.

      write memory

Single egress—perutean statis

Penting

Dalam mode perutean statis single-egress, Alibaba Cloud dapat secara proaktif mengalihkan traffic ke tunnel cadangan jika mendeteksi ancaman pada tunnel aktif. Pantau penghitung XfrmInTmplMismatch di /proc/net/xfrm_stat. Jika nilai ini terus meningkat, traffic telah dialihkan. Sesuaikan parameter priority untuk tunnel cadangan di /etc/strongswan/swanctl/swanctl.conf agar traffic lokal dialihkan melalui tunnel cadangan.

  1. Buat cadangan file konfigurasi strongSwan asli.

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

    vi /etc/strongswan/swanctl/swanctl.conf
  3. Konfigurasi berikut mirip dengan contoh dual-egress. Perbedaan utama: pemilih traffic berbasis kebijakan (local_ts/remote_ts) dan priority untuk failover aktif/cadangan. Tambahkan dan simpan konfigurasi berikut.

    connections {
       vco1 {
          version = 2
          local_addrs  = 172.16.20.80
          remote_addrs = 47.XX.XX.151
          dpd_delay = 10
          rekey_time = 84600
          over_time = 1800
          proposals = aes128-sha1-modp1024
          encap = yes
    
          local {
             auth = psk
             id = 120.XX.XX.202
          }
          remote {
             auth = psk
             id = 47.XX.XX.151
          }
          children {
             vco_child1 {
                local_ts  = 172.16.0.0/16   # Berbasis kebijakan: blok CIDR pribadi pusat data lokal.
                remote_ts = 192.168.0.0/16  # Berbasis kebijakan: blok CIDR VPC.
                mode = tunnel
                rekey_time = 85500
                life_time = 86400
                dpd_action = restart
                start_action = start
                close_action = start
                esp_proposals = aes128-sha1-modp1024
                priority = 1                # Tunnel aktif (prioritas lebih tinggi).
             }
          }
       }
      vco2 {
          version = 2
          local_addrs  = 172.16.20.80
          remote_addrs = 47.XX.XX.87
          dpd_delay = 10
          rekey_time = 84600
          over_time = 1800
          proposals = aes128-sha1-modp1024
          encap = yes
    
          local {
             auth = psk
             id = 120.XX.XX.202
          }
          remote {
             auth = psk
             id = 47.XX.XX.87
          }
          children {
             vco_child2 {
                local_ts  = 172.16.0.0/16   # Berbasis kebijakan: blok CIDR pribadi pusat data lokal.
                remote_ts = 192.168.0.0/16  # Berbasis kebijakan: blok CIDR VPC.
                mode = tunnel
                rekey_time = 85500
                life_time = 86400
                dpd_action = restart
                start_action = start
                close_action = start
                esp_proposals = aes128-sha1-modp1024
                priority = 2                # Tunnel cadangan (prioritas lebih rendah).
             }
          }
       }
    }
    
    secrets {
       ike-vco1 {
          id = 47.XX.XX.151
          secret = ChangeMe***
       }
       ike-vco2 {
          id = 47.XX.XX.87
          secret = ChangeMe***
       }
    }
  4. Restart proses strongSwan, muat ulang konfigurasi strongSwan, dan periksa status tunnel.

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

    Output berikut mengonfirmasi bahwa koneksi IPsec-VPN telah terbentuk. Pusat data lokal dan VPC kini dapat berkomunikasi.

    Single-egress static routing tunnel established

5. Verifikasi konektivitas dan ketersediaan tinggi

  1. Verifikasi konektivitas antara pusat data lokal dan VPC.

    Dari klien di pusat data lokal, ping instans ECS di VPC. Paket balasan echo mengonfirmasi koneksi berhasil.

    ping <IP_address_of_an_ECS_instance_in_the_VPC>
  2. Verifikasi ketersediaan tinggi koneksi IPsec-VPN.

    1. Saat ping sedang berjalan, putuskan tunnel aktif.

      Salah satu cara memutus tunnel adalah dengan mengubah kunci pra-bersamanya sehingga kunci di kedua ujung tidak lagi cocok.

    2. Pantau traffic ping setelah memutus tunnel aktif. Gangguan singkat yang diikuti pemulihan mengonfirmasi bahwa traffic secara otomatis beralih ke tunnel cadangan.

FAQ

Bagaimana cara mengonfigurasi strongSwan ketika koneksi IPsec-VPN diasosiasikan dengan Transit Router?

Konfigurasi strongSwan sama seperti yang dijelaskan dalam topik ini. Gunakan perutean dinamis BGP untuk skenario Transit Router. Setelah dikonfigurasi, perangkat strongSwan mempelajari rute VPC melalui BGP, dan kedua tunnel secara otomatis membentuk tautan Equal-Cost Multi-Path (ECMP).ECMP routes through Transit Router

Apakah strongSwan mendukung IKEv1?

Ya. Tetapkan version = 1 di file /etc/strongswan/swanctl/swanctl.conf.

Bagaimana cara menentukan Protected Data Flows (aliran data yang diminati)?

Tetapkan bidang local_ts dan remote_ts di /etc/strongswan/swanctl/swanctl.conf. Pastikan mode Protected Data Flows juga dikonfigurasi di sisi Alibaba Cloud.

Untuk menentukan beberapa blok CIDR di salah satu sisi, perangkat strongSwan dan koneksi IPsec-VPN Alibaba Cloud harus menggunakan IKEv2.

children {
         vco_child1 {
            local_ts  = 172.16.20.0/24,172.16.21.0/24  # Blok CIDR pusat data lokal.
            remote_ts = 192.168.0.0/16    # Blok CIDR VPC di sisi Alibaba Cloud.
         }
}

Bagaimana cara mengonfigurasi strongSwan ketika antarmuka jaringan memiliki alamat IP publik (non-NAT)?

Ubah bidang local_addrs untuk setiap tunnel di /etc/strongswan/swanctl/swanctl.conf menjadi alamat IP publik. Semua konfigurasi lain tetap sama.

connections {
   vco1 {                            
      local_addrs  = 1.1.XX.XX     # Tentukan alamat IP publik yang terikat pada kartu antarmuka jaringan perangkat strongSwan.
   }
}

Bagaimana cara memecahkan masalah kegagalan negosiasi tunnel?

Jalankan journalctl -u strongswan -f atau swanctl --log untuk melihat log negosiasi real-time. Penyebab umum kegagalan negosiasi meliputi:

  • Ketidakcocokan kunci pra-bersama antara perangkat strongSwan dan Alibaba Cloud

  • Ketidakcocokan algoritma (enkripsi, autentikasi, atau grup DH)

  • Ketidakcocokan versi IKE (IKEv1 vs. IKEv2)

  • Firewall memblokir port UDP 500 atau 4500, atau protokol ESP (protokol IP 50)

Mengapa tunnel sudah terbentuk tetapi traffic tidak mengalir?

Jika swanctl --list-sas menunjukkan tunnel yang sudah terbentuk tetapi ping gagal, periksa hal berikut:

  • Verifikasi bahwa IP forwarding diaktifkan: cat /proc/sys/net/ipv4/ip_forward (output seharusnya 1)

  • Verifikasi kebijakan dan status XFRM: ip xfrm policy dan ip xfrm state

  • Verifikasi tabel rute: ip route show

  • Verifikasi bahwa rantai FORWARD iptables mengizinkan traffic: iptables -L FORWARD -n

Bagaimana cara mengatasi tunnel yang sering terputus (timeout DPD)?

Timeout Dead Peer Detection (DPD) menyebabkan tunnel sering terputus ketika jaringan antar titik akhir tidak stabil. Untuk mengatasinya:

  • Tingkatkan dpd_delay (misalnya, dari 10 menjadi 30) di /etc/strongswan/swanctl/swanctl.conf untuk mengurangi sensitivitas terhadap kehilangan paket sementara

  • Pastikan pengaturan DPD di kedua ujung kompatibel

  • Periksa stabilitas jaringan antar titik akhir (kehilangan paket dan latensi) menggunakan mtr atau ping -c 100

Bagaimana cara mengonfigurasi tunnel tunggal?

Penting

Jika VPN Gateway yang Anda beli hanya mendukung koneksi IPsec-VPN single-tunnel, kami menyarankan Anda upgrade koneksi IPsec-VPN ke mode dual-tunnel. Koneksi IPsec-VPN dalam mode dual-tunnel mendukung pemulihan bencana antar zona, yang meningkatkan ketersediaan tinggi jaringan.

Panduan konfigurasi single-tunnel (untuk instans VPN Gateway lama)

Bagian ini berlaku untuk instans VPN Gateway yang hanya mendukung koneksi IPsec-VPN single-tunnel. Jika instans Anda mendukung mode dual-tunnel, gunakan konfigurasi yang dijelaskan di bagian utama di atas.

Konfigurasi single-tunnel

Contoh skenario

Gambar berikut menunjukkan penerapan single-tunnel di mana perangkat strongSwan membuat koneksi IPsec-VPN dengan Alibaba Cloud.

image

Perencanaan alamat IP

Sisi pusat data lokal

Sisi 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.30.0/24

    • Blok CIDR vSwitch 4: 192.168.40.0/24

    • Blok CIDR vSwitch 5: 192.168.50.0/24

  • VPN Gateway

    • Alamat IPsec: 47.XX.XX.151

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

Perencanaan parameter VPN

Konfigurasi IKE dan IPsec pada perangkat strongSwan harus sesuai dengan konfigurasi di sisi Alibaba Cloud.

Kunci pra-bersama: ChangeMe***

Parameter

IKE

IPsec

Versi / Mode

IKEv2 / main

-

Algoritma enkripsi

aes128

aes128

Algoritma autentikasi

sha1

sha1

Grup DH

group2 (modp1024)

group2 (modp1024)

Masa aktif SA (detik)

86400

86400

Persiapkan sisi Alibaba Cloud

Sebelum mengonfigurasi perangkat strongSwan, lengkapi hal berikut di sisi Alibaba Cloud: Create a VPN gateway, Create a customer gateway, Create an IPsec-VPN connection, dan Configure routes for the VPN gateway. Untuk informasi lebih lanjut, lihat Hubungkan VPC ke pusat data lokal dalam mode single-tunnel.

Saat membuat koneksi IPsec-VPN, tetapkan Routing Mode ke Protected Data Flows:

  • Tetapkan Local Network ke blok CIDR VPC di sisi Alibaba Cloud, yaitu 192.168.0.0/16.

  • Tetapkan Remote Network ke blok CIDR pribadi pusat data lokal, yaitu 172.16.0.0/16.

Konfigurasi perangkat strongSwan

Langkah-langkah berikut menggunakan CentOS Stream 9 (64-bit) sebagai contoh. Untuk distribusi lainnya, lihat dokumentasi resmi strongSwan.

1. Konfigurasi kebijakan firewall

Izinkan protokol ESP (protokol IP 50), port UDP 500, dan port UDP 4500 pada perangkat strongSwan.

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
Aturan iptables ini tidak bertahan setelah reboot. Untuk membuatnya permanen, gunakan iptables-save, firewall-cmd --permanent, atau tool manajemen firewall pilihan distribusi Anda.

2. Aktifkan penerusan traffic

Aktifkan IP forwarding agar perangkat strongSwan dapat meneruskan traffic antara jaringan lokal dan VPC. Perintah berikut berlaku langsung dan bertahan setelah reboot.

  1. Tambahkan konfigurasi penerusan ke /etc/sysctl.conf.

    echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
  2. Terapkan konfigurasi.

    sudo sysctl -p
  3. Verifikasi bahwa IP forwarding telah diaktifkan.

    cat /proc/sys/net/ipv4/ip_forward

    Output seharusnya 1.

3. Instal strongSwan

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

4. Konfigurasi tunnel

Konfigurasikan tunnel berdasarkan pemilih traffic berbasis kebijakan strongSwan.

  1. Buat cadangan file konfigurasi strongSwan asli.

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

    vi /etc/strongswan/swanctl/swanctl.conf
  3. Konfigurasi berikut mirip dengan contoh dual-tunnel. Perbedaan utama: koneksi tunggal, pemilih traffic berbasis kebijakan, dan tanpa antarmuka XFRM. Tambahkan dan simpan konfigurasi berikut.

    connections {
       vco1 {
          version = 2
          local_addrs  = 172.16.20.80      # Alamat IP pribadi lokal.
          remote_addrs = 47.XX.XX.151      # Alamat IPsec di sisi Alibaba Cloud.
          dpd_delay = 10
          rekey_time = 84600
          over_time = 1800
          proposals = aes128-sha1-modp1024
          encap = yes
    
          local {
             auth = psk
             id = 120.XX.XX.202            # Alamat IP egress publik lokal (NAT-mapped).
          }
          remote {
             auth = psk
             id = 47.XX.XX.151
          }
          children {
             vco_child1 {
                local_ts  = 172.16.0.0/16     # Berbasis kebijakan: blok CIDR pribadi pusat data lokal.
                remote_ts = 192.168.0.0/16    # Berbasis kebijakan: blok CIDR VPC.
                mode = tunnel
                rekey_time = 85500
                life_time = 86400
                dpd_action = restart
                start_action = start
                close_action = start
                esp_proposals = aes128-sha1-modp1024
             }
          }
       }
    }
    
    secrets {
       ike-vco1 {
          id = 47.XX.XX.151
          secret = ChangeMe***
       }
    }
    
  4. Restart proses strongSwan dan muat ulang konfigurasi strongSwan.

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

    watch swanctl --list-sas 

    image

    Seperti yang ditunjukkan pada gambar, koneksi IPsec-VPN berhasil dibentuk antara perangkat strongSwan dan gateway VPN.

5. Verifikasi konektivitas

Verifikasi konektivitas antara perangkat strongSwan dan VPC:

Dari perangkat strongSwan, ping instans ECS di VPC. Paket balasan echo mengonfirmasi koneksi berhasil.

ping <IP_address_of_an_ECS_instance_in_the_VPC>