Pelajari cara membuat load balancer yang menghadap Internet dengan IPv6 menggunakan PowerShell untuk Resource Manager

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). Load balancer memberikan ketersediaan tinggi dengan mendistribusikan lalu lintas masuk di antara instans layanan yang berfungsi dengan baik di layanan cloud atau komputer virtual dalam set load balancer. Azure Load Balancer juga dapat menyajikan layanan ini di beberapa port atau beberapa alamat IP ataupun keduanya.

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Skenario penyebaran contoh

Diagram berikut ini menggambarkan solusi penyeimbangan beban yang sedang diterapkan dalam artikel ini.

Load balancer scenario

Dalam skenario ini Anda akan membuat sumber daya Azure berikut:

  • Load Balancer yang menghadap internet dengan alamat IP publik IPv4 dan IPv6
  • dua aturan penyeimbangan beban untuk memetakan VIP publik ke titik akhir privat
  • Set Ketersediaan yang berisi dua komputer virtual
  • dua komputer virtual (VM)
  • antarmuka jaringan virtual untuk tiap komputer virtual dengan alamat IPv4 dan IPv6 yang ditetapkan

Menerapkan solusi menggunakan Azure PowerShell

Langkah-langkah berikut ini memperlihatkan cara membuat load balancer yang menghadap Internet menggunakan Azure Resource Manager dengan PowerShell. Dengan Azure Resource Manager, setiap sumber daya dibuat dan dikonfigurasi secara individu, lalu disatukan untuk membuat sumber daya.

Untuk menyebarkan load balancer, 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 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 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.

Untuk informasi selengkapnya, lihat komponen Azure Load Balancer.

Menyiapkan PowerShell untuk menggunakan Manajer Sumber Daya

Pastikan Anda memiliki versi produksi terbaru modul Azure Resource Manager untuk PowerShell.

  1. Masuk ke Azure

    Connect-AzAccount
    

    Saat diminta, masukkan informasi masuk Anda.

  2. Lihat langganan untuk akun tersebut

     Get-AzSubscription
    
  3. Pilih langganan Azure mana yang akan digunakan.

    Select-AzSubscription -SubscriptionId 'GUID of subscription'
    
  4. Buat grup sumber daya baru (lewati langkah ini jika Anda menggunakan grup sumber daya yang sudah ada)

    New-AzResourceGroup -Name NRP-RG -location "West US"
    

Membuat jaringan virtual dan alamat IP publik untuk kumpulan IP frontend

  1. Membuat jaringan virtual dengan subnet.

    $backendSubnet = New-AzVirtualNetworkSubnetConfig -Name LB-Subnet-BE -AddressPrefix 10.0.2.0/24
    $vnet = New-AzvirtualNetwork -Name VNet -ResourceGroupName NRP-RG -Location 'West US' -AddressPrefix 10.0.0.0/16 -Subnet $backendSubnet
    
  2. Buat sumber daya alamat IP Publik Azure (PIP) untuk kumpulan alamat IP frontend. Pastikan untuk mengubah nilai -DomainNameLabel sebelum menjalankan perintah berikut. Nilai harus unik dalam wilayah Azure.

    $publicIPv4 = New-AzPublicIpAddress -Name 'pub-ipv4' -ResourceGroupName NRP-RG -Location 'West US' -AllocationMethod Static -IpAddressVersion IPv4 -DomainNameLabel lbnrpipv4
    $publicIPv6 = New-AzPublicIpAddress -Name 'pub-ipv6' -ResourceGroupName NRP-RG -Location 'West US' -AllocationMethod Dynamic -IpAddressVersion IPv6 -DomainNameLabel lbnrpipv6
    

    Penting

    Load balancer menggunakan label domain IP publik sebagai awalan untuk FQDN-nya. Dalam contoh ini, FQDN-nya adalah lbnrpipv4.westus.cloudapp.azure.com dan lbnrpipv6.westus.cloudapp.azure.com.

Membuat konfigurasi IP Frontend dan Kumpulan Alamat Backend

  1. Buat konfigurasi alamat frontend yang menggunakan alamat IP Publik yang Anda buat.

    $FEIPConfigv4 = New-AzLoadBalancerFrontendIpConfig -Name "LB-Frontendv4" -PublicIpAddress $publicIPv4
    $FEIPConfigv6 = New-AzLoadBalancerFrontendIpConfig -Name "LB-Frontendv6" -PublicIpAddress $publicIPv6
    
  2. Buat kumpulan alamat backend.

    $backendpoolipv4 = New-AzLoadBalancerBackendAddressPoolConfig -Name "BackendPoolIPv4"
    $backendpoolipv6 = New-AzLoadBalancerBackendAddressPoolConfig -Name "BackendPoolIPv6"
    

