Kom igång med att skapa en Internetuppkopplad lastbalanserare med IPv6 med Hjälp av PowerShell för Resource Manager

Kommentar

I den här artikeln beskrivs en introduktionsfunktion för IPv6 som gör det möjligt för Basic Load Balancers att tillhandahålla både IPv4- och IPv6-anslutning. Omfattande IPv6-anslutning är nu tillgänglig med IPv6 för virtuella Azure-nätverk som integrerar IPv6-anslutning med dina virtuella nätverk och innehåller viktiga funktioner som IPv6 Network Security Group-regler, IPv6 Användardefinierad routning, IPv6 Basic- och Standard-belastningsutjämning med mera. IPv6 för virtuella Azure-nätverk är den rekommenderade standarden för IPv6-program i Azure. Se IPv6 för Azure VNET PowerShell-distribution

En Azure Load Balancer är en Layer 4-lastbalanserare (TCP, UDP). Lastbalanseraren ger hög tillgänglighet genom att distribuera inkommande trafik mellan felfria tjänstinstanser i molntjänster eller virtuella datorer i en lastbalanseringsuppsättning. Azure Load Balancer kan även presentera dessa tjänster på flera portar, flera IP-adresser eller både och.

Kommentar

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Exempel på distributionsscenario

Följande diagram illustrerar den belastningsutjämningslösning som distribueras i den här artikeln.

Load balancer scenario

I det här scenariot skapar du följande Azure-resurser:

  • en Internetuppkopplad lastbalanserare med en IPv4 och en offentlig IP-adress för IPv6
  • två regler för belastningsutjämning för att mappa offentliga VIP:er till de privata slutpunkterna
  • en tillgänglighetsuppsättning som innehåller de två virtuella datorerna
  • två virtuella datorer
  • ett virtuellt nätverksgränssnitt för varje virtuell dator med både IPv4- och IPv6-adresser tilldelade

Distribuera lösningen med hjälp av Azure PowerShell

Följande steg visar hur du skapar en Internetuppkopplad lastbalanserare med Hjälp av Azure Resource Manager med PowerShell. Med Azure Resource Manager skapas och konfigureras varje resurs individuellt och sammanställs sedan för att skapa en resurs.

Om du vill distribuera en lastbalanserare skapar och konfigurerar du följande objekt:

  • Ip-konfiguration för klientdelen – innehåller offentliga IP-adresser för inkommande nätverkstrafik.
  • Serverdelsadresspool – innehåller nätverksgränssnitt (NIC) för de virtuella datorerna för att ta emot nätverkstrafik från lastbalanseraren.
  • Belastningsutjämningsregler – innehåller regler som mappar en offentlig port på lastbalanseraren till porten i serverdelsadresspoolen.
  • Inkommande NAT-regler – innehåller regler som mappar en offentlig port på lastbalanseraren till en port för en specifik virtuell dator i serverdelsadresspoolen.
  • Avsökningar – innehåller hälsoavsökningar som används för att kontrollera tillgängligheten för virtuella datorinstanser i serverdelsadresspoolen.

Mer information finns i Azure Load Balancer-komponenter.

Konfigurera PowerShell för användning med Resource Manager

Kontrollera att du har den senaste produktionsversionen av Azure Resource Manager-modulen för PowerShell.

  1. Logga in på Azure

    Connect-AzAccount
    

    Ange dina autentiseringsuppgifter när du uppmanas att göra det.

  2. Kontrollera kontots prenumerationer

     Get-AzSubscription
    
  3. Välj vilka av dina Azure-prenumerationer som du vill använda.

    Select-AzSubscription -SubscriptionId 'GUID of subscription'
    
  4. Skapa en resursgrupp (hoppa över det här steget om du använder en befintlig resursgrupp)

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

Skapa ett virtuellt nätverk och en offentlig IP-adress för klientdels-IP-poolen

  1. Skapa ett virtuellt nätverk med ett undernät.

    $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. Skapa Resurser för offentlig IP-adress i Azure (PIP) för klientdels-IP-adresspoolen. Se till att ändra värdet för -DomainNameLabel innan du kör följande kommandon. Värdet måste vara unikt i Azure-regionen.

    $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
    

    Viktigt!

    Lastbalanseraren använder domänetiketten för den offentliga IP-adressen som prefix för sitt fullständiga domännamn. I det här exemplet är FQDN:er lbnrpipv4.westus.cloudapp.azure.com och lbnrpipv6.westus.cloudapp.azure.com.

Skapa ip-konfigurationer för klientdelen och en serverdelsadresspool

  1. Skapa konfiguration av klientdelsadresser som använder de offentliga IP-adresser som du skapade.

    $FEIPConfigv4 = New-AzLoadBalancerFrontendIpConfig -Name "LB-Frontendv4" -PublicIpAddress $publicIPv4
    $FEIPConfigv6 = New-AzLoadBalancerFrontendIpConfig -Name "LB-Frontendv6" -PublicIpAddress $publicIPv6
    
  2. Skapa serverdelsadresspooler.

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

Skapa LB-regler, NAT-regler, en avsökning och en lastbalanserare

I det här exemplet skapas följande objekt:

  • en NAT-regel för att översätta all inkommande trafik på port 443 till port 4443
  • en lastbalanseringsregel för att balansera all inkommande trafik på port 80 till port 80 på adresserna i serverdelspoolen.
  • en lastbalanseringsregel som tillåter RDP-anslutning till de virtuella datorerna på port 3389.
  • en avsökningsregel för att kontrollera hälsostatusen på en sida med namnet HealthProbe.aspx eller en tjänst på port 8080
  • en lastbalanserare som använder alla dessa objekt
  1. Skapa NAT-reglerna.

    $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. Skapa en hälsoavsökning. Du kan konfigurera en avsökning på två sätt:

    HTTP-avsökning

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

    eller TCP-avsökning

    $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
    

    I det här exemplet ska vi använda TCP-avsökningarna.

  3. Skapa en lastbalanseringsregel.

    $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. Skapa lastbalanseraren med hjälp av tidigare skapade objekt.

    $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
    

Skapa nätverkskort för de virtuella serverdelsdatorerna

  1. Hämta det virtuella nätverket och undernätet för virtuellt nätverk, där nätverkskorten måste skapas.

    $vnet = Get-AzVirtualNetwork -Name VNet -ResourceGroupName NRP-RG
    $backendSubnet = Get-AzVirtualNetworkSubnetConfig -Name LB-Subnet-BE -VirtualNetwork $vnet
    
  2. Skapa IP-konfigurationer och nätverkskort för de virtuella datorerna.

    $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'
    

Skapa virtuella datorer och tilldela de nyligen skapade nätverkskorten

Mer information om hur du skapar en virtuell dator finns i Skapa och förkonfigurera en virtuell Windows-dator med Resource Manager och Azure PowerShell

  1. Skapa en tillgänglighetsuppsättning och ett lagringskonto

    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. Skapa varje virtuell dator och tilldela de tidigare skapade nätverkskorten

    $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