Configurar o modo de distribuição para o Azure Load BalancerConfigure the distribution mode for Azure Load Balancer

Observação

Este artigo foi atualizado para usar o novo módulo Az do Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Você ainda pode usar o módulo AzureRM, que continuará a receber as correções de bugs até pelo menos dezembro de 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para saber mais sobre o novo módulo Az e a compatibilidade com o AzureRM, confira Apresentação do novo módulo Az do Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obter instruções de instalação do módulo Az, confira Instalar o Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Modo de distribuição baseado em hashHash-based distribution mode

O modo de distribuição padrão para o Azure Load Balancer é um hash de 5 tuplas.The default distribution mode for Azure Load Balancer is a 5-tuple hash. A tupla é composta pelo IP de origem, porta de origem, IP de destino, porta de destino e tipo de protocolo.The tuple is composed of the source IP, source port, destination IP, destination port, and protocol type. O hash é usado para mapear o tráfego para os servidores disponíveis e o algoritmo fornece adesão apenas dentro de uma sessão de transporte.The hash is used to map traffic to the available servers and the algorithm provides stickiness only within a transport session. Os pacotes que estão na mesma sessão são direcionados para a mesma instância do DIP (IP de datacenter) atrás do ponto de extremidade com balanceamento de carga.Packets that are in the same session are directed to the same datacenter IP (DIP) instance behind the load-balanced endpoint. Quando o cliente inicia uma nova sessão por meio do mesmo IP de origem, a porta de origem é alterada e faz com que o tráfego vá para um ponto de extremidade DIP diferente.When the client starts a new session from the same source IP, the source port changes and causes the traffic to go to a different DIP endpoint.

Modo de distribuição baseado em hash de 5 tuplas

Modo de afinidade de IP de origemSource IP affinity mode

O Load Balancer também pode ser configurado usando o modo de distribuição de afinidade do IP de origem.Load Balancer can also be configured by using the source IP affinity distribution mode. Esse modo de distribuição também é conhecido como afinidade de sessão ou afinidade do IP do cliente.This distribution mode is also known as session affinity or client IP affinity. O modo usa um hash de 2 tuplas (IP de origem e IP de destino) ou de 3 tuplas (IP de origem, IP de destino e tipo de protocolo) para mapear o tráfego para os servidores disponíveis.The mode uses a 2-tuple (source IP and destination IP) or 3-tuple (source IP, destination IP, and protocol type) hash to map traffic to the available servers. Ao usar a afinidade de IP de origem, as conexões iniciadas no mesmo computador cliente vão para o mesmo ponto de extremidade DIP.By using source IP affinity, connections that are started from the same client computer go to the same DIP endpoint.

A figura a seguir ilustra uma configuração de 2 tuplas.The following figure illustrates a 2-tuple configuration. Observe como o de 2 tuplas é executado por meio do balanceador de carga para a VM1 (máquina virtual 1).Notice how the 2-tuple runs through the load balancer to virtual machine 1 (VM1). O backup da VM1 é feito pela VM2 e VM3.VM1 is then backed up by VM2 and VM3.

Modo de distribuição de afinidade de sessão de 2 tuplas

A afinidade do IP de origem resolve uma incompatibilidade entre o Azure Load Balancer e o Gateway de Área de Trabalho Remota (Gateway de RD).Source IP affinity mode solves an incompatibility between Azure Load Balancer and Remote Desktop Gateway (RD Gateway). Usando esse modo, é possível criar um farm de Gateway de Área de Trabalho Remota em um único serviço de nuvem.By using this mode, you can build an RD Gateway farm in a single cloud service.

