All Products
Search
Document Center

VPN Gateway:Memulai: Koneksi IPsec ke router transit

Last Updated:Apr 22, 2026

Tutorial ini menjelaskan cara menggunakan perangkat lunak open source strongSwan untuk membuat koneksi IPsec ke Transit Router. Pengaturan ini menghubungkan IDC lokal Anda ke Virtual Private Cloud (VPC) di Alibaba Cloud.

Skenario

Sebuah perusahaan memiliki VPC di wilayah China (Hangzhou) dan perlu menghubungkan IDC lokalnya ke VPC tersebut melalui koneksi IPsec. Alih-alih melampirkan koneksi IPsec langsung ke gateway VPN, skenario ini melampirkannya ke Transit Router. Dengan menggunakan Transit Router dari Cloud Enterprise Network (CEN) untuk manajemen jaringan terpusat, penskalaan menjadi lebih fleksibel—misalnya, memungkinkan penambahan VPC lain atau pembuatan koneksi lintas wilayah di masa depan.

Dalam skenario ini, IDC lokal memiliki satu alamat IP publik dan membuat koneksi IPsec dual-tunnel dengan Alibaba Cloud.

Perencanaan sumber daya

  • Cloud: Virtual Private Cloud (VPC) dengan blok CIDR 10.0.0.0/16 di wilayah China (Hangzhou).

    • vSwitch 1: Di zona ketersediaan H, dengan blok CIDR 10.0.0.0/24.

    • vSwitch 2: Di zona ketersediaan J, dengan blok CIDR 10.0.2.0/24.

    • Instance ECS: Ditempatkan di vSwitch dengan alamat IP 10.0.0.1 untuk pengujian konektivitas.

    • Instans CEN: Digunakan untuk meng-host Transit Router.

    • Transit Router: Dibuat di wilayah China (Hangzhou), dengan blok CIDR TR 10.10.10.0/24. Blok CIDR ini tidak boleh tumpang tindih dengan blok CIDR VPC atau IDC lokal.

  • Lokal: IDC lokal dengan blok CIDR 172.16.0.0/16.

    • Perangkat strongSwan: Alamat IP privat 172.16.0.1.

    • Alamat IP publik: XX.XX.3.3.

  • Algoritma enkripsi: IKEv2 / AES-128-CBC / SHA-1 / DH Group 2. Parameter enkripsi harus identik di kedua ujung tunnel.

  • Metode perutean: perutean berbasis tujuan. Anda akan menambahkan route statis ke tabel rute Transit Router untuk mengarahkan lalu lintas yang ditujukan ke IDC lokal ke koneksi IPsec.

Prasyarat

  • Blok CIDR VPC dan IDC lokal tidak tumpang tindih.

  • VPC telah dibuat, dengan dua vSwitch di zona ketersediaan berbeda. Setidaknya satu instance ECS ada di dalam VPC untuk menguji konektivitas.

  • Instans CEN dan Transit Router (TR) telah dibuat, serta kondisi berikut terpenuhi:

  • Server Linux ditempatkan di IDC lokal Anda. Tutorial ini menggunakan CentOS Stream 9 sebagai contoh. Server harus memiliki alamat IP publik. Anda akan menginstal strongSwan pada server ini untuk bertindak sebagai perangkat gateway lokal.

Langkah 1: Buat customer gateway

Customer gateway menyimpan alamat IP publik perangkat gateway lokal Anda di Alibaba Cloud. Karena IDC lokal dalam skenario ini hanya memiliki satu alamat IP publik, Anda hanya perlu membuat satu customer gateway.

  1. Buka halaman VPN Gateway. Di panel navigasi kiri, klik Customer Gateways.

  2. Di bilah navigasi atas, pilih wilayah China (Hangzhou).

  3. Klik Create Customer Gateway dan konfigurasikan parameter berikut:

    Name: Masukkan nama untuk customer gateway, misalnya cgw-idc.

    IP Address: Masukkan alamat IP publik IDC lokal Anda (XX.XX.3.3).

