Kom igång med att skapa en Lastbalanserare mot Internet med IPv6 med hjälp av PowerShell för Resource Manager

Anteckning

I den här artikeln beskrivs en introduktionsfunktion i IPv6 som gör att grundläggande lastbalanserare kan tillhandahålla både IPv4- och IPv6-anslutningar. 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 regler för IPv6-nätverkssäkerhetsgrupp, användardefinierad routning för IPv6, IPv6 Basic- och Standard-belastningsutjämning med mera. IPv6 för virtuella Azure-datorer ä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.

Anteckning

I den här artikeln används Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för att interagera med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Exempelscenario för distribution

Följande diagram illustrerar lastbalanseringslösningen som distribueras i den här artikeln.

Lastbalanseringsscenario

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

  • en Internetuppriktad Load Balancer IPv4 och en offentlig IP-adress för IPv6
  • två belastningsutjämningsregler för att mappa de offentliga VIP:erna till de privata slutpunkterna
  • en tillgänglighetsuppsättning till som innehåller de två virtuella datorerna
  • två virtuella datorer (VM)
  • ett virtuellt nätverksgränssnitt för varje virtuell dator med tilldelade både IPv4- och IPv6-adresser

Distribuera lösningen med hjälp av Azure PowerShell

Följande steg visar hur du skapar en Internetuppriktad lastbalanserare med hjälp Azure Resource Manager med PowerShell. Med Azure Resource Manager skapas och konfigureras varje resurs individuellt och sätts sedan ihop för att skapa en resurs.

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

  • Ip-konfiguration för frontend – innehåller offentliga IP-adresser för inkommande nätverkstrafik.
  • Backend-adresspool – innehåller nätverksgränssnitt (NIC) som de virtuella datorerna kan använda för att ta emot nätverkstrafik från lastbalanseraren.
  • Lastbalanseringsregler – innehåller regler för mappning av en offentlig port på lastbalanseraren till en port i backend-adresspoolen.
  • NAT-regler för inkommande trafik – innehåller regler för mappning av en offentlig port i lastbalanseraren till en port för en specifik virtuell dator i backend-adresspoolen.
  • Avsökningar – innehåller hälsoavsökningar som används för att kontrollera tillgängligheten av instanser av virtuella datorer i backend-adresspoolen.

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 IP-adresspoolen på klientsidan

  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 Azures offentliga IP-adressresurser (PIP) för IP-adresspoolen på frontend-sidan. 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 dess FQDN. I det här exemplet är FQDN:erna lbnrpipv4.westus.cloudapp.azure.com och lbnrpipv6.westus.cloudapp.azure.com.

Skapa en Front-End IP-konfigurationer och en Back-End-adresspool

  1. Skapa frontend-adresskonfiguration 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 backend-adresspooler.

    $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 som översätter all inkommande trafik på port 443 till port 4443
  • En lastbalanseringsregel som balanserar all inkommande trafik på port 80 till port 80 för adresserna i backend-poolen.
  • 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 de objekt som skapats tidigare.

    $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 backend-datorerna

  1. Hämta Virtual Network och Virtual Network undernät, 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 Windows virtuell dator med Resource Manager och Azure PowerShell

  1. Skapa en tillgänglighetsuppsättning och ett Storage konto

    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