Outro cenário de caso de uso é o upload de mídia.Another use case scenario is media upload. O upload de dados ocorre por meio de UDP, mas o plano de controle é obtido por meio de TCP:The data upload happens through UDP, but the control plane is achieved through TCP:

  • Um cliente inicia uma sessão TCP para o endereço público com balanceamento de carga e é direcionado para um DIP específico.A client starts a TCP session to the load-balanced public address and is directed to a specific DIP. O canal permanece ativo para monitorar a integridade da conexão.The channel is left active to monitor the connection health.
  • Uma nova sessão UDP do mesmo computador cliente é iniciada para o mesmo ponto de extremidade público com balanceamento de carga.A new UDP session from the same client computer is initiated to the same load-balanced public endpoint. A conexão é direcionada para o mesmo ponto de extremidade DIP que a conexão TCP anterior.The connection is directed to the same DIP endpoint as the previous TCP connection. O upload da mídia pode ser executado com alta taxa de transferência, mantendo um canal de controle por meio de TCP.The media upload can be executed at high throughput while maintaining a control channel through TCP.

Observação

Quando um conjunto com balanceamento de carga for alterado, removendo ou adicionando uma máquina virtual, a distribuição de solicitações de cliente será recalculada.When a load-balanced set changes by removing or adding a virtual machine, the distribution of client requests is recomputed. Não é possível depender de novas conexões de clientes existentes que terminam no mesmo servidor.You can't depend on new connections from existing clients to end up at the same server. Além disso, o uso do modo de distribuição de afinidade do IP de origem pode causar uma distribuição desigual de tráfego.Additionally, using source IP affinity distribution mode can cause an unequal distribution of traffic. Os clientes que executam atrás de proxies podem ser vistos como um aplicativo cliente exclusivo.Clients that run behind proxies might be seen as one unique client application.

Definir configurações de afinidade do IP de origemConfigure source IP affinity settings

Portal do AzureAzure portal

Você pode alterar a configuração do modo de distribuição modificando a regra de balanceamento de carga no Portal.You can change the configuration of the distribution mode by modifying the load-balancing rule in the portal.

  1. Entre no portal do Azure e localize o grupo de recursos que contém o balanceador de carga que você deseja alterar clicando em grupos de recursos.Sign in to the Azure portal and locate the Resource Group containing the load balancer you wish to change by clicking on Resource Groups.

  2. Na folha visão geral do balanceador de carga, clique em regras de balanceamento de carga em configurações.In the load balancer overview blade, click on Load balancing rules under Settings.

  3. Na folha regras de balanceamento de carga, clique na regra de balanceamento de carga em que você deseja alterar o modo de distribuição.In the load balancing rules blade, click on the load balancing rule that you wish to change the distribution mode.

  4. Sob a regra, o modo de distribuição é alterado alterando a caixa suspensa de persistência da sessão .Under the rule, the distribution mode is changed by changing the Session persistence drop down box. As seguintes opções estão disponíveis:The following options are available:

    • Nenhum (baseado em hash) – especifica que as solicitações sucessivas do mesmo cliente podem ser tratadas por qualquer máquina virtual.None (hash-based) - Specifies that successive requests from the same client may be handled by any virtual machine.
    • IP do cliente (afinidade de IP de origem 2-tupla) – especifica que as solicitações sucessivas do mesmo endereço IP do cliente serão tratadas pela mesma máquina virtual.Client IP (source IP affinity 2-tuple) - Specifies that successive requests from the same client IP address will be handled by the same virtual machine.
    • IP do cliente e protocolo (afinidade de IP de origem 3-tupla) – especifica que solicitações sucessivas do mesmo endereço IP do cliente e combinação de protocolos serão manipuladas pela mesma máquina virtual.Client IP and protocol (source IP affinity 3-tuple) - Specifies that successive requests from the same client IP address and protocol combination will be handled by the same virtual machine.
  5. Escolha o modo de distribuição e, em seguida, clique em salvar.Choose the distribution mode and then click Save.

Azure PowerShellAzure PowerShell

Para máquinas virtuais implantadas com o Gerenciador de recursos, use o PowerShell para alterar as configurações de distribuição do balanceador de carga em uma regra de balanceamento de carga existente.For virtual machines deployed with Resource Manager, use PowerShell to change the load-balancer distribution settings on an existing load-balancing rule. O seguinte comando atualiza o modo de distribuição:The following command updates the distribution mode:

