Anda dapat menggunakan perangkat lunak open-source strongSwan untuk dengan cepat membuat koneksi IPsec ke Alibaba Cloud Traditional VPN Gateway guna mengaktifkan komunikasi jaringan pribadi antara lingkungan cloud dan lokal Anda.
Skenario
Sebuah perusahaan telah membuat Virtual Private Cloud (VPC) di wilayah China (Hangzhou) dan perlu menghubungkan VPC tersebut ke Internet Data Center (IDC) lokalnya menggunakan Traditional VPN Gateway serta perangkat strongSwan.
Dalam skenario ini, IDC lokal memiliki satu alamat IP publik dan membuat koneksi IPsec dengan Alibaba Cloud VPN Gateway dalam mode dual-tunnel.
Perencanaan resource
Resource cloud: Sebuah VPC dengan blok CIDR 10.0.0.0/16 di wilayah China (Hangzhou).
VSwitch 1: Di zona ketersediaan I, dengan blok CIDR 10.0.0.0/24.
VSwitch 2: Di zona ketersediaan J, dengan blok CIDR 10.0.1.0/24.
Instance ECS: Terletak di VSwitch 1, dengan alamat IP 10.0.0.1.
VPN Gateway: Setelah dibuat, sistem secara otomatis menetapkan dua alamat IP publik:
IPsec Address 1 (untuk saluran aktif): XX.XX.1.1
IPsec Address 2 (untuk saluran cadangan): XX.XX.2.2
Resource lokal: Sebuah IDC lokal dengan blok CIDR 172.16.0.0/16.
Perangkat strongSwan: Alamat IP privat 172.16.0.1.
IP egress publik: XX.XX.3.3.
Konfigurasi enkripsi: Gunakan pengaturan konsol default (AES128 / SHA1 / DH group 2). Algoritma enkripsi, algoritma autentikasi, dan grup DH harus identik di sisi cloud dan lokal.
Metode perutean: Gunakan perutean berbasis tujuan. Mode ini memanfaatkan traffic selector—yaitu blok CIDR dari VPC dan jaringan lokal—untuk menentukan lalu lintas yang akan dirutekan melalui tunnel VPN. Lalu lintas antara blok CIDR tersebut sesuai dengan traffic selector, dan sistem secara otomatis merutekannya melalui tunnel serta menghasilkan entri rute yang sesuai.
Topik ini menjelaskan skenario dengan satu IP egress publik dan perutean statis. Untuk skenario dengan dua IP egress publik atau perutean dinamis BGP, lihat contoh konfigurasi strongSwan.
Prasyarat
Blok CIDR VPC dan blok CIDR IDC lokal tidak tumpang tindih.
VPC telah dibuat dan dua VSwitch telah dibuat di zona ketersediaan berbeda sesuai rencana resource. Setidaknya terdapat satu instance ECS di dalam VPC untuk menguji konektivitas.
Server Linux telah dideploy di IDC lokal. Topik ini menggunakan CentOS Stream 9 sebagai contoh. Server tersebut memiliki satu IP egress publik, dan Anda akan menginstal strongSwan pada server ini untuk bertindak sebagai gateway lokal.
Langkah 1: Membuat Traditional VPN Gateway
Buka halaman VPN Gateway dan klik Create VPN Gateway. Konfigurasikan parameter utama berikut:
Instance Name: Masukkan nama deskriptif untuk instans, misalnya
vpn-gw-docdev.Region and zone: Pilih wilayah tempat VPC berada. Topik ini menggunakan China (Hangzhou) sebagai contoh.
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 berbeda dari vSwitch 1 untuk memastikan ketersediaan tinggi lintas zona. Jika tidak tersedia VSwitch, buat terlebih dahulu.
Bandwidth: Pilih nilai bandwidth sesuai kebutuhan bisnis Anda. Topik ini menggunakan nilai default.
IPsec-VPN: Pilih Enable.
SSL-VPN: Pilih Close.
Billing Cycle: Gunakan nilai default.
Create Service-Linked Role: Pastikan Anda membuat peran terkait layanan. VPN Gateway menggunakan peran ini untuk mengakses resource di layanan cloud lainnya.
Klik Buy Now dan selesaikan pembayaran. Instans VPN Gateway memerlukan waktu sekitar 1 hingga 5 menit untuk diinisialisasi. Sistem akan menetapkan dua alamat IP publik ke VPN Gateway, satu untuk saluran aktif dan satu untuk saluran cadangan.
Langkah 2: Membuat customer gateway
Customer gateway menyimpan alamat IP publik perangkat gateway lokal Anda. Dalam skenario ini, IDC lokal hanya memiliki satu IP egress publik, sehingga Anda hanya perlu membuat satu customer gateway.
Pada panel navigasi kiri konsol VPN Gateway, klik Customer Gateways.
Klik Create Customer Gateway dan konfigurasikan parameter berikut:
Name: Masukkan nama untuk customer gateway, misalnya
cgw-idc-docdev.IP Address: Masukkan alamat IP egress publik IDC lokal (XX.XX.3.3).
Langkah 3: Membuat koneksi IPsec
Pada panel navigasi kiri konsol VPN Gateway, klik IPsec Connections, lalu klik Bind VPN Gateway.
Konfigurasikan parameter dasar untuk koneksi IPsec:
Name: Masukkan nama deskriptif untuk resource, misalnya
ipsec-docdev.Region: Pilih China (Hangzhou).
Bind VPN Gateway: Pilih VPN Gateway yang telah Anda buat di Langkah 1.
Routing Mode: Pilih Destination Routing Mode. Mode ini mengharuskan Anda menentukan blok CIDR di kedua ujung. Sistem secara otomatis merutekan lalu lintas yang sesuai melalui tunnel dan menghasilkan entri rute.
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 secara proaktif memulai negosiasi dengan peer remote, sehingga koneksi dapat terbentuk dengan cepat setelah Anda mengonfigurasi peer remote.
Enable BGP: Nonaktifkan opsi ini untuk tutorial ini.
Konfigurasikan parameter tunnel:
Tunnel 1 (Primary):
Customer Gateway: Pilih customer gateway yang telah Anda buat di Langkah 2.
Pre-Shared Key: Ini adalah kunci bersama yang digunakan untuk autentikasi. Kunci pra-bersama harus identik di kedua ujung agar tunnel dapat terbentuk. Disarankan menggunakan kunci kuat yang mencakup huruf besar, huruf kecil, angka, dan karakter khusus.
Encryption Configuration: Pertahankan pengaturan default. Topik ini menggunakan algoritma enkripsi default (AES128), algoritma autentikasi (SHA1), dan grup DH (group2).
Tunnel 1 (Backup):
Customer Gateway: Pilih customer gateway yang sama seperti pada tunnel aktif karena IDC lokal hanya memiliki satu IP egress publik dalam skenario ini.
Pre-Shared Key: Untuk tutorial ini, gunakan kunci yang sama seperti pada tunnel aktif.
Encryption Configuration: Pertahankan pengaturan identik dengan tunnel aktif. Gunakan nilai default.
Setelah Anda mengklik OK, sistem akan meminta Anda untuk memublikasikan rute. Klik Cancel untuk saat ini.
Resource koneksi IPsec memerlukan waktu sekitar 5 menit untuk diinisialisasi. Selama periode ini, statusnya adalah Preparing, dan Anda tidak dapat mengonfigurasi rute. Anda dapat melanjutkan ke Langkah 4 untuk mengonfigurasi perangkat strongSwan, lalu mengonfigurasi rute di Langkah 5.
Catat alamat IP publik dari kedua tunnel cloud. Anda akan memerlukannya saat mengonfigurasi strongSwan.
Kembali ke halaman daftar IPsec-VPN connection dan temukan koneksi IPsec yang baru saja Anda buat.
Pada kolom Gateway IP Address, catat IPsec Address 1 dan IPsec Address 2. Topik ini menggunakan XX.XX.1.1 dan XX.XX.2.2 sebagai contoh.
Langkah 4: Mengonfigurasi perangkat strongSwan
Informasi berikut mengenai produk pihak ketiga hanya untuk referensi. Alibaba Cloud tidak memberikan jaminan apa pun, baik tersurat maupun tersirat, terkait kinerja dan keandalan produk pihak ketiga, atau dampak apa pun dari operasi yang Anda lakukan pada produk tersebut.
Langkah-langkah berikut menunjukkan cara mengonfigurasi strongSwan pada sistem operasi CentOS Stream 9 64-bit. Untuk sistem operasi lain, lihat dokumentasi resmi strongSwan.
1. Mengonfigurasi aturan firewall
Pada perangkat strongSwan, izinkan lalu lintas pada protokol ESP (nomor protokol IP 50), Port UDP 500, dan Port UDP 4500 dari dua alamat IPsec Alibaba 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 ACCEPT2. Mengaktifkan IP forwarding
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sudo sysctl -p3. Menginstal strongSwan
dnf install epel-release -y
dnf install strongswan -y4. Mengonfigurasi 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: # - Alibaba Cloud Traditional VPN Gateway # - Satu IP egress publik lokal # - Perutean berbasis tujuan (traffic selector) # # Anda hanya perlu mengubah parameter yang ditandai "(Modify)". # Catatan algoritma: aes128-sha1-modp1024 sesuai dengan AES-128 / SHA-1 / DH Group 2 (default konsol). # Logika ketersediaan tinggi: vco1 (priority=1) adalah tunnel aktif, dan vco2 (priority=2) adalah tunnel cadangan. Failover otomatis. 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 # (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 Tunnel 1 di Alibaba Cloud. remote { auth = psk id = XX.XX.1.1 # (Modify) IP publik Tunnel 1 di Alibaba Cloud. Harus sesuai dengan remote_addrs. } 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 tunnel aktif. Jangan ubah. } } } # === Tunnel 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 seperti Tunnel 1. local { auth = psk id = XX.XX.3.3 # (Modify) IP egress publik lokal. Sama seperti Tunnel 1. } remote_addrs = XX.XX.2.2 # (Modify) IP publik Tunnel 2 di Alibaba Cloud. remote { auth = psk id = XX.XX.2.2 # (Modify) IP publik Tunnel 2 di Alibaba Cloud. Harus sesuai dengan remote_addrs. } children { vco_child2 { local_ts = 172.16.0.0/16 # (Modify) Blok CIDR traffic selector lokal. Sama seperti Tunnel 1. remote_ts = 10.0.0.0/16 # (Modify) Blok CIDR traffic selector Alibaba Cloud. Sama seperti Tunnel 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 tunnel cadangan. Jangan ubah. } } } } secrets { ike-vco1 { id = XX.XX.1.1 # (Modify) IP publik Tunnel 1 di Alibaba Cloud. secret = your-psk-here # (Modify) Kunci pra-bersama untuk Tunnel 1. Harus sesuai dengan kunci yang dikonfigurasi di Alibaba Cloud. } ike-vco2 { id = XX.XX.2.2 # (Modify) IP publik Tunnel 2 di Alibaba Cloud. secret = your-psk-here # (Modify) Kunci pra-bersama untuk Tunnel 2. Harus sesuai dengan kunci yang dikonfigurasi di Alibaba Cloud. } }
5. Menjalankan strongSwan dan memverifikasi status tunnel
sudo systemctl restart strongswan
swanctl --load-all
watch swanctl --list-sasJika kedua tunnel menunjukkan status ESTABLISHED dan status CHILD_SA adalah INSTALLED, koneksi IPsec antara perangkat strongSwan dan Alibaba Cloud VPN Gateway berhasil dibuat.
Langkah 5: Mengonfigurasi rute cloud
Karena tutorial ini menggunakan perutean berbasis tujuan, sistem secara otomatis menghasilkan entri rute di Policy-based Route Table VPN Gateway.
Anda dapat memublikasikan rute ini ke tabel rute VPC dengan satu klik. Tindakan ini merutekan lalu lintas dari instance ECS di VPC ke segmen jaringan IDC lokal melalui VPN Gateway.
Kembali ke halaman daftar VPN Gateway dan klik ID instans VPN gateway yang telah Anda buat di Langkah 1 untuk membuka halaman detailnya.
Klik tab Policy-based Route Table. Anda dapat melihat bahwa sistem telah secara otomatis menghasilkan entri rute tujuan (blok CIDR tujuan 172.16.0.0/16, lompatan berikutnya adalah koneksi IPsec) karena koneksi IPsec menggunakan perutean berbasis tujuan.
Pada kolom Actions entri rute target, klik Advertise untuk memublikasikan rute ke tabel rute VPC.
Setelah rute dipublikasikan, entri rute baru dengan tujuan 172.16.0.0/16 dan lompatan berikutnya VPN Gateway ditambahkan ke tabel rute VPC. Lalu lintas dari instance ECS di VPC ke segmen jaringan IDC lokal secara otomatis dirutekan melalui tunnel VPN.
Memverifikasi konfigurasi
Memverifikasi konektivitas
Pertama, pastikan bahwa aturan security group untuk instance ECS mengizinkan traffic ICMP. Kemudian, login ke perangkat strongSwan dan jalankan perintah berikut untuk melakukan ping ke instance ECS cloud:
ping 10.0.0.1Jika Anda menerima balasan, komunikasi antara VPC dan IDC lokal berhasil.
Pastikan firewall lokal Anda mengizinkan traffic ICMP. Kemudian, login ke instance ECS (10.0.0.1) di VPC dan lakukan ping ke alamat IP privat perangkat strongSwan:
ping 172.16.0.1Jika Anda menerima balasan, konektivitas balik juga berfungsi dengan benar.
Memverifikasi ketersediaan tinggi
Jalankan ping berkelanjutan dari instance ECS ke server lokal:
ping 172.16.0.1 -c 10000Hentikan tunnel aktif: Di konsol Alibaba Cloud, ubah kunci pra-bersama tunnel aktif sehingga terjadi ketidaksesuaian. Tindakan ini menghentikan tunnel.
Amati hasil ping: Setelah gangguan singkat, komunikasi dipulihkan. Hal ini menunjukkan bahwa lalu lintas secara otomatis dialihkan ke tunnel cadangan.
Pulihkan tunnel aktif: Ubah kembali kunci pra-bersama ke nilai yang benar. Lalu lintas secara otomatis kembali ke tunnel aktif setelah tunnel dipulihkan.
Pemecahan masalah
Masalah umum dan solusinya:
Gejala | Kemungkinan penyebab | Solusi |
Status tunnel di konsol menunjukkan Negotiation Failed. | Masalah konektivitas jaringan | Verifikasi bahwa perangkat strongSwan dapat melakukan ping ke alamat IP publik VPN Gateway. Verifikasi bahwa firewall IDC lokal mengizinkan traffic pada Port UDP 500 dan 4500. |
Ketidaksesuaian kunci pra-bersama | Verifikasi bahwa kunci pra-bersama identik di kedua ujung, termasuk kapitalisasi dan karakter khusus. | |
Ketidaksesuaian parameter IKE | Periksa apakah versi IKE, algoritma enkripsi, algoritma autentikasi, dan grup DH sesuai di kedua ujung. Gateway VPN Tradisional tidak mendukung beberapa suite algoritma. Parameter harus identik. | |
Tunnel berhasil dibuat, tetapi ping gagal. | Rute belum dikonfigurasi | Verifikasi bahwa rute tujuan untuk VPN Gateway telah dipublikasikan ke tabel rute VPC. |
Batasan security group | Verifikasi bahwa security group instance ECS mengizinkan traffic ICMP dari jaringan IDC lokal (172.16.0.0/16). | |
Batasan firewall lokal | Verifikasi bahwa firewall IDC lokal mengizinkan traffic dari VPC (10.0.0.0/16). | |
Rute tidak ada di perangkat strongSwan | Pastikan IP forwarding diaktifkan di perangkat strongSwan dan server lain di IDC lokal memiliki rute ke jaringan VPC dengan perangkat strongSwan sebagai lompatan berikutnya. |