Início > DNS, Networking, NLB, Power Shell, Windows Server 2016 TP > Usando o DNS Policies do Windows Server 2016 TP para balanceamento de carga

Usando o DNS Policies do Windows Server 2016 TP para balanceamento de carga

Saudações

Um das grandes mudanças que vem com o Windows Server 2016 TP não se resume somente ao que tenho mostrado nesse blog acerca do Web Application Proxy e AD Federation Services.

Hoje vamos abrir mais as possibilidades e compartilhar sobre algumas mudanças que o serviço de DNS também ganhou.

O Windows Server 2016 Technical Preview traz o DNS policies, uma nova feature na role DNS server.

As políticas são criadas para controlar como o DNS Server controla as requisições baseado em diversos parâmetros. O pessoal do Network Blog da Microsoft escreveu uma série de artigos onde detalham as funcionalidades do DNS Policies entre elas a parte de traffic management, deployment do split-brain DNS e criação de DNS query filters usando as políticas.

Neste post vou partilhar com vocês algo que eles também já detalharam, o balanceamento de carga de aplicações via DNS Policies. Para quem usa DNS no Windows Server 2008 ou 2012, trata-se de uma evolução do Round Robin.

Os procedimentos a seguir foram feitos em laboratório montado por mim usando como base de estudo o artigo do pessoal do Network Blog, no endereço abaixo:

http://blogs.technet.com/b/networking/archive/2015/05/20/application-load-balancing-using-dns-server-policies.aspx

Para ilustrar melhor, vamos imaginar um ambiente em que eu tenho meus servidores de aplicação espalhados em 4 datacenters. São Paulo, Rio de Janeiro, Fortaleza e Belo Horizonte. Lembrando que esse é um ambiente fictício. Estou compartilhando aqui o que aprendi estudando o artigo acima citado e o laboratório que fiz.

A diferença deste laboratório para o que foi postado no link acima é que, no meu caso, tenho em São Paulo e Rio de Janeiro, servidores que podem receber mais carga de acessos do que nas outras duas filiais.

No exemplo pelo pessoal do Network Blog, eles possuem 3 ambientes, sendo o primeiro o que tem mais condições de receber a caga de requisições em relação aos dois últimos.

No caso do nosso post aqui, vamos nos ater ao desenho abaixo:

image

Usando por base o exemplo acima, o DNS Policies irá distribuir as requisições entre os servidores fazendo com que as 3 primeiras requisições sejam direcionadas para São Paulo, as próximas 3 para Rio de Janeiro, as 2 seguintes para Fortaleza e as próximas 2 para Belo Horizonte. O processo se repete constantemente.

Agora, tecnicamente falando, como isso pode ser feito? Vamos listar os procedimentos:

Criar os zone scopes

O zone scope é uma instância única em um zone. Um zone pode conter diversos escopos e esses escopos podem conter diversos registros. No nosso laboratório, iremos criar os escopos SP_Scope (para São Paulo), RJ_Scope (para Rio de Janeiro), For_Scope (para Fortaleza) e BH_Scope (para Belo Horizonte). Lembrando que nosso zone tem o nome de uilson.net.

Todos os procedimentos listados aqui são feitos via Power Shell:

Criando o Zone Scope para São Paulo com o comando Add-DnsServerZoneScope -ZoneName "uilson.net" -Name "SP_Scope"

image

Repetir os processos para os sites do Rio, Fortaleza e Belo Horizonte:

Add-DnsServerZoneScope -ZoneName "uilson.net" -Name "RJ_Scope"

Add-DnsServerZoneScope -ZoneName "uilson.net" -Name "For_Scope"

Add-DnsServerZoneScope -ZoneName "uilson.net" -Name "BH_Scope"

Inserir os registros nos Zones Scopes

O próximo passo do nosso laboratório é inserir o registro dos web servers nos zones scopes criados no passo anterior.

Dentro dos zone scopes do domínio uilson.net vou inserir o registro “app” para que a chamada “app.uilson.net” retorne a aplicação a sere balanceada pelo DNS Policies.