$lb = Get-AzLoadBalancer -Name MyLb -ResourceGroupName MyLbRg
$lb.LoadBalancingRules[0].LoadDistribution = 'sourceIp'
Set-AzLoadBalancer -LoadBalancer $lb

Para máquinas virtuais clássicas, use o Azure PowerShell para alterar as configurações de distribuição.For classic virtual machines, use Azure PowerShell to change the distribution settings. Adicione um ponto de extremidade do Azure a uma máquina virtual e configure o modo de distribuição do balanceador de carga:Add an Azure endpoint to a virtual machine and configure the load balancer distribution mode:

Get-AzureVM -ServiceName mySvc -Name MyVM1 | Add-AzureEndpoint -Name HttpIn -Protocol TCP -PublicPort 80 -LocalPort 8080 –LoadBalancerDistribution sourceIP | Update-AzureVM

Definir o valor do elemento LoadBalancerDistribution para a quantidade desejada de balanceamento de carga.Set the value of the LoadBalancerDistribution element for the desired amount of load balancing. Especifique sourceIP para o balanceamento de carga de 2 tuplas (IP de origem e IP de destino).Specify sourceIP for 2-tuple (source IP and destination IP) load balancing. Especifique sourceIPProtocol para o balanceamento de carga de 3 tuplas (IP de origem, IP de destino e tipo de protocolo).Specify sourceIPProtocol for 3-tuple (source IP, destination IP, and protocol type) load balancing. Especifica nenhum para o comportamento padrão de balanceamento de carga de 5 tuplas.Specify none for the default behavior of 5-tuple load balancing.

Recupere uma configuração de modo de distribuição do balanceador de carga do ponto de extremidade usando estas configurações:Retrieve an endpoint load balancer distribution mode configuration by using these settings:

PS C:\> Get-AzureVM –ServiceName MyService –Name MyVM | Get-AzureEndpoint

VERBOSE: 6:43:50 PM - Completed Operation: Get Deployment
LBSetName : MyLoadBalancedSet
LocalPort : 80
Name : HTTP
Port : 80
Protocol : tcp
Vip : 65.52.xxx.xxx
ProbePath :
ProbePort : 80
ProbeProtocol : tcp
ProbeIntervalInSeconds : 15
ProbeTimeoutInSeconds : 31
EnableDirectServerReturn : False
Acl : {}
InternalLoadBalancerName :
IdleTimeoutInMinutes : 15
LoadBalancerDistribution : sourceIP

Quando o LoadBalancerDistribution elemento não está presente, Azure Load Balancer usa o algoritmo padrão de 5 tuplas.When the LoadBalancerDistribution element isn't present, Azure Load Balancer uses the default 5-tuple algorithm.

Configurar o modo de distribuição no conjunto do ponto de extremidade com balanceamento de cargaConfigure distribution mode on load-balanced endpoint set

Quando os pontos de extremidade formarem parte de um conjunto de pontos de extremidade com balanceamento de carga, o modo de distribuição deverá ser configurado no conjunto de pontos de extremidade com balanceamento de carga:When endpoints are part of a load-balanced endpoint set, the distribution mode must be configured on the load-balanced endpoint set:

Set-AzureLoadBalancedEndpoint -ServiceName MyService -LBSetName LBSet1 -Protocol TCP -LocalPort 80 -ProbeProtocolTCP -ProbePort 8080 –LoadBalancerDistribution sourceIP

Configurar o modo de distribuição para pontos de extremidade dos Serviços de NuvemConfigure distribution mode for Cloud Services endpoints

Use o SDK do Azure para .NET 2.5 para atualizar seu serviço de nuvem.Use the Azure SDK for .NET 2.5 to update your cloud service. As configurações de ponto de extremidade para Serviços de Nuvem são feitas no arquivo .csdef.The endpoint settings for Cloud Services are made in the .csdef file. Para atualizar o modo de distribuição do balanceador de carga para uma implantação de Serviços de Nuvem, é necessária uma atualização da implantação.To update the load balancer distribution mode for a Cloud Services deployment, a deployment upgrade is required.