Langkah 2: Buat koneksi IPsec

  1. Di panel navigasi kiri konsol VPN Gateway, klik IPsec Connections.

  2. Klik Bind CEN dan konfigurasikan parameter berikut:

    • Name: Masukkan nama untuk resource, misalnya ipsec-demo.

    • Region: Pilih China (Hangzhou).

    • Gateway Type: Pilih Public.

    • Bind CEN: Pilih Same Account.

    • Associate Resource: Pilih Transit Router.

    • CEN Instance ID: Pilih instans CEN yang telah Anda buat sebagai bagian dari prasyarat.

    • Routing Mode: Pilih Destination Routing Mode. Nanti Anda akan menambahkan route statis ke tabel rute Transit Router untuk mengontrol penerusan lalu lintas.

    • Effective Immediately: Pilih Yes. Start negotiations after the configuration is completed.. Alibaba Cloud kemudian akan memulai negosiasi.

    • Advanced Configuration (including route table association and route forwarding): Pilih semua opsi: Automatic Advertising, Automatically Associate with Default Route Table of Transit Router, dan Automatically Advertise System Routes to Default Route Table of Transit Router.

  3. Konfigurasikan parameter tunnel:

    • Tunnel 1 (Primary):

      • Customer Gateways: Pilih customer gateway yang dibuat di Langkah 1.

      • Pre-Shared Key: Kata sandi yang digunakan untuk otentikasi timbal balik antara kedua ujung tunnel. Gunakan kata sandi yang kuat. Kunci harus identik pada konfigurasi cloud dan lokal.

    • Tunnel 1 (Backup):

      • Customer Gateways: Pilih customer gateway yang sama seperti Tunnel 1. Dalam skenario ini, Internet Data Center (IDC) hanya memiliki satu egress publik.

      • Pre-Shared Key: Gunakan kunci yang sama seperti Tunnel 1.

        Pertahankan nilai default untuk parameter enkripsi lainnya. Untuk menentukan algoritma secara manual, bentangkan Encryption Configuration dan lakukan perubahan yang diperlukan.
  4. Klik OK. Saat diminta untuk memublikasikan rute, klik Cancel untuk saat ini.

    Koneksi IPsec memerlukan waktu sekitar 5 menit untuk diinisialisasi. Selama statusnya Preparing, Anda tidak dapat mengonfigurasi rute. Anda dapat mencatat alamat IP publik sisi cloud dan mengonfigurasi rute di Langkah 3.
  5. Catat alamat IP publik kedua tunnel sisi cloud. Anda akan membutuhkannya untuk mengonfigurasi strongSwan.

    Kembali ke daftar IPsec Connections dan temukan koneksi IPsec yang baru saja Anda buat. Di kolom Gateway IP Address, catat IPsec Address 1: dan IPsec Address 2:. Tutorial ini menggunakan XX.XX.1.1 dan XX.XX.2.2 sebagai contoh.

Langkah 3: Tambahkan route statis ke TR

Karena Anda menggunakan perutean berbasis tujuan, Anda harus menambahkan rute secara manual ke blok CIDR IDC lokal di tabel rute Transit Router.

  1. Buka konsol Cloud Enterprise Network dan klik ID instans CEN Anda.

  2. Di tab Transit Router, temukan Transit Router di wilayah China (Hangzhou) dan klik ID-nya untuk membuka halaman detail.

  3. Buka tab Route Table. Tabel rute sistem ditampilkan secara default.

  4. Di tab Route Entry tabel rute sistem, klik Add Route Entry.

    • Destination CIDR: Masukkan blok CIDR IDC lokal, 172.16.0.0/16.

    • Blackhole Route: Pilih No.

    • Next Hop: Pilih koneksi instance jaringan untuk koneksi VPN. Koneksi ini dibuat secara otomatis setelah koneksi IPsec dilampirkan ke Transit Router.

  5. Klik OK.

    Setelah rute ditambahkan, Anda dapat melihat route statis di tabel rute dengan blok CIDR tujuan 172.16.0.0/16 dan lompatan berikutnya diatur ke koneksi IPsec.

    Entri rute ini mengarahkan lalu lintas yang ditujukan ke IDC lokal dari Transit Router ke tunnel IPsec. Rute di sisi VPC dikonfigurasi secara otomatis melalui fitur route propagation Transit Router dan tidak memerlukan konfigurasi manual.

