Anda dapat menggunakan perangkat lunak open-source strongSwan untuk membuat koneksi IPsec-VPN ke gateway VPN tradisional Alibaba Cloud secara cepat. Hal ini memungkinkan peering jaringan pribadi antara sumber daya cloud dan lokal.
Skenario
Sebuah perusahaan telah membuat VPC di wilayah China (Hangzhou) dan kini perlu menghubungkannya ke pusat data lokal (IDC) menggunakan gateway VPN tradisional dan strongSwan.
Dalam skenario ini, IDC hanya memiliki satu alamat IP publik dan membuat koneksi IPsec-VPN dual-tunnel ke gateway VPN Alibaba Cloud:
Perencanaan sumber daya
Sumber daya cloud: Blok CIDR VPC adalah 10.0.0.0/16 di wilayah China (Hangzhou)
vSwitch 1: Zona I, blok CIDR 10.0.0.0/24
vSwitch 2: Zona J, blok CIDR 10.0.1.0/24
Instance ECS: Dideploy di vSwitch 1, alamat IP 10.0.0.1
Gateway VPN: Setelah dibuat, sistem menetapkan dua alamat IP publik:
Alamat IPsec 1 (untuk tunnel aktif): XX.XX.1.1
Alamat IPsec 2 (untuk tunnel standby): XX.XX.2.2
Sumber daya lokal: Blok CIDR IDC adalah 172.16.0.0/16
Perangkat strongSwan: Alamat IP pribadi 172.16.0.1
IP egress publik: XX.XX.3.3
Algoritma enkripsi: Gunakan nilai default konsol (AES128, SHA1, DH Group 2). Algoritma enkripsi, algoritma autentikasi, dan grup DH harus sesuai di kedua sisi.
Metode perutean: Gunakan perutean statis dengan mode protected data flows. Dalam mode ini, Anda menentukan trafik mana yang melewati tunnel VPN dengan menentukan blok CIDR di kedua ujung. Trafik antara blok-blok tersebut menjadi protected data flow. Sistem secara otomatis merutekan trafik ini melalui tunnel dan membuat entri rute yang sesuai.
Topik ini hanya mencakup skenario single-public-IP dan perutean statis. Untuk skenario dual-public-IP atau perutean dinamis BGP, lihat contoh konfigurasi strongSwan.
Prasyarat
Blok CIDR VPC tidak boleh tumpang tindih dengan blok CIDR IDC lokal.
Anda telah membuat VPC dan mendeploy satu vSwitch di masing-masing dua zona berbeda sesuai rencana. Setidaknya satu instance ECS sedang berjalan di VPC untuk pengujian konektivitas.
Anda telah mendeploy server Linux di IDC lokal Anda (CentOS Stream 9 dalam contoh ini). Server ini memiliki satu alamat IP egress publik. Anda akan menginstal strongSwan pada server ini untuk bertindak sebagai gateway lokal.
Langkah 1: Buat gateway VPN tradisional
Buka halaman VPN Gateway di konsol. Klik Create VPN Gateway. Konfigurasikan parameter utama berikut:
Instance Name: Masukkan nama yang bermakna, seperti
vpn-gw-docdev.Region and zone: Pilih wilayah tempat VPC Anda berada. Dalam contoh ini, pilih China (Hangzhou).
Gateway Type: Pilih Standard.
Network Type: Pilih Public.
VPC: Pilih VPC target yang akan dihubungkan.
vSwitch 1: Pilih vSwitch di Zona I.
vSwitch 2: Pilih vSwitch di Zona J. vSwitch ini harus berada di zona berbeda dari vSwitch 1 untuk memastikan ketersediaan tinggi lintas zona. Jika tidak tersedia vSwitch, buat terlebih dahulu.
Bandwidth: Pilih bandwidth sesuai kebutuhan bisnis. Dalam contoh ini, gunakan nilai default.
IPsec-VPN: Pilih Enable.
SSL-VPN: Close.
Billing Cycle: Gunakan nilai default.
Create Service-Linked Role: Pastikan peran terkait layanan telah dibuat. Gateway VPN menggunakan peran ini untuk mengakses sumber daya cloud lainnya.
Klik Buy Now dan selesaikan pembayaran. Inisialisasi gateway VPN memerlukan waktu sekitar 1–5 menit. Sistem akan menetapkan dua alamat IP publik ke gateway VPN—satu untuk tunnel aktif dan satu untuk tunnel standby.
Langkah 2: Buat customer gateway
Customer gateway mencatat alamat IP publik perangkat gateway lokal Anda di Alibaba Cloud. Dalam skenario ini, IDC hanya memiliki satu IP egress publik, sehingga cukup buat satu customer gateway.
Di panel navigasi kiri konsol VPN Gateway, klik Customer Gateways.
Klik Create Customer Gateway dan konfigurasikan hal berikut:
Name: Masukkan nama untuk customer gateway, seperti
cgw-idc-docdev.IP Address: Masukkan alamat IP egress publik IDC lokal Anda (XX.XX.3.3).
Langkah 3: Buat koneksi IPsec-VPN
Di panel navigasi kiri konsol VPN Gateway, klik IPsec Connections. Lalu klik Bind VPN Gateway.
Konfigurasikan parameter dasar untuk koneksi IPsec-VPN:
Name: Masukkan nama yang bermakna, seperti
ipsec-docdev.Region: Pilih China (Hangzhou).
Bind VPN Gateway: Pilih gateway VPN yang dibuat di Langkah 1.
Routing Mode: Pilih Destination Routing Mode. Dalam mode ini, tentukan blok CIDR di kedua ujung. Sistem secara otomatis merutekan trafik yang sesuai melalui tunnel dan membuat entri rute yang sesuai.
Local Network: Masukkan blok CIDR VPC
10.0.0.0/16.Remote Network: Masukkan blok CIDR IDC
172.16.0.0/16.Effective Immediately: Pilih Yes. Alibaba Cloud memulai negosiasi dengan sisi peer. Setelah Anda menyelesaikan konfigurasi sisi peer, koneksi akan segera terbentuk.
Enable BGP: Jangan aktifkan BGP dalam contoh ini.
Konfigurasikan parameter tunnel:
Tunnel 1 (Primary):
Customer Gateway: Pilih customer gateway yang dibuat di Langkah 2.
Pre-Shared Key: Kunci bersama yang digunakan untuk otentikasi identitas selama negosiasi tunnel IPsec. Kedua sisi harus menggunakan kunci pra-bersama yang sama. Jika tidak, tunnel gagal terbentuk. Gunakan password kuat yang mencakup huruf kapital, huruf kecil, angka, dan karakter khusus.
Encryption Configuration: Pertahankan nilai default. Contoh ini menggunakan algoritma enkripsi default (AES128), algoritma autentikasi (SHA1), dan grup DH (group2).
Tunnel 1 (Backup):
Customer Gateway: Pilih customer gateway yang sama dengan Tunnel 1 (IDC hanya memiliki satu IP egress publik dalam skenario ini).
Pre-Shared Key: Gunakan kunci yang sama dengan Tunnel 1.
Encryption Configuration: Sesuaikan dengan Tunnel 1. Pertahankan nilai default.
Setelah mengklik OK, sistem akan meminta Anda untuk memublikasikan rute. Pertama, klik Cancel.
Inisialisasi koneksi IPsec-VPN memerlukan waktu sekitar 5 menit (status menunjukkan Preparing). Anda belum dapat mengonfigurasi rute. Lanjutkan ke Langkah 4 untuk mengonfigurasi perangkat strongSwan. Konfigurasi rute diselesaikan di Langkah 5.
Catat alamat IP publik kedua tunnel di sisi Alibaba Cloud. Anda memerlukannya nanti saat mengonfigurasi strongSwan:
Kembali ke halaman daftar IPsec-VPN connection dan temukan koneksi IPsec-VPN yang baru saja Anda buat.
Di kolom Gateway IP Address, catat alamat IPsec 1 dan alamat IPsec 2. Dalam contoh ini, nilainya adalah XX.XX.1.1 dan XX.XX.2.2.
Langkah 4: Konfigurasi perangkat strongSwan
Informasi produk pihak ketiga dalam bagian ini hanya untuk referensi. Alibaba Cloud tidak memberikan jaminan atau komitmen apa pun terkait kinerja, keandalan, atau dampak potensial dari operasi yang melibatkan produk pihak ketiga.
Bagian ini menggunakan CentOS Stream 9 64-bit sebagai contoh untuk mengonfigurasi strongSwan. Untuk sistem operasi lain, lihat dokumentasi resmi strongSwan.
1. Izinkan kebijakan firewall
Di perangkat strongSwan, izinkan protokol ESP (nomor protokol IP 50), Port UDP 500, dan Port UDP 4500 untuk mengizinkan akses dari dua alamat IPsec di cloud.
Sebagai contoh, jika Anda menggunakan iptables, sesuaikan perintah berdasarkan tool firewall aktual Anda:
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 ACCEPT2. Aktifkan IP forwarding
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sudo sysctl -p3. Instal strongSwan
dnf install epel-release -y
dnf install strongswan -y4. Konfigurasi strongSwan
Buat cadangan file konfigurasi asli:
mv /etc/strongswan/swanctl/swanctl.conf /etc/strongswan/swanctl/swanctl.conf.bakBuat file konfigurasi baru:
vi /etc/strongswan/swanctl/swanctl.confTambahkan dan simpan konfigurasi berikut. Ganti alamat IP dan kunci pra-bersama contoh dengan nilai aktual Anda:
# Konfigurasi IPsec-VPN dual-tunnel strongSwan untuk: gateway VPN tradisional Alibaba Cloud + egress publik tunggal lokal + protected data flows # # Hanya parameter yang ditandai "Modify as needed" yang perlu diubah. Semua parameter lain dapat tetap default. # Catatan algoritma: aes128-sha1-modp1024 = AES-128 / SHA-1 / DH Group 2 (default konsol) # Logika aktif/standby: vco1 (priority=1) adalah tunnel aktif; vco2 (priority=2) adalah tunnel standby. Failover otomatis terjadi jika tunnel aktif gagal. connections { # === Tunnel 1 (aktif) === vco1 { version = 2 dpd_delay = 10 rekey_time = 84600 over_time = 1800 proposals = aes128-sha1-modp1024 encap = yes local_addrs = 172.16.0.1 # IP antarmuka jaringan perangkat strongSwan (Modify as needed: gunakan IP privat di lingkungan NAT; gunakan IP publik jika antarmuka langsung terikat ke IP egress publik) local { auth = psk id = XX.XX.3.3 # IP egress publik lokal (Modify as needed) } remote_addrs = XX.XX.1.1 # IP publik tunnel 1 Alibaba Cloud (Modify as needed) remote { auth = psk id = XX.XX.1.1 # IP publik tunnel 1 Alibaba Cloud, harus sesuai dengan remote_addrs di atas (Modify as needed) } children { vco_child1 { local_ts = 172.16.0.0/16 # Blok CIDR protected data flow lokal (Modify as needed) remote_ts = 10.0.0.0/16 # Blok CIDR protected data flow Alibaba Cloud (Modify as needed) mode = tunnel rekey_time = 85500 life_time = 86400 dpd_action = restart start_action = start close_action = start esp_proposals = aes128-sha1-modp1024 priority = 1 # Tetapkan sebagai tunnel aktif. Jangan ubah. } } } # === Tunnel 2 (standby) === vco2 { version = 2 dpd_delay = 10 rekey_time = 84600 over_time = 1800 proposals = aes128-sha1-modp1024 encap = yes local_addrs = 172.16.0.1 # IP antarmuka jaringan perangkat strongSwan, sama dengan tunnel 1 (Modify as needed) local { auth = psk id = XX.XX.3.3 # IP egress publik lokal, sama dengan tunnel 1 (Modify as needed) } remote_addrs = XX.XX.2.2 # IP publik tunnel 2 Alibaba Cloud (Modify as needed) remote { auth = psk id = XX.XX.2.2 # IP publik tunnel 2 Alibaba Cloud, harus sesuai dengan remote_addrs di atas (Modify as needed) } children { vco_child2 { local_ts = 172.16.0.0/16 # Blok CIDR protected data flow lokal, sama dengan tunnel 1 (Modify as needed) remote_ts = 10.0.0.0/16 # Blok CIDR protected data flow Alibaba Cloud, sama dengan tunnel 1 (Modify as needed) mode = tunnel rekey_time = 85500 life_time = 86400 dpd_action = restart start_action = start close_action = start esp_proposals = aes128-sha1-modp1024 priority = 2 # Tetapkan sebagai tunnel standby. Jangan ubah. } } } } secrets { ike-vco1 { id = XX.XX.1.1 # IP publik tunnel 1 Alibaba Cloud (Modify as needed) secret = your-psk-here # Kunci pra-bersama untuk tunnel 1, harus sesuai dengan Alibaba Cloud (Modify as needed) } ike-vco2 { id = XX.XX.2.2 # IP publik tunnel 2 Alibaba Cloud (Modify as needed) secret = your-psk-here # Kunci pra-bersama untuk tunnel 2, harus sesuai dengan Alibaba Cloud (Modify as needed) } }
5. Mulai dan verifikasi status tunnel
sudo systemctl restart strongswan
swanctl --load-all
watch swanctl --list-sasJika kedua tunnel menunjukkan ESTABLISHED dan CHILD_SA menunjukkan INSTALLED, koneksi IPsec-VPN antara perangkat strongSwan dan gateway VPN Alibaba Cloud berhasil dibuat.
Langkah 5: Konfigurasi perutean sisi cloud
Karena contoh ini menggunakan mode protected data flows, sistem secara otomatis membuat entri rute di Policy-based Route Table gateway VPN.
Anda dapat memublikasikan rute ini ke tabel rute VPC dengan satu klik. Hal ini akan merutekan trafik dari instance ECS di VPC ke blok CIDR IDC melalui gateway VPN:
Kembali ke halaman daftar VPN Gateway. Klik ID instans gateway VPN yang dibuat di Langkah 1 untuk membuka halaman detailnya.
Klik tab Policy-based Route Table. Anda dapat melihat entri rute tujuan yang secara otomatis dibuat oleh sistem setelah koneksi IPsec-VPN menggunakan mode protected data flows (blok CIDR tujuan 172.16.0.0/16, lompatan berikutnya adalah koneksi IPsec-VPN).
Di kolom Actions untuk entri rute tujuan, klik Advertise untuk memublikasikan rute ke tabel rute VPC.
Setelah dipublikasikan, tabel rute VPC menambahkan rute baru dengan blok CIDR tujuan 172.16.0.0/16 dan lompatan berikutnya diatur ke gateway VPN. Trafik dari instance ECS di VPC ke blok CIDR IDC secara otomatis mengalir melalui tunnel VPN.
Verifikasi dan pengujian
Verifikasi konektivitas
Pertama, pastikan aturan security group ECS mengizinkan trafik ICMP. Lalu login ke perangkat strongSwan dan jalankan perintah berikut untuk ping instance ECS di cloud:
ping 10.0.0.1Jika Anda menerima paket balasan, VPC cloud dan IDC lokal berhasil terhubung.
Pertama, pastikan firewall lokal Anda mengizinkan trafik ICMP. Lalu login ke instance ECS (10.0.0.1) di VPC dan ping alamat IP pribadi perangkat strongSwan:
ping 172.16.0.1Jika Anda menerima paket balasan, konektivitas balik juga berfungsi.
Verifikasi ketersediaan tinggi
Jalankan ping terus-menerus dari instance ECS ke server IDC:
ping 172.16.0.1 -c 10000Putuskan tunnel aktif: Di konsol Alibaba Cloud, ubah kunci pra-bersama untuk tunnel aktif (sehingga kunci di kedua sisi berbeda). Tunnel aktif akan terputus.
Amati hasil ping: Trafik sempat berhenti sebentar lalu kembali normal. Hal ini mengonfirmasi failover otomatis ke tunnel standby.
Pulihkan tunnel aktif: Ubah kembali kunci pra-bersama untuk tunnel aktif ke nilai yang benar. Setelah tunnel aktif pulih, trafik secara otomatis beralih kembali.
Pemecahan masalah
Masalah umum dan solusinya:
Gejala | Kemungkinan penyebab | Solusi |
Konsol menunjukkan kegagalan negosiasi untuk tunnel | Jaringan tidak dapat dijangkau | Periksa apakah perangkat strongSwan dapat ping ke alamat IPsec Alibaba Cloud. Pastikan firewall IDC lokal mengizinkan Port UDP 500 dan 4500. |
Ketidaksesuaian kunci pra-bersama | Verifikasi bahwa kunci pra-bersama di kedua sisi benar-benar sesuai (termasuk kapitalisasi dan karakter khusus). | |
Ketidaksesuaian parameter IKE | Periksa apakah versi IKE, algoritma enkripsi, algoritma autentikasi, dan grup DH sesuai di kedua sisi. Gateway VPN tradisional tidak mendukung kompatibilitas multi-algoritma. Parameter harus sesuai secara eksak. | |
Tunnel terbentuk tetapi ping gagal | Konfigurasi rute tidak lengkap | Periksa apakah rute tujuan untuk gateway VPN telah dipublikasikan di tabel rute VPC. |
Batasan security group | Periksa apakah security group ECS mengizinkan trafik ICMP dari blok CIDR IDC (172.16.0.0/16). | |
Batasan firewall lokal | Periksa apakah firewall IDC mengizinkan trafik dari blok CIDR VPC (10.0.0.0/16). | |
Rute tidak ada di sisi strongSwan | Pastikan IP forwarding diaktifkan di perangkat strongSwan. Juga pastikan server lain di IDC memiliki rute ke blok CIDR VPC (dengan perangkat strongSwan sebagai lompatan berikutnya). |