O registro app será criado em cada zone scope com o IP referente ao web server da localidade conforme abaixo:

SP_Scope – 10.10.0.10

RJ_Scope – 10.10.1.10

For_Scope – 10.10.2.10

BH_Scope – 10.10.3.10

O primeiro registro a ser criado será no zone scope SP_Scope:

Add-DnsServerResourceRecord -ZoneName "uilson.net" -A -Name "app" -IPv4Address "10.10.0.10" -ZoneScope "SP_Scope"

image

Repetir o comando para os demais sites, alterando IP e Zone Scope name:

Add-DnsServerResourceRecord -ZoneName "uilson.net" -A -Name "app" -IPv4Address "10.10.1.10" -ZoneScope "RJ_Scope"

Add-DnsServerResourceRecord -ZoneName "uilson.net" -A -Name "app" -IPv4Address "10.10.2.10" -ZoneScope "For_Scope"

Add-DnsServerResourceRecord -ZoneName "uilson.net" -A -Name "app" -IPv4Address "10.10.3.10" -ZoneScope "BH_Scope"

Criação da política

Agora que nosso laboratório já tem os zone scopes e os registros criados em cada um deles, nos resta agora criar a política que irá distribuir as requisições entre os DNS Servers de acordo com o que foi planejado no começo deste post.

Relembrando que em nosso laboratório fictício, o hardware dos servidores de São Paulo e Rio de Janeiro têm condições de receberem um número maior de requisições (ambos ficarão com 30% da carga) e os servidores de Fortaleza e Belo Horizonte, com um hardware e menor poder de carga, ficam com 20% das requisições cada um.

A política é configurada através do comando abaixo:

Add-DnsServerQueryResolutionPolicy -Name "AppServerPolicy" -Action ALLOW – -ZoneScope "SP_Scope,3;RJ_Scope,3;For_Scope,2;BH_Scope,2" -ZoneName "uilson.net"

image

Repare na sintaxe do comando PS que após cada zone scope name vem uma vírgula e um número:

SP_Scope,3

RJ_Scope,3

For_Scope,2

BH_Scope,2

Desta forma eu defino que São Paulo receberá as 3 primeiras requisições, o Rio de Janeiro as próximas 3, Fortaleza receberá as 2 seguintes e Belo Horizonte as 2 próximas. O fluxo de repete constantemente.

Vale ressaltar que o processo de balanceamento de carga pelo DNS Policies melhorou muito em relação ao DNS Round Robin. Entretanto, pelo que vi no meu laboratório, algumas limitações permanecem…tais como a impossibilidade de determinar se um host está ou não disponível. Ao menos não encontrei nada que mudasse esse quadro.

Tendo em vista ainda estarmos na versão Technical Preview do Windows Server 2016, imagino que nem tudo o que estamos vendo permanecerá como está. Mudanças podem ocorrer no decorrer do período de testes.

Conclusão

Neste post mostrei pra você como configurar o serviço de balanceamento de carga de aplicações via DNS do Windows Server 2016 Technical Preview, utilizando a nova feature DNS Policies.

Expliquei como se cria os escopos de zona, adição dos registros e criação das políticas em face ao planejamento inicial.

Recomendo o uso deste recurso em aplicações de uso interno de sua corporação. O mesmo não se aplica a acessos externos.

Assim que eu reestruturar meu laboratório vamos retornar aos testes com a nova versão do Web Application Proxy no Windows Server 2016 TP e também o Application Request Router.

Espero que o conteúdo seja útil!

Abraços

Uilson

  1. 24 de junho de 2015 às 9:29

    Good writeup. Nice to see you try this in lab and happy that it all worked out as expected. Feel free to send me any feedback on this.

    • 24 de junho de 2015 às 10:15

      Thank you Kumar! So glad it was helpful for you! Hope to have you here always!

      Regards

  2. Lucas Belém
    25 de junho de 2015 às 8:57

    Excelente artigo !

    • 25 de junho de 2015 às 10:30

      Obrigado Lucas! Espero ve-lo por aqui mais vezes!

  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: