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.
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.
Aanmelden bij Azure
Connect-AzAccount
Voer uw referenties in wanneer dit wordt gevraagd.
De abonnementen voor het account controleren
Get-AzSubscription
Kies welk Azure-abonnement u wilt gebruiken.
Select-AzSubscription -SubscriptionId 'GUID of subscription'
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
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
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
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
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
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
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.
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
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
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
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
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'
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
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor