Compartilhar via


Usar a Política de DNS para balanceamento de carga de aplicativo

Aplica-se a: Windows Server 2022, Windows Server 2019 e Windows Server 2016

Você pode usar este tópico para aprender a configurar a política DNS para executar o balanceamento de carga do aplicativo.

As versões anteriores do DNS do Windows Server só forneceram balanceamento de carga usando respostas round robin; mas com o DNS em Windows Server 2016, você pode configurar a política DNS para balanceamento de carga do aplicativo.

Após implantar várias instâncias de um aplicativo, você pode usar a política DNS para balancear a carga de tráfego entre as diferentes instâncias de aplicativo, alocando a carga de tráfego no aplicativo de forma dinâmica.

Exemplo de balanceamento de carga do aplicativo

Veja a seguir um exemplo de como usar a política DNS para balanceamento de carga do aplicativo.

Este exemplo usa uma empresa fictícia, a Contoso Gift Services, que presta serviços de presentes online e que tem um site chamado contosogiftservices.com.

O site contosogiftservices.com é hospedado em vários datacenters com endereços IP diferentes.

Na América do Norte, que é o principal mercado para a Contoso Gift Services, o site é hospedado em três datacenters: Chicago, IL, Dallas, TX e Seattle, WA.

O servidor Web de Seattle tem a melhor configuração de hardware e pode lidar com o dobro de carga que os outros dois sites. A Contoso Gift Services deseja que o tráfego de aplicativos seja direcionado da maneira a seguir.

  • Como o servidor Web de Seattle inclui mais recursos, metade dos clientes do aplicativo são direcionados para esse servidor
  • Um quarto dos clientes do aplicativo são direcionados para o datacenter de Dallas, TX
  • Um quarto dos clientes do aplicativo são direcionados para o datacenter de Chicago, IL

A ilustração a seguir mostra esse cenário.

DNS Application Load Balancing with DNS Policy

Como funciona o balanceamento de carga de aplicativo

Depois de configurar o servidor DNS com a política DNS para balanceamento de carga do aplicativo usando este cenário de exemplo, o servidor DNS responde 50% do tempo com o endereço do servidor Web de Seattle, 25% do tempo com o endereço do servidor Web de Dallas e 25% do tempo com o endereço do servidor Web de Chicago.

Assim, para cada quatro consultas que o servidor DNS recebe, ele responde com duas respostas para Seattle e uma para Dallas e Chicago.

Um possível problema com o balanceamento de carga com a política DNS é o cache de registros DNS pelo cliente DNS e pelo resolvedor/LDNS, que pode interferir no balanceamento de carga porque o cliente ou resolvedor não envia uma consulta para o servidor DNS.

Você pode atenuar o efeito desse comportamento usando um valor TTL (vida útil) baixo para os registros DNS que devem ter balanceamento de carga.

Como configurar o balanceamento de carga do aplicativo

As seções a seguir mostram como configurar a política do DNS para o balanceamento de carga do aplicativo.

Criar os escopos de zona

Primeiro, você deve criar os escopos do contosogiftservices.com de zona para os datacenters em que eles estão hospedados.

Um escopo de zona é uma instância exclusiva da zona. Uma zona DNS pode ter vários escopos de zona, com cada escopo de zona contendo o próprio conjunto de registros do DNS. O mesmo registro poderá estar presente em vários escopos, com diferentes endereços IP ou os mesmos endereços IP.

Observação

Por padrão, há um escopo de zona nas zonas DNS. Esse escopo de zona tem o mesmo nome que a zona e as operações DNS herdadas funcionam nesse escopo.

Use os comandos do PowerShell do Windows a seguir para criar escopos de zona.

Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "SeattleZoneScope"
Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "DallasZoneScope"
Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "ChicagoZoneScope"

Para obter mais informações, confira Add-DnsServerZoneScope

Adicionar registros aos escopos de zona

Agora você deve adicionar os registros que representam o host do servidor Web aos escopos da zona.

Em SeattleZoneScope, você pode adicionar o registro www.contosogiftservices.com com o endereço IP 192.0.0.1, que está localizado no datacenter de Seattle.

Em ChicagoZoneScope, você pode adicionar o mesmo registro (www.contosogiftservices.com) com o endereço IP 182.0.0.1 no datacenter de Chicago.

Da mesma forma, em DallasZoneScope, você pode adicionar um registro (www.contosogiftservices.com) com o endereço IP 162.0.0.1 no datacenter de Chicago.

Use os comandos do PowerShell do Windows a seguir para adicionar registros aos escopos de zona.

Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "192.0.0.1" -ZoneScope "SeattleZoneScope"
Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "182.0.0.1" -ZoneScope "ChicagoZoneScope"
Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "162.0.0.1" -ZoneScope "DallasZoneScope"

Para obter mais informações, confira Add-DnsServerResourceRecord.

Criar as políticas do DNS

Depois de criar as partições (escopos de zona) e adicionar registros, você deve criar políticas DNS que distribuam as consultas de entrada entre esses escopos para que 50% das consultas de contosogiftservices.com sejam respondidas com o endereço IP do servidor Web no datacenter de Seattle e o restante seja distribuído igualmente entre os datacenters de Chicago e Dallas.

Você pode usar os comandos do Windows PowerShell a seguir para criar uma política DNS que equilibra o tráfego do aplicativo entre esses três datacenters.

Observação

No comando de exemplo abaixo, a expressão –ZoneScope "SeattleZoneScope,2; ChicagoZoneScope,1; DallasZoneScope,1" configura o servidor DNS com uma matriz que inclui a combinação de parâmetros <ZoneScope>,<weight>.

Add-DnsServerQueryResolutionPolicy -Name "AmericaPolicy" -Action ALLOW -ZoneScope "SeattleZoneScope,2;ChicagoZoneScope,1;DallasZoneScope,1" -ZoneName "contosogiftservices.com"

Para obter mais informações, confira Add-DnsServerQueryResolutionPolicy.

Agora você criou com êxito uma política DNS que fornece balanceamento de carga de aplicativo entre servidores Web em três datacenters diferentes.

É possível criar milhares de políticas do DNS de acordo com seus requisitos de gerenciamento de tráfego e todas as novas políticas são aplicadas dinamicamente, sem reiniciar o servidor do DNS, em consultas de entrada.