Aqui está um exemplo de alterações .csdef para configurações do ponto de extremidade:Here is an example of .csdef changes for endpoint settings:

<WorkerRole name="worker-role-name" vmsize="worker-role-size" enableNativeCodeExecution="[true|false]">
    <Endpoints>
    <InputEndpoint name="input-endpoint-name" protocol="[http|https|tcp|udp]" localPort="local-port-number" port="port-number" certificate="certificate-name" loadBalancerProbe="load-balancer-probe-name" loadBalancerDistribution="sourceIP" />
    </Endpoints>
</WorkerRole>
<NetworkConfiguration>
    <VirtualNetworkSite name="VNet"/>
    <AddressAssignments>
<InstanceAddress roleName="VMRolePersisted">
    <PublicIPs>
    <PublicIP name="public-ip-name" idleTimeoutInMinutes="timeout-in-minutes"/>
    </PublicIPs>
</InstanceAddress>
    </AddressAssignments>
</NetworkConfiguration>

Exemplo de APIAPI example

O exemplo a seguir mostra como reconfigurar o modo de distribuição do balanceador de carga para um conjunto com balanceamento de carga especificado em uma implantação.The following example shows how to reconfigure the load balancer distribution mode for a specified load-balanced set in a deployment.

Alterar o modo de distribuição para o conjunto com balanceamento de carga implantadoChange distribution mode for deployed load-balanced set

Use o modelo de implantação clássico do Azure para alterar uma configuração de implantação existente.Use the Azure classic deployment model to change an existing deployment configuration. Adicione o cabeçalho x-ms-version e defina o valor para a versão 2014-09-01 ou posterior.Add the x-ms-version header and set the value to version 2014-09-01 or later.

SolicitarRequest

POST https://management.core.windows.net/<subscription-id>/services/hostedservices/<cloudservice-name>/deployments/<deployment-name>?comp=UpdateLbSet   x-ms-version: 2014-09-01
Content-Type: application/xml

<LoadBalancedEndpointList xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="https://www.w3.org/2001/XMLSchema-instance">
  <InputEndpoint>
    <LoadBalancedEndpointSetName> endpoint-set-name </LoadBalancedEndpointSetName>
    <LocalPort> local-port-number </LocalPort>
    <Port> external-port-number </Port>
    <LoadBalancerProbe>
      <Port> port-assigned-to-probe </Port>
      <Protocol> probe-protocol </Protocol>
      <IntervalInSeconds> interval-of-probe </IntervalInSeconds>
      <TimeoutInSeconds> timeout-for-probe </TimeoutInSeconds>
    </LoadBalancerProbe>
    <Protocol> endpoint-protocol </Protocol>
    <EnableDirectServerReturn> enable-direct-server-return </EnableDirectServerReturn>
    <IdleTimeoutInMinutes>idle-time-out</IdleTimeoutInMinutes>
    <LoadBalancerDistribution>sourceIP</LoadBalancerDistribution>
  </InputEndpoint>
</LoadBalancedEndpointList>

Conforme descrito anteriormente, defina o elemento LoadBalancerDistribution como sourceIP para afinidade de 2 tuplas, sourceIPProtocol para afinidade de 3 tuplas ou nenhum para nenhuma afinidade (afinidade de 5 tuplas).As previously described, set the LoadBalancerDistribution element to sourceIP for 2-tuple affinity, sourceIPProtocol for 3-tuple affinity, or none for no affinity (5-tuple affinity).

RespostaResponse

HTTP/1.1 202 Accepted
Cache-Control: no-cache
Content-Length: 0
Server: 1.0.6198.146 (rd_rdfe_stable.141015-1306) Microsoft-HTTPAPI/2.0
x-ms-servedbyregion: ussouth2
x-ms-request-id: 9c7bda3e67c621a6b57096323069f7af
Date: Thu, 16 Oct 2014 22:49:21 GMT

Próximas etapasNext steps