Aan de slag met het maken van een internetgerichte load balancer met IPv6 met behulp van PowerShell voor Resource Manager

Notitie

In dit artikel wordt een inleidende IPv6-functie beschreven waarmee Basic Load Balancers zowel IPv4- als IPv6-connectiviteit kunnen bieden. Uitgebreide IPv6-connectiviteit is nu beschikbaar met IPv6 voor Azure VNETs die IPv6-connectiviteit integreert met uw virtuele netwerken en belangrijke functies bevat, zoals IPv6-regels voor netwerkbeveiligingsgroepen , door de gebruiker gedefinieerde IPv6-routering, IPv6 Basic- en Standard-taakverdeling en meer. IPv6 voor Azure VNET's is de aanbevolen standaard voor IPv6-toepassingen in Azure. IPv6 voor Azure VNET PowerShell-implementatie bekijken

Azure Load Balancer is een Layer-4 (TCP, UDP) load balancer. De load balancer biedt hoge beschikbaarheid bij het verdelen van inkomend verkeer over gezonde service-exemplaren in cloudservices of virtuele machines in een load balancer-set. Azure Load Balancer kan deze services ook toepassen op meerdere poorten, meerdere IP-adressen of allebei.

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Voorbeeldimplementatiescenario

In het volgende diagram ziet u de taakverdelingsoplossing die in dit artikel wordt geïmplementeerd.

Load balancer scenario

In dit scenario maakt u de volgende Azure-resources:

  • een internetgerichte load balancer met een IPv4 en een openbaar IPv6-ip-adres
  • twee taakverdelingsregels om de openbare VIP's toe te wijzen aan de privé-eindpunten
  • een beschikbaarheidsset met de twee VM's
  • twee virtuele machines (VM's)
  • een virtuele netwerkinterface voor elke VM met zowel IPv4- als IPv6-adressen toegewezen

De oplossing implementeren met behulp van Azure PowerShell

De volgende stappen laten zien hoe u een internetgerichte load balancer maakt met behulp van Azure Resource Manager met PowerShell. Met Azure Resource Manager wordt elke resource afzonderlijk gemaakt en geconfigureerd en vervolgens samengesteld om een resource te maken.

Als u een load balancer wilt implementeren, maakt en configureert u de volgende objecten:

  • Front-end-IP-configuratie: bevat openbare IP-adressen voor binnenkomend netwerkverkeer.
  • Back-endadresgroep: bevat netwerkinterfaces (NIC's) voor de virtuele machines om netwerkverkeer van de load balancer te ontvangen.
  • Taakverdelingsregels: bevat regels die een openbare poort op de load balancer toewijzen aan poort in de back-endadresgroep.
  • Binnenkomende NAT-regels: bevat regels die een openbare poort op de load balancer toewijzen aan een poort voor een specifieke virtuele machine in de back-endadresgroep.
  • Tests: bevat statustests die worden gebruikt om de beschikbaarheid van exemplaren van virtuele machines in de back-endadresgroep te controleren.

Zie Azure Load Balancer-onderdelen voor meer informatie.

PowerShell instellen voor het gebruik van Resource Manager

Zorg ervoor dat u de nieuwste productieversie van de Azure Resource Manager-module voor PowerShell hebt.

  1. Aanmelden bij Azure

    Connect-AzAccount
    

    Voer uw referenties in wanneer dit wordt gevraagd.

  2. De abonnementen voor het account controleren

     Get-AzSubscription
    
  3. Kies welk Azure-abonnement u wilt gebruiken.

    Select-AzSubscription -SubscriptionId 'GUID of subscription'
    
  4. Een resourcegroep maken (sla deze stap over als u een bestaande resourcegroep gebruikt)

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

Een virtueel netwerk en een openbaar IP-adres voor de front-end-IP-pool maken

  1. Maak een virtueel netwerk met een 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. Azure Public IP Address -resources (PIP) maken voor de front-end-IP-adresgroep. Zorg ervoor dat u de waarde voor wijzigt -DomainNameLabel voordat u de volgende opdrachten uitvoert. De waarde moet uniek zijn binnen de Azure-regio.

    $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
    

    Belangrijk

    De load balancer gebruikt het domeinlabel van het openbare IP-adres als voorvoegsel voor de FQDN. In dit voorbeeld worden de FQDN's lbnrpipv4.westus.cloudapp.azure.com en lbnrpipv6.westus.cloudapp.azure.com.

Een front-end-IP-configuratie en een back-endadresgroep maken

  1. Maak een front-endadresconfiguratie die gebruikmaakt van de openbare IP-adressen die u hebt gemaakt.

    $FEIPConfigv4 = New-AzLoadBalancerFrontendIpConfig -Name "LB-Frontendv4" -PublicIpAddress $publicIPv4
    $FEIPConfigv6 = New-AzLoadBalancerFrontendIpConfig -Name "LB-Frontendv6" -PublicIpAddress $publicIPv6
    
  2. Back-endadresgroepen maken.

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

LB-regels, NAT-regels, een test en een load balancer maken

In dit voorbeeld worden de volgende items gemaakt:

  • een NAT-regel om al het binnenkomende verkeer op poort 443 te vertalen naar poort 4443
  • een load balancer-regel voor het verdelen van al het binnenkomende verkeer op poort 80 naar poort 80 op de adressen in de back-endpool.
  • een load balancer-regel om RDP-verbinding met de VM's op poort 3389 toe te staan.
  • een testregel om de status te controleren op een pagina met de naam HealthProbe.aspx of een service op poort 8080
  • een load balancer die gebruikmaakt van al deze objecten
  1. Maak de NAT-regels.

    $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. Maak een statustest. Er zijn twee manieren om een steekproef te configureren:

    HTTP-test

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

    of TCP-test

    $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
    

    In dit voorbeeld gebruiken we de TCP-tests.

  3. Maak een load balancer-regel.

    $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. Maak de load balancer met behulp van de eerder gemaakte objecten.

    $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
    

NIC's maken voor de back-end-VM's

  1. Haal het subnet van het virtuele netwerk en het virtuele netwerk op, waar de NIC's moeten worden gemaakt.

    $vnet = Get-AzVirtualNetwork -Name VNet -ResourceGroupName NRP-RG
    $backendSubnet = Get-AzVirtualNetworkSubnetConfig -Name LB-Subnet-BE -VirtualNetwork $vnet
    
  2. IP-configuraties en NIC's voor de VM's maken.

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

Virtuele machines maken en de zojuist gemaakte NIC's toewijzen

Zie Een virtuele Windows-machine maken en vooraf configureren met Resource Manager en Azure PowerShell voor meer informatie over het maken van een virtuele machine

  1. Een beschikbaarheidsset en opslagaccount maken

    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. Maak elke VIRTUELE machine en wijs de eerder gemaakte NIC's toe

    $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