Langkah 4: Konfigurasi perangkat strongSwan

Penting

Informasi tentang produk pihak ketiga dalam dokumen ini hanya untuk referensi. Alibaba Cloud tidak memberikan jaminan eksplisit maupun implisit mengenai kinerja atau keandalan produk pihak ketiga, maupun dampak potensial dari pengoperasiannya.

Langkah-langkah berikut menunjukkan cara mengonfigurasi strongSwan pada sistem operasi CentOS Stream 9 64-bit. Untuk sistem operasi lain, lihat dokumentasi resmi strongSwan.

1. Konfigurasi aturan firewall

Di perangkat strongSwan, izinkan lalu lintas masuk untuk protokol ESP (nomor protokol IP 50), Port UDP 500, dan Port UDP 4500 dari dua alamat IPsec sisi cloud.

Perintah berikut menggunakan iptables sebagai contoh. Sesuaikan perintah berdasarkan tool firewall yang Anda gunakan.

iptables -I INPUT -s XX.XX.1.1,XX.XX.2.2 -p esp -j ACCEPT  
iptables -I INPUT -s XX.XX.1.1,XX.XX.2.2 -p udp --dport 500 -j ACCEPT
iptables -I INPUT -s XX.XX.1.1,XX.XX.2.2 -p udp --dport 4500 -j ACCEPT

2. Aktifkan IP forwarding

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sudo sysctl -p

3. Instal strongSwan

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

4. Buat antarmuka XFRM dan skrip updown

Dalam skenario dual-tunnel, Anda perlu membedakan lalu lintas antar tunnel. Buat antarmuka virtual XFRM untuk menghindari konflik kebijakan perutean kernel.

# Buat antarmuka XFRM untuk Tunnel 1 dan Tunnel 2 masing-masing
sudo ip link add xfrm1 type xfrm dev eth0 if_id 1
sudo ip link add xfrm2 type xfrm dev eth0 if_id 2
sudo ip link set xfrm1 up
sudo ip link set xfrm2 up

# Tambahkan rute ECMP untuk menyeimbangkan beban traffic ke blok CIDR cloud di kedua tunnel
sudo ip route add 10.0.0.0/16 nexthop dev xfrm1 weight 1 nexthop dev xfrm2 weight 1

Buat skrip updown untuk secara otomatis mematikan antarmuka XFRM yang sesuai saat tunnel terputus. Hal ini memungkinkan kernel Linux mengalihkan lalu lintas ke tunnel aktif.

sudo tee /usr/local/bin/xfrm-updown.sh > /dev/null << 'EOF'
#!/bin/bash
XFRM_IF="xfrm${PLUTO_IF_ID_IN}"
case "${PLUTO_VERB}" in
    up-client)
        ip link set "${XFRM_IF}" up 2>/dev/null
        ;;
    down-client)
        ip link set "${XFRM_IF}" down 2>/dev/null
        ;;
esac
EOF
sudo chmod +x /usr/local/bin/xfrm-updown.sh
Untuk memastikan antarmuka dan rute XFRM tetap aktif setelah reboot, tambahkan perintah ke skrip startup.

