Aan de slag met het maken van een internet load balancer 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 kan bieden. Uitgebreide IPv6-connectiviteit is nu beschikbaar met IPv6 voor Azure VNET's die IPv6-connectiviteit integreert met uw virtuele netwerken en belangrijke functies bevat, zoals IPv6-netwerkbeveiligingsgroepsregels, 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. Zie IPv6 for Azure VNET Powershell Deployment (IPv6 voor Azure VNET PowerShell-implementatie)

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

In dit artikel wordt de Azure Az PowerShell-module gebruikt. Dit is de aanbevolen PowerShell-module voor interactie met Azure. Raadpleeg Azure PowerShell installeren om aan de slag te gaan met de Az PowerShell-module. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Voorbeeld van een implementatiescenario

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 internet-gerichte Load Balancer met een IPv4- en een openbaar IPv6-IP-adres
  • twee taakverdelingsregels om de openbare VIP's toe te passen op de privé-eindpunten
  • een beschikbaarheidsset die de twee VM's bevat
  • twee virtuele machines (VM's)
  • een virtuele netwerkinterface voor elke VM met toegewezen IPv4- en IPv6-adressen

De oplossing implementeren met behulp van de Azure PowerShell

De volgende stappen laten zien hoe u een internet-gerichte load balancer met Azure Resource Manager PowerShell. Met Azure Resource Manager wordt elke resource afzonderlijk gemaakt en geconfigureerd en vervolgens samen een resource gemaakt.

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

  • Front-end-IP-configuratie: bevat openbare IP-adressen voor binnenkomend netwerkverkeer.
  • Back-en-adresgroep: bevat netwerkinterfaces (NIC's) voor de virtuele machines om netwerkverkeer te ontvangen van de load balancer.
  • Regels voor taakverdeling: bevat regels die een openbare poort op de load balancer toewijzen aan een poort in de back-endadresgroep.
  • NAT-regels voor binnenkomende verbindingen: 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 voor meer informatie Azure Load Balancer onderdelen.

PowerShell instellen voor het gebruik van Resource Manager

Zorg ervoor dat u de nieuwste productieversie van de Azure Resource Manager 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-adresgroep 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. Maak RESOURCES voor openbare IP-adressen (PIP) van Azure voor de front-end-IP-adresgroep. Zorg ervoor dat u de waarde voor -DomainNameLabel wijzigt voordat u de volgende opdrachten gaat uitvoeren. 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 zijn de FQDN's lbnrpipv4.westus.cloudapp.azure.com en lbnrpipv6.westus.cloudapp.azure.com.

Maak een Front-End IP-configuraties en een Back-End adresgroep

  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

In dit voorbeeld worden de volgende items gemaakt:

  • een NAT-regel om al het binnenkomende verkeer op poort 443 om te vertalen naar poort 4443
  • een load balancer-regel om al het verkeer dat binnenkomt op poort 80, gelijk te verdelen naar poort 80 op de adressen in de back-endgroep.
  • een load balancer om RDP-verbinding met de VM's toe te staan op poort 3389.
  • 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 al deze objecten gebruikt
  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
    

    Voor dit voorbeeld gaan we de TCP-tests gebruiken.

  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 de Virtual Network en Virtual Network subnet 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. Maak IP-configuraties en NIC's voor de VM's.

    $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 Create and preconfigure a Windows Virtual Machine with Resource Manager and Azure PowerShell (Een virtuele machine maken en vooraf configureren met VM'Resource Manager en Azure PowerShell

  1. Een beschikbaarheidsset en een Storage 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 VM 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