Membuat penyeimbang muatan publik dengan IPv6 menggunakan Azure CLI
Catatan
Artikel ini menjelaskan pengenalan fitur IPv6 untuk mengizinkan Penyeimbang Muatan Dasar menyediakan konektivitas IPv4 dan IPv6. Konektivitas IPv6 lengkap kini tersedia dengan IPv6 untuk Azure VNET yang mengintegrasikan konektivitas IPv6 dengan Virtual Network Anda dan mencakup fitur utama seperti aturan Kelompok Keamanan Jaringan IPv6, perutean yang ditetapkan Pengguna IPv6, penyeimbangan beban Dasar dan Standar IPv6, dan banyak lagi. IPv6 untuk Azure VNET adalah standar yang direkomendasikan untuk aplikasi IPv6 di Azure. Lihat Penyebaran PowerShell IPv6 untuk Azure VNET
Load balancer Azure adalah load balancer Lapisan-4 (TCP, UDP). Penyeimbang muatan memberikan ketersediaan tinggi dengan mendistribusikan lalu lintas masuk di antara instans layanan yang berfungsi dengan baik di layanan cloud atau komputer virtual dalam set penyeimbang muatan. Penyeimbang muatan juga dapat menyajikan layanan ini di beberapa port atau beberapa alamat IP ataupun keduanya.
Skenario penyebaran contoh
Diagram berikut mengilustrasikan solusi penyeimbangan muatan yang disebarkan dengan menggunakan templat contoh yang dijelaskan dalam artikel ini.
Dalam skenario ini, Anda membuat sumber daya Azure berikut:
- Dua komputer virtual (VM)
- Antarmuka jaringan virtual untuk tiap VM dengan alamat IPv4 dan IPv6 yang ditetapkan
- Penyeimbang muatan publik dengan alamat IP publik IPv4 dan IPv6
- Set ketersediaan yang berisi dua VM
- Dua aturan penyeimbangan muatan untuk memetakan VIP publik ke titik akhir privat
Menyebarkan solusi dengan menggunakan Azure CLI
Langkah-langkah berikut menunjukkan cara membuat penyeimbang muatan publik dengan menggunakan Azure CLI. Dengan menggunakan CLI, Anda membuat dan mengonfigurasi tiap objek satu per satu, lalu menyatukannya untuk membuat sumber daya.
Untuk menyebarkan penyeimbang muatan, buat dan konfigurasi objek berikut:
- Konfigurasi IP frontend: Berisi alamat IP publik untuk lalu lintas jaringan masuk.
- Kumpulan alamat backend: Berisi antarmuka jaringan (NIC) agar komputer virtual menerima lalu lintas jaringan dari load balancer.
- Aturan penyeimbangan beban: Berisi aturan yang memetakan port publik pada load balancer ke port di kumpulan alamat backend.
- Aturan NAT masuk: Berisi aturan network address translation (NAT) yang memetakan port publik pada load balancer ke port untuk komputer virtual tertentu di kumpulan alamat backend.
- Pemeriksaan: Berisi pemeriksaan kesehatan yang digunakan untuk memeriksa ketersediaan instans komputer virtual di kumpulan alamat backend.
Menyiapkan Azure CLI
Dalam contoh ini, Anda menjalankan alat Azure CLI di jendela perintah PowerShell. Untuk meningkatkan keterbacaan dan penggunaan kembali, Anda menggunakan kemampuan pembuatan skrip PowerShell, bukan cmdlet Azure PowerShell.
Instal dan Konfigurasi Azure CLI dengan mengikuti langkah-langkah dalam artikel yang ditautkan dan masuk ke akun Azure Anda.
Menyiapkan variabel PowerShell untuk digunakan dengan perintah Azure CLI:
$subscriptionid = "########-####-####-####-############" # enter subscription id $location = "southcentralus" $rgName = "pscontosorg1southctrlus09152016" $vnetName = "contosoIPv4Vnet" $vnetPrefix = "10.0.0.0/16" $subnet1Name = "clicontosoIPv4Subnet1" $subnet1Prefix = "10.0.0.0/24" $subnet2Name = "clicontosoIPv4Subnet2" $subnet2Prefix = "10.0.1.0/24" $dnsLabel = "contoso09152016" $lbName = "myIPv4IPv6Lb"
Membuat grup sumber daya, penyeimbang muatan, jaringan virtual, dan subnet
Membuat grup sumber daya:
az group create --name $rgName --location $location
Membuat penyeimbang muatan:
$lb = az network lb create --resource-group $rgname --location $location --name $lbName
Buat jaringan virtual:
$vnet = az network vnet create --resource-group $rgname --name $vnetName --location $location --address-prefixes $vnetPrefix
Dalam jaringan virtual ini, buat dua subnet:
$subnet1 = az network vnet subnet create --resource-group $rgname --name $subnet1Name --address-prefix $subnet1Prefix --vnet-name $vnetName $subnet2 = az network vnet subnet create --resource-group $rgname --name $subnet2Name --address-prefix $subnet2Prefix --vnet-name $vnetName
Membuat alamat IP publik untuk kumpulan frontend
Menyiapkan variabel PowerShell:
$publicIpv4Name = "myIPv4Vip" $publicIpv6Name = "myIPv6Vip"
Buat alamat IP publik untuk kumpulan IP frontend:
$publicipV4 = az network public-ip create --resource-group $rgname --name $publicIpv4Name --location $location --version IPv4 --allocation-method Dynamic --dns-name $dnsLabel $publicipV6 = az network public-ip create --resource-group $rgname --name $publicIpv6Name --location $location --version IPv6 --allocation-method Dynamic --dns-name $dnsLabel
Penting
Penyeimbang muatan menggunakan label domain IP publik sebagai nama domain yang sepenuhnya memenuhi syarat (FQDN). Ini adalah perubahan dari penyebaran klasik, yang menggunakan nama layanan cloud sebagai FQDN penyeimbang muatan.
Dalam contoh ini, FQDN adalah contoso09152016.southcentralus.cloudapp.azure.com.
Membuat kumpulan ujung depan dan backend
Di bagian ini, Anda membuat kumpulan IP berikut:
- Kumpulan IP frontend yang menerima lalu lintas jaringan masuk pada load balancer.
- Kumpulan IP backend tempat kumpulan frontend mengirim lalu lintas jaringan yang seimbang beban.
Menyiapkan variabel PowerShell:
$frontendV4Name = "FrontendVipIPv4" $frontendV6Name = "FrontendVipIPv6" $backendAddressPoolV4Name = "BackendPoolIPv4" $backendAddressPoolV6Name = "BackendPoolIPv6"
Buat kumpulan IP frontend, dan kaitkan dengan IP publik yang Anda buat di langkah sebelumnya dan load balancer.
$frontendV4 = az network lb frontend-ip create --resource-group $rgname --name $frontendV4Name --public-ip-address $publicIpv4Name --lb-name $lbName $frontendV6 = az network lb frontend-ip create --resource-group $rgname --name $frontendV6Name --public-ip-address $publicIpv6Name --lb-name $lbName $backendAddressPoolV4 = az network lb address-pool create --resource-group $rgname --name $backendAddressPoolV4Name --lb-name $lbName $backendAddressPoolV6 = az network lb address-pool create --resource-group $rgname --name $backendAddressPoolV6Name --lb-name $lbName
Membuat probe, aturan NAT, dan aturan penyeimbang muatan
Contoh ini membuat item berikut:
- Aturan probe untuk memeriksa konektivitas ke port TCP 80.
- Aturan NAT untuk menerjemahkan semua lalu lintas masuk pada port 3389 ke port 3389 untuk RDP.*
- Aturan NAT untuk menerjemahkan semua lalu lintas masuk pada port 3391 ke port 3389 untuk protokol desktop jarak jauh (RDP).*
- Aturan load balancer untuk menyeimbangkan semua lalu lintas masuk pada port 80 ke port 80 pada alamat di kumpulan backend.
* Aturan NAT dikaitkan dengan instans komputer virtual tertentu di belakang penyeimbang muatan. Lalu lintas jaringan yang tiba di port 3389 dikirim ke komputer virtual dan port tertentu yang terkait dengan aturan NAT. Anda harus menentukan protokol (UDP atau TCP) untuk aturan NAT. Anda tidak dapat menetapkan kedua protokol ke port yang sama.
Menyiapkan variabel PowerShell:
$probeV4V6Name = "ProbeForIPv4AndIPv6" $natRule1V4Name = "NatRule-For-Rdp-VM1" $natRule2V4Name = "NatRule-For-Rdp-VM2" $lbRule1V4Name = "LBRuleForIPv4-Port80" $lbRule1V6Name = "LBRuleForIPv6-Port80"
Buat probe.
Contoh berikut membuat pemeriksaan TCP yang memeriksa konektivitas ke port TCP backend 80 setiap 15 detik. Setelah dua kegagalan berturut-turut, itu menandai sumber daya backend sebagai tidak tersedia.
$probeV4V6 = az network lb probe create --resource-group $rgname --name $probeV4V6Name --protocol tcp --port 80 --interval 15 --threshold 2 --lb-name $lbName
Buat aturan NAT masuk yang memungkinkan koneksi RDP ke sumber daya backend:
$inboundNatRuleRdp1 = az network lb inbound-nat-rule create --resource-group $rgname --name $natRule1V4Name --frontend-ip-name $frontendV4Name --protocol Tcp --frontend-port 3389 --backend-port 3389 --lb-name $lbName $inboundNatRuleRdp2 = az network lb inbound-nat-rule create --resource-group $rgname --name $natRule2V4Name --frontend-ip-name $frontendV4Name --protocol Tcp --frontend-port 3391 --backend-port 3389 --lb-name $lbName
Buat aturan load balancer yang mengirim lalu lintas ke port backend yang berbeda, tergantung pada ujung depan yang menerima permintaan.
$lbruleIPv4 = az network lb rule create --resource-group $rgname --name $lbRule1V4Name --frontend-ip-name $frontendV4Name --backend-pool-name $backendAddressPoolV4Name --probe-name $probeV4V6Name --protocol Tcp --frontend-port 80 --backend-port 80 --lb-name $lbName $lbruleIPv6 = az network lb rule create --resource-group $rgname --name $lbRule1V6Name --frontend-ip-name $frontendV6Name --backend-pool-name $backendAddressPoolV6Name --probe-name $probeV4V6Name --protocol Tcp --frontend-port 80 --backend-port 8080 --lb-name $lbName
Memeriksa pengaturan Anda:
az network lb show --resource-group $rgName --name $lbName
Output yang diharapkan:
info: Executing command network lb show info: Looking up the load balancer "myIPv4IPv6Lb" data: Id : /subscriptions/########-####-####-####-############/resourceGroups/pscontosorg1southctrlus09152016/providers/Microsoft.Network/loadBalancers/myIPv4IPv6Lb data: Name : myIPv4IPv6Lb data: Type : Microsoft.Network/loadBalancers data: Location : southcentralus data: Provisioning state : Succeeded data: data: Frontend IP configurations: data: Name Provisioning state Private IP allocation Private IP Subnet Public IP data: --------------- ------------------ --------------------- ----------- ------ --------- data: FrontendVipIPv4 Succeeded Dynamic myIPv4Vip data: FrontendVipIPv6 Succeeded Dynamic myIPv6Vip data: data: Probes: data: Name Provisioning state Protocol Port Path Interval Count data: ------------------- ------------------ -------- ---- ---- -------- ----- data: ProbeForIPv4AndIPv6 Succeeded Tcp 80 15 2 data: data: Backend Address Pools: data: Name Provisioning state data: --------------- ------------------ data: BackendPoolIPv4 Succeeded data: BackendPoolIPv6 Succeeded data: data: Load Balancing Rules: data: Name Provisioning state Load distribution Protocol Frontend port Backend port Enable floating IP Idle timeout in minutes data: -------------------- ------------------ ----------------- -------- ------------- ------------ ------------------ ----------------------- data: LBRuleForIPv4-Port80 Succeeded Default Tcp 80 80 false 4 data: LBRuleForIPv6-Port80 Succeeded Default Tcp 80 8080 false 4 data: data: Inbound NAT Rules: data: Name Provisioning state Protocol Frontend port Backend port Enable floating IP Idle timeout in minutes data: ------------------- ------------------ -------- ------------- ------------ ------------------ ----------------------- data: NatRule-For-Rdp-VM1 Succeeded Tcp 3389 3389 false 4 data: NatRule-For-Rdp-VM2 Succeeded Tcp 3391 3389 false 4 info: network lb show
Membuat NIC
Buat NIC dan kaitkan dengan aturan NAT, aturan penyeimbang muatan, dan probe.
Menyiapkan variabel PowerShell:
$nic1Name = "myIPv4IPv6Nic1" $nic2Name = "myIPv4IPv6Nic2" $subnet1Id = "/subscriptions/$subscriptionid/resourceGroups/$rgName/providers/Microsoft.Network/VirtualNetworks/$vnetName/subnets/$subnet1Name" $subnet2Id = "/subscriptions/$subscriptionid/resourceGroups/$rgName/providers/Microsoft.Network/VirtualNetworks/$vnetName/subnets/$subnet2Name" $backendAddressPoolV4Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/backendAddressPools/$backendAddressPoolV4Name" $backendAddressPoolV6Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/backendAddressPools/$backendAddressPoolV6Name" $natRule1V4Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/inboundNatRules/$natRule1V4Name" $natRule2V4Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/inboundNatRules/$natRule2V4Name"
Membuat NIC untuk tiap ujung belakang, dan menambahkan konfigurasi IPv6:
$nic1 = az network nic create --name $nic1Name --resource-group $rgname --location $location --private-ip-address-version "IPv4" --subnet $subnet1Id --lb-address-pools $backendAddressPoolV4Id --lb-inbound-nat-rules $natRule1V4Id $nic1IPv6 = az network nic ip-config create --resource-group $rgname --name "IPv6IPConfig" --private-ip-address-version "IPv6" --lb-address-pools $backendAddressPoolV6Id --nic-name $nic1Name $nic2 = az network nic create --name $nic2Name --resource-group $rgname --location $location --private-ip-address-version "IPv4" --subnet $subnet2Id --lb-address-pools $backendAddressPoolV4Id --lb-inbound-nat-rules $natRule2V4Id $nic2IPv6 = az network nic ip-config create --resource-group $rgname --name "IPv6IPConfig" --private-ip-address-version "IPv6" --lb-address-pools $backendAddressPoolV6Id --nic-name $nic2Name
Buat sumber daya VM backend, dan lampirkan setiap NIC
Untuk membuat VM, Anda harus memiliki akun penyimpanan. Untuk penyeimbangan muatan, VM harus menjadi anggota dari set ketersediaan. Untuk informasi selengkapnya tentang membuat VM, lihat Membuat Azure VM dengan menggunakan PowerShell.
Menyiapkan variabel PowerShell:
$availabilitySetName = "myIPv4IPv6AvailabilitySet" $vm1Name = "myIPv4IPv6VM1" $vm2Name = "myIPv4IPv6VM2" $nic1Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/networkInterfaces/$nic1Name" $nic2Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/networkInterfaces/$nic2Name" $imageurn = "MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest" $vmUserName = "vmUser" $mySecurePassword = "PlainTextPassword*1"
Peringatan
Contoh ini menggunakan nama pengguna dan kata sandi untuk VM dalam teksbersih. Berhati-hatilah saat Anda menggunakan kredensial ini dalam teksbersih. Untuk metode penanganan kredensial yang lebih aman di PowerShell, lihat cmdlet
Get-Credential
.Membuat set ketersediaan:
$availabilitySet = az vm availability-set create --name $availabilitySetName --resource-group $rgName --location $location
Membuat komputer virtual dengan NIC terkait:
az vm create --resource-group $rgname --name $vm1Name --image $imageurn --admin-username $vmUserName --admin-password $mySecurePassword --nics $nic1Id --location $location --availability-set $availabilitySetName --size "Standard_A1" az vm create --resource-group $rgname --name $vm2Name --image $imageurn --admin-username $vmUserName --admin-password $mySecurePassword --nics $nic2Id --location $location --availability-set $availabilitySetName --size "Standard_A1"