5. Konfigurasi strongSwan

  1. Buat cadangan file konfigurasi asli:

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

    vi /etc/strongswan/swanctl/swanctl.conf
  3. Tambahkan dan simpan konfigurasi berikut. Ganti alamat IP dan kunci contoh dengan nilai aktual Anda.

    # Konfigurasi IPsec-VPN dual-tunnel strongSwan
    # Untuk koneksi IPsec yang dilampirkan ke Transit Router Alibaba Cloud
    # dengan satu IP publik lokal, menggunakan perutean berbasis tujuan.
    #
    # Hanya ubah parameter yang ditandai "(Modify)". Pertahankan nilai default untuk parameter lainnya.
    # Konfigurasi ini menggunakan antarmuka XFRM (if_id) untuk membedakan traffic tunnel dan ECMP untuk load balancing.
    
    connections {
    
       # === Tunnel 1 ===
       tunnel1 {
          version = 2
          dpd_delay = 10s
          rekey_time = 86400s
          proposals = aes128-sha1-modp1024
    
          local_addrs  = 172.16.0.1               # (Modify) IP privat NIC server strongSwan. Di lingkungan NAT, gunakan IP privat.
          local {
             auth = psk
             id = XX.XX.3.3                         # (Modify) Alamat IP publik lokal.
          }
    
          remote_addrs = XX.XX.1.1                  # (Modify) Alamat IP publik Tunnel 1 di Alibaba Cloud.
          remote {
             auth = psk
             id = XX.XX.1.1                         # (Modify) IP publik yang sama seperti remote_addrs di atas.
          }
    
          children {
             tunnel1-child {
                local_ts  = 0.0.0.0/0
                remote_ts = 0.0.0.0/0
                mode = tunnel
                esp_proposals = aes128-sha1-modp1024
                dpd_action = restart
                start_action = start
                close_action = start
                updown = /usr/local/bin/xfrm-updown.sh
                if_id_in = 1                        # Sesuai dengan antarmuka xfrm1.
                if_id_out = 1
             }
          }
    
          if_id_in = 1
          if_id_out = 1
       }
    
       # === Tunnel 2 ===
       tunnel2 {
          version = 2
          dpd_delay = 10s
          rekey_time = 86400s
          proposals = aes128-sha1-modp1024
    
          local_addrs  = 172.16.0.1               # (Modify) IP privat yang sama seperti Tunnel 1.
          local {
             auth = psk
             id = XX.XX.3.3                         # (Modify) IP publik lokal yang sama seperti Tunnel 1.
          }
    
          remote_addrs = XX.XX.2.2                  # (Modify) Alamat IP publik Tunnel 2 di Alibaba Cloud.
          remote {
             auth = psk
             id = XX.XX.2.2                         # (Modify) IP publik yang sama seperti remote_addrs di atas.
          }
    
          children {
             tunnel2-child {
                local_ts  = 0.0.0.0/0
                remote_ts = 0.0.0.0/0
                mode = tunnel
                esp_proposals = aes128-sha1-modp1024
                dpd_action = restart
                start_action = start
                close_action = start
                updown = /usr/local/bin/xfrm-updown.sh
                if_id_in = 2                        # Sesuai dengan antarmuka xfrm2.
                if_id_out = 2
             }
          }
    
          if_id_in = 2
          if_id_out = 2
       }
    }
    
    secrets {
       ike-tunnel1 {
          id-1 = XX.XX.3.3                          # (Modify) Alamat IP publik lokal.
          id-2 = XX.XX.1.1                          # (Modify) Alamat IP publik Tunnel 1 di Alibaba Cloud.
          secret = "your-psk-here"                  # (Modify) Kunci pra-bersama untuk Tunnel 1. Harus sesuai dengan kunci di Alibaba Cloud.
       }
       ike-tunnel2 {
          id-1 = XX.XX.3.3                          # (Modify) Alamat IP publik lokal.
          id-2 = XX.XX.2.2                          # (Modify) Alamat IP publik Tunnel 2 di Alibaba Cloud.
          secret = "your-psk-here"                  # (Modify) Kunci pra-bersama untuk Tunnel 2. Harus sesuai dengan kunci di Alibaba Cloud.
       }
    }
    Penting
    • Parameter if_id_in dan if_id_out mengikat setiap tunnel ke antarmuka XFRM yang sesuai (xfrm1 atau xfrm2), memastikan lalu lintas dari kedua tunnel tidak saling mengganggu.

    • Selector traffic local_ts dan remote_ts diatur ke 0.0.0.0/0. Tabel rute pada antarmuka XFRM menentukan lalu lintas mana yang masuk ke tunnel. Dalam perutean berbasis tujuan, selector traffic sisi cloud juga diatur ke 0.0.0.0/0.

6. Jalankan strongSwan dan verifikasi status tunnel

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

Jika kedua tunnel menunjukkan status ESTABLISHED dan status CHILD_SA adalah INSTALLED, koneksi IPsec antara perangkat strongSwan dan Alibaba Cloud berhasil dibuat.

# Contoh output yang diharapkan (disingkat)
tunnel1: #1, ESTABLISHED, IKEv2
  tunnel1-child: #1, reqid 1, INSTALLED, TUNNEL-in-UDP, ESP:AES_CBC-128/HMAC_SHA1_96
