Membuat penyeimbang muatan publik dengan IPv6 menggunakan Azure CLI
Catatan
Artikel ini menjelaskan pengenalan fitur IPv6 untuk mengizinkan Load Balancer 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
Penyeimbang muatan Azure adalah penyeimbang muatan 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.
Contoh skenario penyebaran
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 ujung depan: Berisi alamat IP publik untuk lalu lintas jaringan masuk.
- Kumpulan alamat ujung belakang: Berisi antarmuka jaringan (NIC) agar komputer virtual menerima lalu lintas jaringan dari penyeimbang muatan.
- Aturan penyeimbangan muatan: Berisi aturan yang memetakan port publik pada penyeimbang muatan ke port di kumpulan alamat ujung belakang.
- Aturan NAT masuk: Berisi aturan terjemahan alamat jaringan (NAT) yang memetakan port publik pada penyeimbang muatan ke port untuk komputer virtual tertentu di kumpulan alamat ujung belakang.
- Probe: Berisi pemeriksaan kesehatan yang digunakan untuk memeriksa ketersediaan instans komputer virtual di kumpulan alamat ujung belakang.
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 $locationMembuat penyeimbang muatan:
$lb = az network lb create --resource-group $rgname --location $location --name $lbNameMembuat jaringan virtual:
$vnet = az network vnet create --resource-group $rgname --name $vnetName --location $location --address-prefixes $vnetPrefixDalam 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 ujung depan
Menyiapkan variabel PowerShell:
$publicIpv4Name = "myIPv4Vip" $publicIpv6Name = "myIPv6Vip"Membuat alamat IP publik untuk kumpulan IP ujung depan:
$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 $dnsLabelPenting
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 ujung belakang
Di bagian ini, Anda membuat kumpulan IP berikut:
- Kumpulan IP ujung depan yang menerima lalu lintas jaringan masuk pada penyeimbang muatan.
- Kumpulan IP ujung belakang tempat kumpulan ujung depan mengirimkan lalu lintas jaringan dengan muatan seimbang.
Menyiapkan variabel PowerShell:
$frontendV4Name = "FrontendVipIPv4" $frontendV6Name = "FrontendVipIPv6" $backendAddressPoolV4Name = "BackendPoolIPv4" $backendAddressPoolV6Name = "BackendPoolIPv6"Buat kumpulan IP ujung depan, dan kaitkan dengan IP publik yang Anda buat di langkah sebelumnya dan penyeimbang muatan.
$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 penyeimbang muatan untuk menyeimbangkan semua lalu lintas masuk pada port 80 ke port 80 pada alamat di kumpulan ujung belakang.
* 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 tersebut 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 probe TCP yang memeriksa konektivitas ke port 80 TCP ujung belakang setiap 15 detik. Dua kegagalan berturut-turut menandakan sumber daya ujung belakang tidak tersedia.
$probeV4V6 = az network lb probe create --resource-group $rgname --name $probeV4V6Name --protocol tcp --port 80 --interval 15 --threshold 2 --lb-name $lbNameMembuat aturan NAT masuk yang memungkinkan koneksi RDP ke sumber daya ujung belakang:
$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 $lbNameBuat aturan penyeimbang muatan yang mengirim lalu lintas ke port ujung belakang 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 $lbNameMemeriksa pengaturan Anda:
az network lb show --resource-group $rgName --name $lbNameOutput 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
Membuat sumber daya VM ujung belakang, dan melampirkan tiap 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 $locationMembuat 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"