Instans Network Load Balancer (NLB) dual-stack mendukung afinitas versi IP. Saat fitur ini diaktifkan, permintaan IPv4 diteruskan ke server backend IPv4 dan permintaan IPv6 diteruskan ke server backend IPv6, sehingga memungkinkan pengarahan traffic berdasarkan protokol IP dan menyederhanakan arsitektur jaringan Anda.
Arsitektur
Skenario
Selama migrasi dari lingkungan IPv4 ke IPv6, layanan IPv4 dan IPv6 sering kali perlu berjalan berdampingan. Ketika kelompok server berisi server backend IPv4 dan IPv6, instans NLB secara default tidak membedakan versi IP dari permintaan klien, melainkan meneruskan traffic hanya berdasarkan algoritma penjadwalan yang dikonfigurasi, seperti round-robin atau least connections.
Hal ini dapat menyebabkan cross-protocol forwarding. Misalnya, permintaan dari klien IPv6 mungkin diteruskan ke server backend IPv4-only, atau sebaliknya. Ketidaksesuaian protokol ini dapat menyebabkan masalah berikut:
Server backend tidak dapat memperoleh alamat IP klien asli, yang memengaruhi analisis regional berbasis sumber dan kontrol akses.
Untuk memperoleh alamat IP sumber, Anda harus men-deploy lapisan proxy tambahan, seperti Nginx dengan Proxy Protocol diaktifkan, yang meningkatkan biaya operasional.
Solusi
Kelompok server NLB mendukung afinitas versi IP, yang menyediakan penerusan berbasis afinitas 4-ke-4 dan 6-ke-6.
Server backend dapat langsung memperoleh alamat IP klien asli, sehingga menghilangkan kebutuhan akan lapisan proxy tambahan. Jika semua server backend untuk protokol tertentu gagal dalam pemeriksaan kesehatan, permintaan akan diteruskan sebaik mungkin ke server lain dalam kelompok protokol yang sama, tetapi tidak akan dialihkan lintas protokol.
Prasyarat
Anda telah mendaftarkan nama domain kustom. Tutorial ini menggunakan wilayah China (Shanghai) untuk menerapkan instans NLB. Oleh karena itu, Anda harus mengajukan pendaftaran ICP untuk nama domain Anda.
Prosedur
Sebelum memulai, pastikan Anda telah membuat VPC bernama VPC1 di wilayah China (Shanghai), membuat vSwitch VSW1 dan VSW2 di zona ketersediaan E dan G masing-masing, serta mengaktifkan IPv6 pada vSwitch tersebut.
1. Buat Instance ECS dan Terapkan Layanan
Buat dua instance ECS dengan konfigurasi berikut.
Parameter
Wilayah
VPC
vSwitch
Versi IP
Citra
ecs-ipv4
China (Shanghai)
VPC1VSW1IPv4
Alibaba Cloud Linux 3.2104 LTS 64-bit
ecs-ipv6
VSW2IPv6
Saat membeli instance ECS, pada bagian Network and Security Group, pilih Assign IPv6 Address for Free.
Lakukan koneksi jarak jauh ke
ecs-ipv4danecs-ipv6, lalu jalankan perintah berikut untuk menerapkan layanan Nginx.ecs-ipv4
sudo yum install -y nginx sudo systemctl start nginx echo "Hello from IPv4 backend" | sudo tee /usr/share/nginx/html/index.htmlecs-ipv6
sudo yum install -y nginx sudo systemctl start nginx echo "Hello from IPv6 backend" | sudo tee /usr/share/nginx/html/index.htmlTambahkan aturan inbound ke grup keamanan kedua instance ECS untuk mengizinkan lalu lintas inbound pada port 80. Pastikan aturan tersebut memiliki prioritas yang cukup tinggi.
Parameter
Kebijakan otorisasi
Protokol
Sumber
Tujuan
ecs-ipv4
Allow
Custom TCP
Setelah memilih
IPv4, pilihThis VPC CIDR Block.Setelah memilih
Port, pilihHTTP (80).ecs-ipv6
Setelah memilih
IPv6, pilihThis VPC CIDR Block.
Untuk informasi selengkapnya, lihat Buat instans menggunakan wizard, Hubungkan ke instance ECS, dan Tambahkan aturan grup keamanan.
2. Buat Instans NLB Dual-Stack
Login ke Konsol NLB, pilih wilayah China (Shanghai), lalu klik Create NLB.
Tentukan parameter berikut, pertahankan nilai default untuk opsi lainnya, lalu klik Create Now:
Network Type: Pilih Public.
VPC: Pilih
VPC1.Zone: Pilih zona ketersediaan E dan G, pilih vSwitch yang sesuai
VSW1danVSW2, lalu pilih Automatically Assign Public IP Address.Protocol version: Pilih DualStack .
Setelah instans dibuat, klik ID instans untuk membuka halaman Instance Details. Di bagian Basic Information, temukan Network Type, lalu klik Change Network Type di sebelah kanan IPv6: Private. Pada kotak dialog yang muncul, klik OK. Kemudian, verifikasi bahwa jenis jaringan IPv6 kini bersifat publik.
3. Buat Kelompok Server Dual-Stack dan Aktifkan Afinitas
Di Konsol Kelompok Server, klik Create Server Group.
Tentukan parameter berikut dan klik Create:
Server Group Type: Pilih Server.
Server Group Name: Masukkan
sgp-dualstack.VPC: Pilih
VPC1.Backend Server Protocol: Pilih TCP.
IP Version: Pilih IPv4/IPv6 dual-stack. Ini memungkinkan Anda menambahkan server backend IPv4 dan IPv6.
IP Version Affinity: Pilih Affinity mode. Saat diaktifkan, permintaan IPv4 hanya diteruskan ke server backend IPv4, dan permintaan IPv6 hanya diteruskan ke server backend IPv6.
Pada kotak dialog The server group is created, klik Add Backend Server. Di kolom IP, pilih alamat IPv4 untuk
ecs-ipv4dan alamat IPv6 untukecs-ipv6. Pilih kedua instans tersebut lalu klik Next.Saat menambahkan server backend IPv6 secara batch, Anda dapat mengklik ikon pengaturan di sebelah header kolom IP dan pilih Prefer IPv6 over IPv4. Sistem kemudian akan memilih alamat IPv6 server secara default.
Pada langkah Ports/Weights, atur Port kedua server menjadi
80lalu klik OK.
4. Buat Pendengar
Di Konsol NLB, klik ID instans target untuk membuka halaman Instance Details. Di tab Listener, klik Create Listener.
Pada langkah Configure Listener, atur Listener Protocol menjadi TCP, masukkan
80untuk Listener Port, lalu klik Next.Pada langkah Select Server Group, pilih kelompok server
sgp-dualstacklalu klik Next.Pada langkah Configuration Review, konfirmasi konfigurasi lalu klik Submit.
5. Konfigurasi Rekaman DNS
Buat rekaman CNAME untuk memetakan nama domain kustom Anda ke nama DNS instans NLB. Hal ini memungkinkan klien mengakses instans NLB melalui nama domain Anda.
Tutorial ini menggunakan Alibaba Cloud DNS sebagai contoh. Jika nama domain Anda tidak terdaftar di Alibaba Cloud, Anda harus terlebih dahulu menambahkan nama domain ke konsol Alibaba Cloud DNS.
Di Konsol NLB, salin Domain Name dari instans target.
Login ke Konsol Alibaba Cloud DNS. Di kolom Actions nama domain target, klik Settings. Di halaman Settings, klik Add Record.
Tambahkan rekaman CNAME dengan pengaturan berikut lalu klik OK:
Record Type: Pilih CNAME.
Hostname: Masukkan awalan untuk nama domain, misalnya
test. Jika nama domain root Anda adalahexample.com, nama domain yang digunakan untuk mengakses instans NLB adalahtest.example.com.Query Source dan TTL: Pertahankan nilai default.
Record Value: Masukkan nama DNS instans NLB.
Pada kotak dialog Change Resource Record Confirmation, konfirmasi informasi rekaman DNS lalu klik OK.
6. Verifikasi Penerusan Berbasis Afinitas
Saat klien mengakses instans NLB dual-stack dengan alamat IPv6 publik melalui nama domain kustom, server DNS mengembalikan rekaman A (alamat IPv4) atau rekaman AAAA (alamat IPv6) berdasarkan versi IP dari kueri DNS klien.
Uji Permintaan IPv4
curl -4 http://test.example.comSetelah beberapa permintaan, respons selalu berupa Hello from IPv4 backend. Hal ini menunjukkan bahwa permintaan IPv4 diteruskan ke server backend IPv4 ecs-ipv4.
Uji Permintaan IPv6
curl -6 http://test.example.comSetelah beberapa permintaan, respons selalu berupa Hello from IPv6 backend. Hal ini menunjukkan bahwa permintaan IPv6 diteruskan ke server backend IPv6 ecs-ipv6.
Verifikasi Isolasi Afinitas
Hentikan layanan Nginx pada
ecs-ipv4dengan menjalankan perintah berikut:sudo systemctl stop nginx.Uji kembali permintaan IPv4. Permintaan gagal dan tidak diteruskan ke server backend IPv6
ecs-ipv6.Pulihkan layanan pada
ecs-ipv4dengan menjalankan perintah berikut:sudo systemctl start nginx. Permintaan IPv4 kini berfungsi seperti yang diharapkan.
Informasi Lebih Lanjut
Penagihan
Instans NLB: NLB mendukung dua metode penagihan: pay-as-you-go dan paket sumber daya. Untuk informasi selengkapnya, lihat penagihan NLB.
Instance ECS: Untuk informasi selengkapnya, lihat Ikhtisar penagihan ECS. Jika Anda membuat instance ECS untuk tujuan pengujian, kami menyarankan agar Anda membuat instance berbayar sesuai penggunaan dengan spesifikasi rendah dan segera melepaskannya setelah pengujian untuk menghindari biaya yang tidak perlu.
Biaya nama domain dan resolusi DNS: Selain biaya nama domain yang dikenakan oleh penyedia nama domain Anda, Alibaba Cloud juga mengenakan biaya DNS otoritatif publik untuk resolusi DNS.
Biaya jaringan publik: Biaya jaringan publik berlaku untuk EIP yang terkait dengan instans NLB dan bandwidth publik IPv6 dari VPC tempat instans tersebut berada.
Wilayah yang Mendukung NLB Dual-Stack
Pertimbangan Lingkungan Produksi
Penerapan ketersediaan tinggi: Terapkan server backend di beberapa zona ketersediaan. Pastikan redundansi untuk backend IPv4 dan IPv6 guna mencegah single point of failure.
Konfigurasi pemeriksaan kesehatan: Sesuaikan interval pemeriksaan kesehatan, periode timeout, dan ambang batas berdasarkan kebutuhan bisnis Anda untuk memastikan server yang tidak sehat segera dihapus.
FAQ
Apakah permintaan IPv4 diteruskan ke backend IPv6 dalam mode afinitas?
Tidak. Saat mode afinitas diaktifkan, permintaan IPv4 hanya diteruskan ke server backend IPv4, dan permintaan IPv6 hanya diteruskan ke server backend IPv6. Cross-protocol forwarding tidak terjadi.
Bagaimana permintaan IPv6 ditangani jika hanya tersedia backend IPv4?
Jika mode afinitas dinonaktifkan, NLB dapat menerjemahkan permintaan IPv6 ke IPv4 dan mengirimkannya ke server backend. Jika mode afinitas diaktifkan, permintaan IPv6 tidak dapat diteruskan. Dalam skenario ini, Anda harus menambahkan server backend untuk kedua versi IP ke kelompok server agar permintaan IPv4 dan IPv6 dapat diproses.
Dapatkah saya mengubah versi IP kelompok server?
Tidak. Versi protokol IP kelompok server (IPv4 atau IPv4/IPv6 dual-stack) tidak dapat diubah setelah kelompok server dibuat. Untuk mengubah versi, Anda harus menghapus kelompok server tersebut dan membuat yang baru.
Dapatkah saya mengubah IP version affinity kelompok server?
Ya. Di Konsol Kelompok Server, temukan kelompok server dual-stack yang dituju, lalu klik Modify Basic Information pada kolom Actions untuk mengubah pengaturan.
Dapatkah kelompok server dual-stack dikaitkan dengan NLB IPv4-only?
Tidak. Kelompok server dual-stack hanya dapat dikaitkan dengan pendengar instans NLB dual-stack.