tunnel2: #2, ESTABLISHED, IKEv2
  tunnel2-child: #2, reqid 2, INSTALLED, TUNNEL-in-UDP, ESP:AES_CBC-128/HMAC_SHA1_96

Verifikasi koneksi

Uji konektivitas

  1. Pertama, pastikan bahwa aturan grup keamanan untuk instance ECS mengizinkan lalu lintas ICMP. Kemudian, login ke perangkat strongSwan dan jalankan perintah berikut untuk ping instance ECS:

    ping 10.0.0.1

    Jika Anda menerima balasan, koneksi antara VPC dan IDC lokal telah berhasil dibuat.

  2. Pertama, pastikan bahwa perangkat strongSwan atau server lokal lainnya mengizinkan lalu lintas ICMP. Kemudian, login ke instance ECS (10.0.0.1) di VPC dan ping alamat IP privat perangkat strongSwan:

    ping 172.16.0.1

    Jika Anda menerima balasan, koneksi balik juga berfungsi dengan baik.

Uji ketersediaan tinggi

Secara default, koneksi IPsec yang dilampirkan ke Transit Router menggunakan kedua tunnel secara simultan untuk load balancing dan ketersediaan tinggi dalam konfigurasi Equal-Cost Multi-Path (ECMP). Jika satu tunnel gagal, lalu lintas secara otomatis dialihkan ke tunnel aktif lainnya tanpa intervensi manual.

  1. Jalankan ping terus-menerus dari instance ECS ke server di IDC lokal:

    ping 172.16.0.1 -c 10000
  2. Hentikan salah satu tunnel. Misalnya, di konsol Alibaba Cloud, ubah kunci pra-bersama untuk Tunnel 1 agar terjadi ketidaksesuaian kunci. Hal ini akan menyebabkan tunnel terputus.

  3. Amati hasil ping. Ping seharusnya dilanjutkan setelah gangguan singkat, menunjukkan bahwa lalu lintas telah secara otomatis dialihkan ke Tunnel 2.

  4. Pulihkan tunnel dengan mengembalikan kunci pra-bersama Tunnel 1 ke nilai yang benar. Setelah tunnel dibuat ulang, lalu lintas akan kembali diseimbangkan di kedua tunnel.

Pemecahan masalah

Tabel berikut menjelaskan masalah umum dan solusinya.

Gejala

Kemungkinan penyebab

Solusi

Status tunnel di konsol menunjukkan Negotiation failed.

Masalah konektivitas jaringan

Periksa apakah perangkat strongSwan dapat ping ke alamat IPsec Alibaba Cloud. Verifikasi bahwa firewall IDC lokal Anda mengizinkan lalu lintas pada Port UDP 500 dan 4500.

Ketidaksesuaian kunci pra-bersama

Verifikasi bahwa kunci pra-bersama identik di kedua ujung, termasuk huruf besar/kecil dan karakter khusus.

Ketidaksesuaian parameter IKE

Periksa apakah versi IKE, algoritma enkripsi, algoritma autentikasi, dan grup DH cocok di kedua ujung.

Tunnel sudah terbentuk, tetapi ping gagal.

Konfigurasi rute salah

Periksa apakah tabel rute VPC berisi rute ke blok CIDR IDC lokal dengan lompatan berikutnya diatur ke Transit Router. Juga, periksa apakah tabel rute Transit Router memiliki route statis ke blok CIDR IDC dengan lompatan berikutnya diatur ke koneksi IPsec. Untuk perutean berbasis tujuan, Anda harus menambahkan route statis ini secara manual.

Batasan grup keamanan

Periksa apakah grup keamanan ECS mengizinkan lalu lintas inbound ICMP dari blok CIDR IDC lokal (172.16.0.0/16).

Batasan firewall lokal

Periksa apakah firewall lokal mengizinkan lalu lintas dari blok CIDR VPC (10.0.0.0/16).

Rute tidak ada di sisi strongSwan

Verifikasi bahwa IP forwarding diaktifkan di perangkat strongSwan. Pastikan server lain di IDC lokal memiliki rute ke blok CIDR VPC dengan lompatan berikutnya diatur ke perangkat strongSwan.