Приступая к созданию балансировщика нагрузки для Интернета с поддержкой IPv6 с помощью PowerShell для Resource ManagerGet started creating an Internet facing load balancer with IPv6 using PowerShell for Resource Manager

Azure Load Balancer является балансировщиком нагрузки 4-го уровня (TCP, UDP).An Azure load balancer is a Layer-4 (TCP, UDP) load balancer. Балансировщик нагрузки обеспечивает высокий уровень доступности, распределяя входящий трафик между работоспособными экземплярами службы в облачных службах или виртуальных машинах, определенных в наборе балансировщика нагрузки.The load balancer provides high availability by distributing incoming traffic among healthy service instances in cloud services or virtual machines in a load balancer set. Azure Load Balancer может также представить данные службы на нескольких портах, нескольких IP-адресах или обоими этими способами.Azure Load Balancer can also present those services on multiple ports, multiple IP addresses, or both.

Примечание

Эта статья была изменена и теперь содержит сведения о новом модуле Az для Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Вы по-прежнему можете использовать модуль AzureRM, исправления ошибок для которого будут продолжать выпускаться как минимум до декабря 2020 г.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Дополнительные сведения о совместимости модуля Az с AzureRM см. в статье Introducing the new Azure PowerShell Az module (Знакомство с новым модулем Az для Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Инструкции по установке модуля Az см. в статье об установке Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Пример сценария развертыванияExample deployment scenario

На следующей схеме показано решение балансировки нагрузки, которое развертывается в этой статье.The following diagram illustrates the load balancing solution being deployed in this article.

Сценарий использования балансировщика нагрузки

В этом сценарии вы создадите следующие ресурсы Azure:In this scenario you will create the following Azure resources:

  • балансировщик нагрузки для Интернета с общедоступными IPv4- и IPv6-адресами;an Internet-facing Load Balancer with an IPv4 and an IPv6 Public IP address
  • два правила балансировки нагрузки для сопоставления общедоступных виртуальных IP-адресов с частными конечными точками.two load balancing rules to map the public VIPs to the private endpoints
  • группу доступности, которая содержит две виртуальные машины;an Availability Set to that contains the two VMs
  • две виртуальные машины;two virtual machines (VMs)
  • виртуальный сетевой интерфейс для каждой виртуальной машины с назначенными IPv4 и IPv6-адресами.a virtual network interface for each VM with both IPv4 and IPv6 addresses assigned

Развертывание решения с помощью Azure PowerShellDeploying the solution using the Azure PowerShell

Ниже описана процедура создания балансировщика нагрузки для Интернета с помощью Azure Resource Manager и PowerShell.The following steps show how to create an Internet facing load balancer using Azure Resource Manager with PowerShell. Azure Resource Manager позволяет по отдельности создавать и настраивать ресурсы, после чего на их основе создается единый ресурс.With Azure Resource Manager, each resource is created and configured individually, then put together to create a resource.

Чтобы развернуть балансировщик нагрузки, необходимо создать и настроить следующие объекты:To deploy a load balancer, you create and configure the following objects:

  • Конфигурация интерфейсных IP-адресов. Содержит общедоступные IP-адреса для входящего сетевого трафика.Front-end IP configuration - contains public IP addresses for incoming network traffic.
  • Пул внутренних адресов. Содержит сетевые интерфейсы (сетевые карты) для получения виртуальными машинами трафика от балансировщика нагрузки.Back-end address pool - contains network interfaces (NICs) for the virtual machines to receive network traffic from the load balancer.
  • Правила балансировки нагрузки. Содержат правила сопоставления общего порта в балансировщике нагрузки с портом в пуле внутренних адресов.Load balancing rules - contains rules mapping a public port on the load balancer to port in the back-end address pool.
  • Правила NAT для входящего трафика. Содержат правила сопоставления общего порта в балансировщике нагрузки с портом на конкретной виртуальной машине в пуле внутренних адресов.Inbound NAT rules - contains rules mapping a public port on the load balancer to a port for a specific virtual machine in the back-end address pool.
  • Пробы. Содержат пробы работоспособности, с помощью которых можно проверить доступность экземпляров виртуальных машин в пуле внутренних адресов.Probes - contains health probes used to check availability of virtual machines instances in the back-end address pool.

Дополнительные сведения см. в статье Поддержка диспетчера ресурсов Azure для подсистемы балансировки нагрузки.For more information, see Azure Resource Manager support for Load Balancer.

Настройка PowerShell для использования Resource ManagerSet up PowerShell to use Resource Manager

Убедитесь, что вы используете последнюю рабочую версию модуля Azure Resource Manager для PowerShell.Make sure you have the latest production version of the Azure Resource Manager module for PowerShell.

  1. Вход в AzureSign into Azure

    Connect-AzAccount
    

    При появлении запроса введите свои учетные данные.Enter your credentials when prompted.

  2. Проверка подписок для учетной записиCheck the subscriptions for the account

     Get-AzSubscription
    
  3. Выберите, какие подписки Azure будут использоваться.Choose which of your Azure subscriptions to use.

    Select-AzSubscription -SubscriptionId 'GUID of subscription'
    
  4. Создайте группу ресурсов (этот шаг можно пропустить, если вы используете существующую группу).Create a resource group (skip this step if using an existing resource group)

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

Создание виртуальной сети и общедоступного IP-адреса для пула IP-адресов клиентской частиCreate a virtual network and a public IP address for the front-end IP pool

  1. Создайте виртуальную сеть с подсетью.Create a virtual network with a 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. Создайте общедоступный IP-адрес (PIP) Azure для интерфейсного пула IP-адресов.Create Azure Public IP address (PIP) resources for the front-end IP address pool. Не забудьте изменить значение -DomainNameLabel перед выполнением следующих команд.Be sure to change the value for -DomainNameLabel before running the following commands. Значение должно быть уникальным в пределах региона Azure.The value must be unique within the Azure region.

    $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
    

    Важно!

    Балансировщик нагрузки использует метку домена общедоступного IP-адреса в качестве префикса к полному доменному имени (FQDN).The load balancer uses the domain label of the public IP as prefix for its FQDN. В этом примере полные доменные имена — lbnrpipv4.westus.cloudapp.azure.com и lbnrpipv6.westus.cloudapp.azure.com.In this example, the FQDNs are lbnrpipv4.westus.cloudapp.azure.com and lbnrpipv6.westus.cloudapp.azure.com.

Создание интерфейсных конфигураций IP-адресов и внутреннего пула адресовCreate a Front-End IP configurations and a Back-End Address Pool

  1. Создайте интерфейсную конфигурацию адресов, которая использует созданные вами общедоступные IP-адреса.Create front-end address configuration that uses the Public IP addresses you created.

    $FEIPConfigv4 = New-AzLoadBalancerFrontendIpConfig -Name "LB-Frontendv4" -PublicIpAddress $publicIPv4
    $FEIPConfigv6 = New-AzLoadBalancerFrontendIpConfig -Name "LB-Frontendv6" -PublicIpAddress $publicIPv6
    
  2. Создайте внутренние пулы адресов.Create back-end address pools.

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

Создание правил балансировки нагрузки, правил преобразования сетевых адресов, пробы и балансировщика нагрузкиCreate LB rules, NAT rules, a probe, and a load balancer

В этом примере создаются следующие элементы:This example creates the following items:

  • правило NAT, которое направляет весь входящий трафик с порта 443 на порт 4443;a NAT rule to translate all incoming traffic on port 443 to port 4443
  • правило балансировщика нагрузки, которое балансирует весь входящий трафик на порту 80, перенаправляя трафик на порт 80 других адресов во внутреннем пуле;a load balancer rule to balance all incoming traffic on port 80 to port 80 on the addresses in the back-end pool.
  • правило балансировщика нагрузки, которое разрешает подключение к виртуальным машинам по протоколу удаленного рабочего стола на порте 3389;a load balancer rule to allow RDP connection to the VMs on port 3389.
  • правило пробы, которое проверяет состояние работоспособности на странице HealthProbe.aspx или службу на порте 8080;a probe rule to check the health status on a page named HealthProbe.aspx or a service on port 8080
  • балансировщик нагрузки, который использует все эти объекты.a load balancer that uses all these objects
  1. Создайте правила NAT.Create the NAT rules.

    $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. Создайте пробу работоспособности.Create a health probe. Существует два способа настройки пробы:There are two ways to configure a probe:

    проба HTTPHTTP probe

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

    или проба TCP:or TCP probe

    $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
    

    В этом примере мы используем пробу TCP.For this example, we are going to use the TCP probes.

  3. Создайте правило балансировщика нагрузки.Create a load balancer rule.

    $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. Создайте балансировщик нагрузки, используя ранее созданные объекты.Create the load balancer using the previously created objects.

    $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
    

Создание сетевых карт для внутренних виртуальных машинCreate NICs for the back-end VMs

  1. Получите виртуальную сеть и подсеть виртуальной сети, в которых должны быть созданы сетевые карты.Get the Virtual Network and Virtual Network Subnet, where the NICs need to be created.

    $vnet = Get-AzVirtualNetwork -Name VNet -ResourceGroupName NRP-RG
    $backendSubnet = Get-AzVirtualNetworkSubnetConfig -Name LB-Subnet-BE -VirtualNetwork $vnet
    
  2. Создайте конфигурации IP-адресов и сетевые карты для виртуальных машин.Create IP configurations and NICs for the VMs.

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

Создание виртуальных машин и назначение только что созданных сетевых картCreate virtual machines and assign the newly created NICs

Дополнительные сведения о создании виртуальной машины см. в статье Создание виртуальной машины Windows с помощью Resource Manager и PowerShell.For more information about creating a VM, see Create and preconfigure a Windows Virtual Machine with Resource Manager and Azure PowerShell

  1. Создайте группу доступности и учетную запись хранения.Create an Availability Set and Storage account

    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. Создайте каждую из виртуальных машин и назначьте только что созданные сетевые карты.Create each VM and assign the previous created NICs

    $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
    

Дальнейшие действияNext steps

Приступая к настройке внутренней подсистемы балансировки нагрузкиGet started configuring an internal load balancer

Настройка режима распределения подсистемы балансировки нагрузкиConfigure a load balancer distribution mode

Настройка параметров времени ожидания простоя TCP для подсистемы балансировки нагрузкиConfigure idle TCP timeout settings for your load balancer