Buat aturan LB, aturan NAT, probe, dan load balancer

Contoh ini membuat item berikut:

  • Aturan NAT untuk menerjemahkan semua lalu lintas masuk pada port 443 ke port 4443
  • aturan load balancer untuk menyeimbangkan semua lalu lintas masuk pada port 80 ke port 80 pada alamat di kumpulan backend.
  • aturan load balancer untuk memungkinkan sambungan RDP ke VM pada port 3389.
  • aturan pemeriksaan untuk memeriksa status kesehatan pada halaman bernama HealthProbe.aspx atau layanan di port 8080
  • load balancer yang menggunakan semua objek ini
  1. Buat aturan NAT.

    $inboundNATRule1v4 = New-AzLoadBalancerInboundNatRuleConfig -Name "NicNatRulev4" -FrontendIpConfiguration $FEIPConfigv4 -Protocol TCP -FrontendPort 443 -BackendPort 4443
    $inboundNATRule1v6 = New-AzLoadBalancerInboundNatRuleConfig -Name "NicNatRulev6" -FrontendIpConfiguration $FEIPConfigv6 -Protocol TCP -FrontendPort 443 -BackendPort 4443
    
  2. Buat pemeriksaan kesehatan. Ada dua cara untuk mengonfigurasi probe:

    probe HTTP

    $healthProbe = New-AzLoadBalancerProbeConfig -Name 'HealthProbe-v4v6' -RequestPath 'HealthProbe.aspx' -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2
    

    atau pemeriksaan TCP

    $healthProbe = New-AzLoadBalancerProbeConfig -Name 'HealthProbe-v4v6' -Protocol Tcp -Port 8080 -IntervalInSeconds 15 -ProbeCount 2
    $RDPprobe = New-AzLoadBalancerProbeConfig -Name 'RDPprobe' -Protocol Tcp -Port 3389 -IntervalInSeconds 15 -ProbeCount 2
    

    Untuk contoh ini, kita akan menggunakan pemeriksaan TCP.

  3. Membuat aturan load balancer.

    $lbrule1v4 = New-AzLoadBalancerRuleConfig -Name "HTTPv4" -FrontendIpConfiguration $FEIPConfigv4 -BackendAddressPool $backendpoolipv4 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 8080
    $lbrule1v6 = New-AzLoadBalancerRuleConfig -Name "HTTPv6" -FrontendIpConfiguration $FEIPConfigv6 -BackendAddressPool $backendpoolipv6 -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 8080
    $RDPrule = New-AzLoadBalancerRuleConfig -Name "RDPrule" -FrontendIpConfiguration $FEIPConfigv4 -BackendAddressPool $backendpoolipv4 -Probe $RDPprobe -Protocol Tcp -FrontendPort 3389 -BackendPort 3389
    
  4. Buatload balancer menggunakan objek yang dibuat sebelumnya.

    $NRPLB = New-AzLoadBalancer -ResourceGroupName NRP-RG -Name 'myNrpIPv6LB' -Location 'West US' -FrontendIpConfiguration $FEIPConfigv4,$FEIPConfigv6 -InboundNatRule $inboundNATRule1v6,$inboundNATRule1v4 -BackendAddressPool $backendpoolipv4,$backendpoolipv6 -Probe $healthProbe,$RDPprobe -LoadBalancingRule $lbrule1v4,$lbrule1v6,$RDPrule
    

