Hubungkan Internet Data Center (IDC) lokal Anda ke Alibaba Cloud Virtual Private Cloud (VPC) menggunakan Traditional VPN Gateway dan perangkat lunak open-source strongSwan.
Skenario
Sebuah perusahaan telah membuat VPC di wilayah China (Hangzhou). Perusahaan tersebut ingin menggunakan Traditional VPN Gateway dengan strongSwan untuk mengaktifkan konektivitas jaringan antara VPC cloud dan IDC lokal.
Dalam skenario ini, IDC hanya memiliki satu IP egress publik dan membangun koneksi IPsec dual-tunnel dengan Alibaba Cloud VPN Gateway:
Rencana sumber daya
Cloud: VPC dengan blok CIDR 10.0.0.0/16 di wilayah China (Hangzhou)
vSwitch 1: Zona Ketersediaan I, blok CIDR 10.0.0.0/24
vSwitch 2: Zona Ketersediaan J, blok CIDR 10.0.1.0/24
Instance ECS: berlokasi di vSwitch 1, alamat IP 10.0.0.1
VPN Gateway: setelah dibuat, sistem secara otomatis menetapkan dua alamat IP publik:
Alamat IPsec 1 (saluran aktif): [[0]]
Alamat IPsec 2 (saluran cadangan): [[0]]
Lokal: Blok CIDR IDC lokal 172.16.0.0/16
Perangkat strongSwan: IP privat 172.16.0.1
IP egress publik: XX.XX.3.3
Konfigurasi Enkripsi: Harus konsisten di sisi cloud maupun lokal.
Versi IKE: v2
Mode negosiasi: main
Algoritma enkripsi: AES128 / SHA1 / DH Group 2.
Masa berlaku SA: 86.400 detik.
Perutean: Gunakan perutean berbasis tujuan. Perutean berbasis tujuan menentukan "trafik mana yang melewati terowongan VPN"—Anda hanya perlu menentukan blok CIDR di kedua ujung, dan trafik yang sesuai dengan blok tersebut dianggap sebagai "interesting traffic". Sistem secara otomatis merutekannya melalui terowongan dan menghasilkan entri rute yang sesuai.
Panduan ini hanya mencakup skenario dengan satu IP egress publik dan perutean statis. Untuk skenario dual-public-egress-IP atau perutean dinamis BGP, lihat konfigurasi strongSwan.
Prasyarat
Blok CIDR VPC dan blok CIDR IDC lokal tidak boleh tumpang tindih.
Buat VPC seperti yang dijelaskan dalam rencana sumber daya, dengan satu vSwitch di masing-masing dua zona ketersediaan berbeda. Deploy minimal satu instance ECS di dalam VPC untuk memverifikasi konektivitas.
Deploy server Linux di IDC lokal (panduan ini menggunakan CentOS Stream 9) dengan satu IP egress publik. Anda akan menginstal strongSwan pada server ini sebagai gateway lokal.
Langkah 1: Buat Traditional VPN Gateway
Buka halaman VPN Gateway di Konsol, lalu klik Create VPN Gateway untuk mengonfigurasi parameter kunci berikut:
Instance Name: Masukkan nama instans yang bermakna, misalnya
vpn-gw-docdev.Region and Availability Zone: Pilih wilayah tempat VPC berada. Panduan ini menggunakan China (Hangzhou).
Gateway Type: Pilih Standard.
Network Type: Pilih Public.
VPC: Pilih VPC yang ingin Anda hubungkan.
vSwitch 1: Pilih vSwitch di Zona Ketersediaan I.
vSwitch 2: Pilih vSwitch di Zona Ketersediaan J. Harus berada di zona ketersediaan yang berbeda dari vSwitch 1 untuk memastikan ketersediaan tinggi lintas zona. Jika tidak tersedia vSwitch, buat terlebih dahulu.
Peak bandwidth: Pilih bandwidth sesuai kebutuhan bisnis Anda. Panduan ini menggunakan nilai default.
IPsec-VPN: Enable.
SSL-VPN: Close.
Purchase duration: Gunakan nilai default.
Create Service-Linked Role: Pastikan peran terkait layanan telah dibuat. VPN Gateway menggunakan peran ini untuk mengakses resource di produk cloud lainnya.
Klik Buy Now dan selesaikan pembayaran. Diperlukan waktu sekitar 1 hingga 5 menit untuk menginisialisasi instance VPN Gateway. Sistem akan menetapkan dua alamat IP publik ke VPN Gateway untuk saluran aktif dan cadangan.
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 Anda hanya perlu membuat satu customer gateway.
Di panel navigasi kiri konsol VPN Gateway, klik Customer Gateways.
Klik Create Customer Gateway, lalu konfigurasikan parameter berikut:
Name: Masukkan nama untuk customer gateway, misalnya
cgw-idc-docdev.IP Address: Masukkan IP egress publik IDC lokal (XX.XX.3.3).
Langkah 3: Buat koneksi IPsec
Di panel navigasi kiri konsol VPN Gateway, klik IPsec Connections, lalu klik Bind VPN Gateway.
Konfigurasikan parameter dasar koneksi IPsec:
Name: Masukkan nama resource yang bermakna, misalnya
ipsec-docdev.Region: Pilih China (Hangzhou).
Bind VPN Gateway: Pilih VPN Gateway yang dibuat di Langkah 1.
Routing Mode: Pilih Destination Routing Mode. Dalam mode ini, Anda menentukan blok CIDR di kedua ujung, dan sistem secara otomatis merutekan trafik yang sesuai melalui terowongan serta menghasilkan 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. Sisi Alibaba Cloud memulai negosiasi dengan peer, sehingga koneksi dapat segera terbentuk setelah peer dikonfigurasi.
Enable BGP: Tidak diaktifkan dalam panduan ini.
Konfigurasikan parameter terowongan:
Tunnel 1 (Primary):
Customer Gateway: Pilih customer gateway yang dibuat di Langkah 2.
Pre-Shared Key: Kunci pra-bersama yang digunakan untuk otentikasi identitas selama negosiasi terowongan IPsec. Kunci pra-bersama di sisi lokal dan peer harus identik, jika tidak terowongan tidak dapat dibentuk. Gunakan password kuat yang terdiri atas huruf kapital, huruf kecil, angka, dan karakter khusus.
Encryption Configuration: Pertahankan pengaturan default. Panduan ini menggunakan algoritma enkripsi default (AES128), algoritma autentikasi (SHA1), dan grup DH (group2). Untuk menentukan algoritma secara manual, buka Encryption Configuration untuk mengubahnya.
PentingJika Anda perlu mengubah konfigurasi, pastikan parameter berikut konsisten antara sisi cloud dan lokal: versi IKE, mode negosiasi, dan masa berlaku SA.
Tunnel 1 (Backup):
Customer Gateway: Pilih customer gateway yang sama dengan saluran aktif (IDC dalam skenario ini hanya memiliki satu IP egress publik).
Pre-Shared Key: Panduan ini menggunakan kunci yang sama dengan saluran aktif.
Encryption Configuration: Pertahankan konfigurasi yang sama dengan saluran aktif. Gunakan nilai default.
Setelah Anda mengklik OK, sistem akan menanyakan apakah Anda ingin memublikasikan rute. Klik Cancel untuk saat ini.
Diperlukan waktu sekitar 5 menit untuk menginisialisasi resource koneksi IPsec (status: Preparing), selama itu Anda tidak dapat mengonfigurasi rute. Anda dapat melanjutkan ke Langkah 4 untuk mengonfigurasi strongSwan terlebih dahulu. Konfigurasi rute diselesaikan di Langkah 5.
Catat IP publik kedua terowongan sisi cloud. Anda akan memerlukannya saat mengonfigurasi strongSwan:
Kembali ke halaman daftar IPsec-VPN connection dan temukan koneksi IPsec yang baru saja Anda buat.
Di kolom Gateway IP Address, catat Alamat IPsec 1 dan Alamat IPsec 2. Panduan ini menggunakan XX.XX.1.1 dan XX.XX.2.2 sebagai contoh.
Langkah 4: Konfigurasi strongSwan
Informasi berikut mengenai produk pihak ketiga hanya bersifat referensi. Alibaba Cloud tidak memberikan jaminan apa pun, baik tersurat maupun tersirat, mengenai kinerja atau keandalan produk pihak ketiga, atau dampak apa pun dari operasi yang Anda lakukan pada produk tersebut.
Berikut ini menggunakan sistem operasi CentOS Stream 9 64-bit sebagai contoh untuk mengonfigurasi strongSwan. Untuk sistem operasi lain, lihat dokumentasi resmi strongSwan.
1. Konfigurasi aturan 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 sisi cloud.
Berikut ini menggunakan iptables sebagai contoh. Sesuaikan perintah berdasarkan tool firewall yang sebenarnya 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 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 -yLangkah 4: 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 dalam contoh dengan nilai aktual Anda:
# Konfigurasi IPsec-VPN dual-tunnel strongSwan untuk: Alibaba Cloud Traditional VPN Gateway + satu IP egress publik lokal + perutean berbasis tujuan (traffic selector) # # Hanya parameter yang ditandai "(Modify)" yang perlu diubah sesuai lingkungan Anda. Pertahankan semua parameter lain sebagai default. # Catatan algoritma: aes128-sha1-modp1024 = AES-128 / SHA-1 / DH Group 2 (default konsol) # Logika aktif/cadangan: vco1 (priority=1) adalah terowongan aktif, dan vco2 (priority=2) adalah terowongan cadangan. Failover otomatis saat terowongan aktif gagal. connections { # === Terowongan 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 # (Modify) IP privat NIC strongSwan. Di lingkungan NAT, gunakan IP privat. Jika NIC terikat ke IP publik, gunakan IP publik. local { auth = psk id = XX.XX.3.3 # (Modify) IP egress publik lokal } remote_addrs = XX.XX.1.1 # (Modify) IP publik Terowongan 1 di Alibaba Cloud remote { auth = psk id = XX.XX.1.1 # (Modify) IP publik Terowongan 1 di Alibaba Cloud. Harus sesuai dengan remote_addrs di atas. } children { vco_child1 { local_ts = 172.16.0.0/16 # (Modify) Blok CIDR traffic selector lokal remote_ts = 10.0.0.0/16 # (Modify) Blok CIDR traffic selector Alibaba Cloud mode = tunnel rekey_time = 85500 life_time = 86400 dpd_action = restart start_action = start close_action = start esp_proposals = aes128-sha1-modp1024 priority = 1 # Menentukan terowongan aktif. Jangan ubah. } } } # === Terowongan 2 (Cadangan) === vco2 { version = 2 dpd_delay = 10 rekey_time = 84600 over_time = 1800 proposals = aes128-sha1-modp1024 encap = yes local_addrs = 172.16.0.1 # (Modify) IP privat NIC strongSwan. Sama dengan local_addrs Terowongan 1. local { auth = psk id = XX.XX.3.3 # (Modify) IP egress publik lokal. Sama dengan Terowongan 1. } remote_addrs = XX.XX.2.2 # (Modify) IP publik Terowongan 2 di Alibaba Cloud remote { auth = psk id = XX.XX.2.2 # (Modify) IP publik Terowongan 2 di Alibaba Cloud. Harus sesuai dengan remote_addrs di atas. } children { vco_child2 { local_ts = 172.16.0.0/16 # (Modify) Blok CIDR traffic selector lokal. Sama dengan local_ts Terowongan 1. remote_ts = 10.0.0.0/16 # (Modify) Blok CIDR traffic selector Alibaba Cloud. Sama dengan remote_ts Terowongan 1. mode = tunnel rekey_time = 85500 life_time = 86400 dpd_action = restart start_action = start close_action = start esp_proposals = aes128-sha1-modp1024 priority = 2 # Menentukan terowongan cadangan. Jangan ubah. } } } } secrets { ike-vco1 { id = XX.XX.1.1 # (Modify) IP publik Terowongan 1 di Alibaba Cloud secret = your-psk-here # (Modify) Kunci pra-bersama untuk Terowongan 1. Harus sesuai dengan kunci di sisi Alibaba Cloud. } ike-vco2 { id = XX.XX.2.2 # (Modify) IP publik Terowongan 2 di Alibaba Cloud secret = your-psk-here # (Modify) Kunci pra-bersama untuk Terowongan 2. Harus sesuai dengan kunci di sisi Alibaba Cloud. } }
5. Jalankan strongSwan dan verifikasi status terowongan
sudo systemctl restart strongswan
swanctl --load-all
watch swanctl --list-sasJika kedua terowongan menunjukkan ESTABLISHED dan CHILD_SA berada dalam status INSTALLED, koneksi IPsec-VPN antara perangkat strongSwan dan Alibaba Cloud VPN Gateway berhasil dibentuk.
Langkah 5: Publikasikan rute cloud
Karena panduan ini menggunakan perutean berbasis tujuan, sistem secara otomatis menghasilkan entri rute di Policy-based Route Table VPN Gateway.
Anda dapat mempublikasikan rute ini ke tabel rute VPC dengan satu klik, sehingga trafik dari instance ECS di VPC menuju blok CIDR IDC dirutekan ke VPN Gateway:
Kembali ke halaman daftar VPN Gateway dan klik ID instans VPN Gateway yang dibuat di Langkah 1 untuk membuka halaman detail.
Klik tab Policy-based Route Table. Anda dapat melihat entri rute tujuan yang secara otomatis dihasilkan sistem setelah koneksi IPsec menggunakan perutean berbasis tujuan (blok CIDR tujuan 172.16.0.0/16, lompatan berikutnya adalah koneksi IPsec).
Di kolom Actions entri rute target, klik Advertise untuk mempublikasikan rute ke tabel rute VPC.
Setelah rute dipublikasikan, entri rute baru ditambahkan ke tabel rute VPC: blok CIDR tujuan 172.16.0.0/16, lompatan berikutnya adalah VPN Gateway. Trafik dari instance ECS di VPC menuju blok CIDR IDC secara otomatis dikirim melalui terowongan VPN.
Verifikasi
Verifikasi konektivitas
Pastikan aturan grup keamanan ECS mengizinkan trafik ICMP arah masuk, lalu login ke perangkat strongSwan dan jalankan perintah berikut untuk ping ke ECS sisi cloud:
ping 10.0.0.1Jika Anda menerima paket balasan, VPC sisi cloud dan IDC lokal dapat berkomunikasi satu sama lain.
Pastikan firewall lokal Anda mengizinkan trafik ICMP arah masuk. Kemudian, login ke instance ECS ([[0]]) dan ping perangkat strongSwan:
ping 172.16.0.1Jika Anda menerima paket balasan, konektivitas balik juga normal.
Verifikasi ketersediaan tinggi
Jalankan ping berdurasi panjang dari instance ECS ke server lokal:
ping 172.16.0.1 -c 10000Putuskan terowongan aktif: di konsol Alibaba Cloud, ubah kunci pra-bersama terowongan aktif agar tidak sesuai.
Amati hasil ping: trafik kembali normal setelah gangguan singkat, yang menunjukkan bahwa trafik telah secara otomatis beralih ke terowongan cadangan.
Pulihkan terowongan aktif: ubah kembali kunci pra-bersama ke nilai yang benar. Trafik kembali ke terowongan aktif setelah terowongan pulih.
Pemecahan Masalah
Permasalahan umum dan solusinya:
Gejala | Kemungkinan penyebab | Solusi |
Konsol menampilkan Negotiation Failed | Permasalahan konektivitas jaringan | Verifikasi bahwa perangkat strongSwan dapat ping ke alamat IPsec Alibaba Cloud. Pastikan firewall IDC lokal mengizinkan port UDP 500 dan port 4500. |
Ketidaksesuaian kunci pra-bersama | Verifikasi bahwa kunci pra-bersama di kedua sisi identik, termasuk kapitalisasi dan karakter khusus. | |
Ketidaksesuaian parameter IKE | Periksa apakah versi IKE, algoritma enkripsi, algoritma autentikasi, dan grup DH sesuai di kedua sisi. Traditional VPN Gateway tidak mendukung beberapa suite algoritma — parameter harus identik di kedua sisi. | |
Terowongan terbentuk, tetapi ping gagal | Rute belum dipublikasikan | Periksa apakah rute tujuan VPN Gateway telah dipublikasikan ke tabel rute VPC. |
Batasan grup keamanan | Periksa apakah grup keamanan ECS mengizinkan trafik ICMP dari blok CIDR IDC (172.16.0.0/16). | |
Batasan firewall lokal | Periksa apakah firewall IDC lokal mengizinkan trafik dari blok CIDR VPC (10.0.0.0/16). | |
Rute hilang di perangkat strongSwan | Pastikan IP forwarding diaktifkan di perangkat strongSwan, dan server lain di IDC memiliki rute ke blok CIDR VPC dengan perangkat strongSwan sebagai lompatan berikutnya. |