Membuat NIC untuk VM backend

  1. Dapatkan Jaringan Virtual dan Subnet Jaringan Virtual, tempat NIC perlu dibuat.

    $vnet = Get-AzVirtualNetwork -Name VNet -ResourceGroupName NRP-RG
    $backendSubnet = Get-AzVirtualNetworkSubnetConfig -Name LB-Subnet-BE -VirtualNetwork $vnet
    
  2. Buat konfigurasi IP dan NIC untuk komputer virtual.

    $nic1IPv4 = New-AzNetworkInterfaceIpConfig -Name "IPv4IPConfig" -PrivateIpAddressVersion "IPv4" -Subnet $backendSubnet -LoadBalancerBackendAddressPool $backendpoolipv4 -LoadBalancerInboundNatRule $inboundNATRule1v4
    $nic1IPv6 = New-AzNetworkInterfaceIpConfig -Name "IPv6IPConfig" -PrivateIpAddressVersion "IPv6" -LoadBalancerBackendAddressPool $backendpoolipv6 -LoadBalancerInboundNatRule $inboundNATRule1v6
    $nic1 = New-AzNetworkInterface -Name 'myNrpIPv6Nic0' -IpConfiguration $nic1IPv4,$nic1IPv6 -ResourceGroupName NRP-RG -Location 'West US'
    
    $nic2IPv4 = New-AzNetworkInterfaceIpConfig -Name "IPv4IPConfig" -PrivateIpAddressVersion "IPv4" -Subnet $backendSubnet -LoadBalancerBackendAddressPool $backendpoolipv4
    $nic2IPv6 = New-AzNetworkInterfaceIpConfig -Name "IPv6IPConfig" -PrivateIpAddressVersion "IPv6" -LoadBalancerBackendAddressPool $backendpoolipv6
    $nic2 = New-AzNetworkInterface -Name 'myNrpIPv6Nic1' -IpConfiguration $nic2IPv4,$nic2IPv6 -ResourceGroupName NRP-RG -Location 'West US'
    

Buat komputer virtual dan tetapkan NIC yang baru dibuat

Untuk informasi selengkapnya tentang pembuatan komputer virtual, lihat Membuat dan mengonfigurasi komputer virtual Windows dengan Resource Manager dan Azure PowerShell

  1. Buat Kumpulan Ketersediaan dan akun Penyimpanan

    New-AzAvailabilitySet -Name 'myNrpIPv6AvSet' -ResourceGroupName NRP-RG -location 'West US'
    $availabilitySet = Get-AzAvailabilitySet -Name 'myNrpIPv6AvSet' -ResourceGroupName NRP-RG
    New-AzStorageAccount -ResourceGroupName NRP-RG -Name 'mynrpipv6stacct' -Location 'West US' -SkuName "Standard_LRS"
    $CreatedStorageAccount = Get-AzStorageAccount -ResourceGroupName NRP-RG -Name 'mynrpipv6stacct'
    
  2. Buat setiap VM dan tetapkan NIC yang dibuat sebelumnya

    $mySecureCredentials= Get-Credential -Message "Type the username and password of the local administrator account."
    
    $vm1 = New-AzVMConfig -VMName 'myNrpIPv6VM0' -VMSize 'Standard_G1' -AvailabilitySetId $availabilitySet.Id
    $vm1 = Set-AzVMOperatingSystem -VM $vm1 -Windows -ComputerName 'myNrpIPv6VM0' -Credential $mySecureCredentials -ProvisionVMAgent -EnableAutoUpdate
    $vm1 = Set-AzVMSourceImage -VM $vm1 -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2012-R2-Datacenter -Version "latest"
    $vm1 = Add-AzVMNetworkInterface -VM $vm1 -Id $nic1.Id -Primary
    $osDisk1Uri = $CreatedStorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/myNrpIPv6VM0osdisk.vhd"
    $vm1 = Set-AzVMOSDisk -VM $vm1 -Name 'myNrpIPv6VM0osdisk' -VhdUri $osDisk1Uri -CreateOption FromImage
    New-AzVM -ResourceGroupName NRP-RG -Location 'West US' -VM $vm1
    
    $vm2 = New-AzVMConfig -VMName 'myNrpIPv6VM1' -VMSize 'Standard_G1' -AvailabilitySetId $availabilitySet.Id
    $vm2 = Set-AzVMOperatingSystem -VM $vm2 -Windows -ComputerName 'myNrpIPv6VM1' -Credential $mySecureCredentials -ProvisionVMAgent -EnableAutoUpdate
    $vm2 = Set-AzVMSourceImage -VM $vm2 -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2012-R2-Datacenter -Version "latest"
    $vm2 = Add-AzVMNetworkInterface -VM $vm2 -Id $nic2.Id -Primary
    $osDisk2Uri = $CreatedStorageAccount.PrimaryEndpoints.Blob.ToString() + "vhds/myNrpIPv6VM1osdisk.vhd"
    $vm2 = Set-AzVMOSDisk -VM $vm2 -Name 'myNrpIPv6VM1osdisk' -VhdUri $osDisk2Uri -CreateOption FromImage
    New-AzVM -ResourceGroupName NRP-RG -Location 'West US' -VM $vm2