Arquivo

Arquivo do Autor

Sobre DNS Policies–Windows Server 2016–volume 7–Redirecionamento por horário

14 de agosto de 2017 Deixe um comentário

Saudações,

E hoje chegamos ao último volume da série sobre DNS Policies no Windows Server 2016. Para aqueles que ainda não viram, segue abaixo o link para os 6 últimos posts publicados:

Sobre DNS Policies – Windows Server 2016 – volume 01 – Teoria

Sobre DNS Policies – Windows Server 2016 – volume 02 – Balanceamento de Carga

Sobre DNS Policies – Windows Server 2016 – volume 03 – Gerenciamento de Tráfego de Rede baseado em Geo-Localização

Sobre DNS Policies – Windows Server 2016 – volume 04 – Split Brain DNS e Selective Recursion Control

Sobre DNS Policies – Windows Server 2016 – volume 05 – DNS Filtering

Sobre DNS Policies – Windows Server 2016 – volume 06 – Foresincs

Vamos hoje falar sobre redirecionamento por horário, ou seja, direcionar requisições DNS baseado na hora do dia.

Exemplo – Tenho uma farm de servidores de aplicação com  4 nodes e a partir de hoje, das 16 até as 18 horas terei que parar dois desses nodes para manutenção. Neste caso, as requisições serão encaminhadas somente para os dois nodes que estiverem ligados.

Exemplo 2 – Na minha farm de 4 nodes tenho 2 servidores com mais poder de processamento e os outros 2 têm uma absorção de carga menor. A região atendida pelos servidores de menor processamento irá receber uma carga gigantesca de acessos devido a um determinado evento que irá requerer o suporte a um numero muito maior de acessos aos quais essas máquinas podem receber. Em situações como esta podemos criar uma política em nosso DNS Server para que as requisições sejam direcionados em maior parte aos nodes com maior poder de processamento.

Vamos ilustrar novamente nosso ambiente para este post usando o mesmo de outros volumes desta série:

image

No desenho acima temos os servidores de Fortaleza e Belo Horizonte. Estes equipamentos não têm o mesmo poder de processamento que os alocados em São Paulo e Rio de Janeiro. A empresa promoverá uma ação de marketing que duplicará o numero de requisições por todas as filiais e você nota que CE e BH estão com a performance comprometida. Esta campanha ocorrerá pelos próximios dias das 15 até as 20 horas

Neste mini laboratório, vamos fazer com que o tráfego das subnets de CE e BH sejam direcionados em sua maioria para os servidores de SP e RJ.

Para tanto iremos usar o comando abaixo:

Add-DnsServerQueryResolutionPolicy -Name MktPeakTime -Action ALLOW -ZoneScope ‘SP_ZoneScope,4;RJ_ZoneScope,4;FOR_ZoneScope,1;BH_ZoneScope,1’ –TimeOfDay ‘EQ,15:00-20:00’ -ZoneName uilson.net

No comando acima eu criei uma política chamada “MktPeakTime” que distribuirá a carga das requisições aos servidores de aplicação da seguinte forma:

São Paulo e Rio de Janeiro – 40% cada

Fortaleza e Belo Horizonte- 10% cada

Relembrando – Foi criado um zone scope para cada localidade e o registro DNS de cada servidor criado no escopo da referida localidade. Se você não se lembra como criar escopos de zona, acima deste post você terá os links para os volumes anteriores desta série com o procedimento detalhado.

Quem leu os volmes anteriores desta série também sabe que os numeros definidos ao lado de cada zone escope caracteriza a quantidade de requisições que será enviada a um determinado servidor, por exemplo, no escopo de zona de São Paulo e Rio de Janeiro eu coloquei o valor “4”, ou seja, a cada 10 requisições, 4 irão para SP, 4 irão para o Rio, 1 para CE e 1 para BH. Este processo tb está bem explicado na série.

E assim finalizamos mais uma série de posts neste espaço. A partir de agora, vamos focar em Web Application Firewall do Azure com um post escrito pelo Solution Architect Diogo Bacelar que será postado aqui. Também iremos fazer um webcast em breve sobre este tema. Aguardem.

Espero que o tema possa ajuda-lo em suas tarefas diárias!

Abraços

Uilson

Sobre DNS Policies–Windows Server 2016–volume 06–Foresincs

19 de julho de 2017 Deixe um comentário

Saudações!

Voltamos hoje com o penúltimo post da série sobre DNS Policies no Windows Server 2016 – Foresincs.

A quem está chegando agora, abaixo os links para os outros 5 posts da série:

Sobre DNS Policies – Windows Server 2016 – volume 01 – Teoria

Sobre DNS Policies – Windows Server 2016 – volume 02 – Balanceamento de Carga

Sobre DNS Policies – Windows Server 2016 – volume 03 – Gerenciamento de Tráfego de Rede baseado em Geo-Localização

Sobre DNS Policies – Windows Server 2016 – volume 04 – Split Brain DNS e Selective Recursion Control

Sobre DNS Policies – Windows Server 2016 – volume 05 – DNS Filtering

Sobre Foresincs temos uma série de termos e metodologias a seguir. No caso de DNS Policies Foresincs, vamos simplesmente trabalhar no conceito SinkHole, ou seja, vamos fazer com que queries para domínios não confiáveis não sejam resolvidas pelo DNS Server.

Temos como bloquear todo o DNS Zone a fim de que não resolva um determinado domínio (vide exemplo abaixo com um domínio fictício chamado “*.malexemplo.com.br”):

Add-DnsServerQueryResolutionPolicy –Name BadDomainBlock -Action IGNORE -FQDN ‘EQ,*.malexemplo.com.br’

Ou podemos definir que registros dentro de um Zone Scope (Escopo de Zona) não resolvam um domínio que possa trazer a infecção de um malware por exemplo:

Add-DnsServerQueryResolutionPolicy –Name BadDomainBlock -Action IGNORE –ZoneScope “BlockedRecords” -FQDN ‘EQ,*.malexemplo.com.br’

Podemos bloquear uma subnet inteira evitando a resolução a partir dos IP´s nela contidos:

Add-DnsServerQueryResolutionPolicy –Name BadDomainBlock -Action IGNORE -ClientSubnet ‘EQ,SubnetSaoPaulo’

Conclusão

Neste post, curto, porém importante, mostrei como usar o conceito de sinkhole para Foresincs via DNS Policies do Windows Server 2016.

Espero que possa ajudá-lo em suas tarefas diárias.

Abraços

Uilson

Categorias:Não categorizado

Petya Ransomware–algumas informações

27 de junho de 2017 Deixe um comentário

Saudações,

Hoje vamos dar um parênteses na série sobre DNS Policies do Windows Server 2016 para falar da onda de ataques massivos iniciada hoje (27/06/2017) na Ucrânia e que se estendeu por outros países da Europa.

image

Trata-se do Petya Ransomware (ou Petwrap), uma variante do WannaCry que também explora vulnerabilidades na porta 445 – protocolo SMB v1.

Um dos casos mais interessantes foi um supermercado na Ucrânia totalmente parado devido ao ocorrido, conforme imagem abaixo:

russia

Algumas informações:

O ocorrido foi noticiado pelo Telegraph e pela BBC nos links abaixo:.

http://www.telegraph.co.uk/news/2017/06/27/ukraine-hit-massive-cyber-attack1/

http://www.bbc.co.uk/news/technology-40416611

Uma das recomendações é se assegurar que o patch MS17-010 está instalado em seu ambiente. Se ainda não o fez e teve a sorte de não ser atacado pelo WannaCry, então não dê sopa ao azar e atualize.

Entre com alugmas ações pro-ativas:

 

1. Além do patch MS17.010, desabilite o protocolo SMBv1 em seu ambiente.

2. Se constatou a falta do patch em algum equipamento, remova-o da sua rede até que o mesmo esteja atualizado

Mais informações:

A brecha do protocolo SMB não é o único meio pelo qual o ataque pode ser executado. A famosa engenharia social tb pode trazer problemas. Portanto conscientize seus usuários da importância de evitar abrir emails com aenxos os quais não saiba a procedência. Abaixo o email associado ao virus:

wowsmith123456@posteo.net

O endereço do BitCoin informado para pagamento do “resgate”:

1Mz7153HMuxXTuR2R1t78mGSdzaAtNbBWX

Cuidado com os IP´s abaixo:

 

84.200.16.242 – porta 80

111.90.139.247 – porta 80

Portas usadas:

TCP 1024-0035, 135, 445.

 

A execução dos arquivos abaixo inicializa a ação do malware:

File Name            Order-20062017.doc       (RTF із CVE-2017-0199)

MD5 Hash Identifier       415FE69BF32634CA98FA07633F4118E1

SHA-1 Hash Identifier     101CC1CB56C407D5B9149F2C3B8523350D23BA84

SHA-256 Hash Identifier                FE2E5D0543B4C8769E401EC216D78A5A3547DFD426FD47E097DF04A5F7D6D206

File Size                6215 bytes

File Type              Rich Text Format data

 

File Name            myguy.xls

MD5 Hash Identifier       0487382A4DAF8EB9660F1C67E30F8B25

SHA-1 Hash Identifier     736752744122A0B5EE4B95DDAD634DD225DC0F73

SHA-256 Hash Identifier                EE29B9C01318A1E23836B949942DB14D4811246FDAE2F41DF9F0DCD922C63BC6

File Size                13893 bytes

File Type              Zip archive data

 

File Name            BCA9D6.exe

MD5 Hash Identifier       A1D5895F85751DFE67D19CCCB51B051A

SHA-1 Hash Identifier     9288FB8E96D419586FC8C595DD95353D48E8A060

SHA-256 Hash Identifier   17DACEDB6F0379A65160D73C0AE3AA1F03465AE75CB6AE754C7DCB3017AF1FBD

File Size                275968 bytes

 

Sugiro que você crie uma política no seu servidor de antivirus bloqueando a execução dos arquivos citados acima.

Maiores informações nos links abaixo:

https://virustotal.com/fr/file/027cc450ef5f8c5f653329641ec1fed91f694e0d229928963b30f6b0d7d3a745/analysis/

https://www.hybrid-analysis.com/sample/027cc450ef5f8c5f653329641ec1fed91f694e0d229928963b30f6b0d7d3a745?environmentId=100

No link abaixo a Symantec partilha dicas de como evitar o ataque:

https://www.symantec.com/connect/blogs/petya-ransomware-outbreak-here-s-what-you-need-know

Fique atento e mantenha seu ambiente atualizado. Além disso conscientize seus usuários sobre engenharia social e o perigo de se abrir anexos não conhecidos.

Abraços

Uilson

Sobre DNS Policies–Windows Server 2016–volume 05–DNS Filtering

19 de junho de 2017 2 comentários

Saudações! Depois de atuações em alguns auditorias de cybersecurity estamos aí de novo pra continuidade dessa interessante série de posts falando sobre DNS Policies no Windows Server 2016.

A quem está chegando agora, abaixo os links para os outros 4 posts da série:

Sobre DNS Policies – Windows Server 2016 – volume 01 – Teoria

Sobre DNS Policies – Windows Server 2016 – volume 02 – Balanceamento de Carga

Sobre DNS Policies – Windows Server 2016 – volume 03 – Gerenciamento de Tráfego de Rede baseado em Geo-Localização

Sobre DNS Policies – Windows Server 2016 – volume 04 – Split Brain DNS e Selective Recursion Control

Hoje, neste 5o. post desta série, vamos falar sobre DNS Filtering, que são filtros de critérios baseados em requisitos definidos na criação da política propriamente dita, ou seja, a resposta de um DNS Server ocorrerá de acordo com a maneira que um cliente faz a query.

Todos os termos associados aos procedimentos de criação de policies podem ser vistos nos posts anteriores desta série, pois, aqui vamos entrar de forma mais dinãmica no que podemos fazer em termos de Filtering via DNS Policies.

1. Bloqueando queries para um domínio:

Você pode impedir que seu DNS resolva requisições para um determinado domínio. Vamos supor que eu não queira que meus usuários acessem nada que seja do domínio *.malicious.org:

Add-DnsServerQueryResolutionPolicy -Name "BlockedDomains" -Action IGNORE -FQDN "EQ,*.malicious.org" –PassThru

No exemplo acima eu criei uma policy chamada “BlockedDomains” que vai ignorar tudo que for igual (EQ) a “malicious.org”.

2. Bloqueando queries para uma subnet:

Vamos agora supor que eu precise bloquear o acesso a uma subnet, ou seja, uma quantidade de endereços os quais eu teria mais trabalho em bloquear um a um:

Add-DnsServerClientSubnet -Name "BlockedSubnet" -IPv4Subnet 129.214.16.0/24 -PassThru

Add-DnsServerQueryResolutionPolicy -Name "BlockedSubnetPolicy" -Action IGNORE -ClientSubnet  "EQ,BlockedSubnet" -PassThru

No pirmeiro comando eu criei uma subnet chamada “BlockedSubNet” onde eu defino a subnet 129.214.16.0/24. No segundo comando eu crio uma regra chamada “BlockedSubnetPolicy” que ignora tudo o que estiver na range de IP citada.

Este filtro pode ser ainda mais incisivo. Vamos supor que eu queira bloquear acessos a tudo que estiver na subnet acima citada que responda pelo domínio *.malicious.org, ou seja, tudo que responder pelo domínio citado e estiver dentro da subnet criada será ignorado:

Add-DnsServerQueryResolutionPolicy -Name "BlockedSubnetPolicy" -Action IGNORE -ClientSubnet  "EQ,BlockedSubnet" –FQDN “EQ,*.malicious.org” -PassThru

3. Bloqueando e liberando tipo de queries

Vamos fazer um mini lab! Eu vou bloquear toda e qualquer consulta a partir do meu DNS Server e depois vou liberando de acordo com a necessidade.

Add-DnsServerQueryResolutionPolicy -Name "BlockAll" -Action IGNORE -QType "EQ,ANY" –PassThru

Cuidado: O comando acima simplesmente bloqueia todo tipo de queries e requisições a seu DNS. Então planeje bem ao usar o parâmtro ANY.

Agora vou fazer a liberação de determinados tipos de queries. O comando abaixo libera queries do tipo A, AAAA, MX, NS e SOA a partir da interface interface interna do meu DNS Server (10.10.1.20):

Add-DnsServerQueryResolutionPolicy -Name "WhiteListQType" -Action IGNORE -QType "NE,A,AAAA,MX,NS,SOA" –ServerInterface “EQ,10.10.1.20” -PassThru

Vamos agora a outros tipos liberação. Vamos liberar as consultas para meu domínio interno:

Add-DnsServerQueryResolutionPolicy -Name "Whitelist" -Action IGNORE -FQDN "NE,*.uilson.net" –PassThru

O comando acima cria uma white list liberando consultas a tudo que vier do domínio uilson.net, usando o parâmetro NE (Not Equal).

Agora vamos liberar o acesso a uma determinada subnet. Vamos repetir alguns parâmetros do comando exibido no item 2 deste post:

Add-DnsServerClientSubnet -Name "WhiteListSubNet" -IPv4Subnet 129.214.16.0/24 -PassThru

Add-DnsServerQueryResolutionPolicy -Name "WhitelistAllowedSubnetPolicy” -Action IGNORE -ClientSubnet  "NE, WhiteListSubNet" –PassThru

Nos comandos acima criei uma subnet chamada WhileListSubnet contendo a range 129.214.16.0/24 que será liberada para consultas DNS a partir da policy WhiteListAllowedSubNetPolicy.

4. Conclusão

Neste post mostrei exemplos de aplicação de filtros a partir do DNS Policies no Windows Server 2016. Como sempre digo aqui, espero que o conteúdo seja útil e possa ajuda-lo em seu dia a dia.

No próxima post da série irei mostrar DNS Policies para foresincs.

Abraços

Uilson

Sobre DNS Policies–Windows Server 2016–volume 04–Split-Brain DNS e Selective Recursion Control

29 de maio de 2017 Deixe um comentário

Saudações,

Peço desculpas pela demora na publicação do quarto volume desta série. Estive em dias de muito trabalho e alguns percalços pessoais. Mas de qualquer forma vamos ao conteúdo de hoje – Split-Brain DNS.

A quem está chegando agora, abaixo os links para os outros 3 posts da série:

Sobre DNS Policies – Windows Server 2016 – volume 01 – Teoria

Sobre DNS Policies – Windows Server 2016 – volume 02 – Balanceamento de Carga

Sobre DNS Policies – Windows Server 2016 – volume 03 – Gerenciamento de Tráfego de Rede baseado em Geo-Localização

De acordo com a teoria que coloquei no volume 1 desta série, com o recurso de Split-Brain DNS os registros são divididos em diferentes escopos de zona no mesmo servidor DNS. Os clientes DNS recebem uma resposta baseado onde de fato estes clientes estão – internos ou externos. Este recurso pode ser configurado em zonas integradas ao AD ou para DNS Standalone Servers.

Também iremos criar políticas de seletive recursion para mitigação e vulnerabilidades em ambientes como este.

Em tempo – Este laboratório foi criado em meu ambiente tendo como base o laboratório do artigo Split-Brain DNS Deployment Using Windows DNS Server Policies do pessoal do Networking Blog da Microsoft. Como não tinha montado nada semelhante, me espelhei no conteúdo deles para criar o meu. Para aqueles que notarem a semelhança do meu lab com o deles, fica aqui registrado que a idéia inicial é do link citado e deixo a eles o devido crédito.

Vamos então a parte prática!

Imaginemos que tenho um site que deverá ser acessado tanto por usuários internos quanto externos. Esse possui informações de produtos da minha empresa que a equipe compartilha com parceiros externos.

Meu DNS posui duas interfaces, uma interna e outra externa

Interna – IP 10.10.1.100

Externa – IP 200.185.0.55

Meu servidor de aplicação interno responde pelo IP 10.10.1.10 e meu servidor de aplicação externo responde pelo IP 66.56.40.10 (lembrando que estes são IP´s fictícios, os IP´s que usei no laboratório do meu ambiente são outros e aqui fica só para ilustração)

Objetivo – Usuários na minha rede interna, irão acessar o site produtos.uilson.net do back-end Server interno e usuários externos irão acessar o back-end server externo, conforme o desenho abaixo:

 

image

Com o cenário definido, vamos ao procedimento que torna tudo isso real:

Vamos começar criando um zone scope para o acesso interno, ou seja, os acessos que virão pela interface 10.10.1.100:

Add-DnsServerZoneScope –ZoneName “uilson.net” –Name “InternalAccess”

Iremos criar o zone scope somente para o acesso interno, ficando o acesso externo direto no zone uilson.net no escopo padrão.

Agora vamos criar criar os registros para os acessos interno e externo, sendo que, para o acesso interno, iremos cria-lo já dentro do zone scope que acabamos de criar:

Registro de acesso externo – Add-DnsServerResourceRecord –ZoneName “uilson.net” –A –Name “produtos” –IPv4Address “66.56.40.10”

Registro de acesso interno – Add-DnsServerResourceRecord –ZoneName “uilson.net” –A –Name “produtos” –IPv4Address “10.10.1.10” –ZoneScope “InternalAccess”

Agora que temos o zone scope e os registros criados, vamos à política que irá diferenciar acessos internos e externos:

Add-DnsServerQueryResolutionPolicy –Name “SplitBrainPolicy” –Action Allow –ServerInterface “eq,10.10.1.100” –ZoneScope “InternalAccess,1” –ZoneName uilson.net

Feito!!!! Temos agora nosso ambiente direcionando as requisições internas ao site produtos.uilson.net para o back-end server interno e os acessos externos indo diretamente para o servidor externo, conforme definido no escopo inicial.

Poderiamos dizer que temos o trabalho finalizado, certo? Errado! Deixar o ambiente simplesmente como está pode, em alguns casos, criar uma vulnerabilidade que precisa ser mitigada.

Lembre-se que neste exemplo temos um DNS Server resolvendo nomes para recursos internos e externos. O que pode ocorrer aqui é que requisições internas e externas passem fazer queries por endereços de internet, podendo expor o ambiente a um Reflection Attack ou DNS Amplification Attack – um DDoS.

Neste caso, as resoluções recursivas para nomes externos precisa ser bloqueada e para isso criaremos outra política que vem a ajudar na mitigação desta vulneravbilidade:

image

Desenho original do link: https://blogs.technet.microsoft.com/networking/2015/05/12/split-brain-dns-deployment-using-windows-dns-server-policies/

O link que postei sobre DDoS DNS Amplification Attack pede que a funcionalidade da recursiva seja desasbilitada no servidor DNS. Neste caso, vamos desabilitar este recurso que será usado somente para requisições internas.

Desabilitando a recursiva: Set-DnsServerRecursionScope –Name . –EnableRecursion $False

No comando acima, a recursiva está sendo desabilitada para o escope default (tudo que está em uilson.net).

Agora vamos habilitar a recursiva somente para um escopo de clientes internos:

Add-DnsServerRecursionScope –Name “RecursionInternalClients” –EnableRecursion $True

Agora vamos criar a política que irá permitir a recursiva somente para clientes internos;

Add-DnsServerQueryResolutionPolicy –Name “SplitBrainRecursionInternal”-Action ALLOW –ApplyOnRecursion –RecursionScope “RecursionInternalClients” –ServerInterfaceIP “EQ,10.10.1.100”

Agora temos nosso ambiente executando dentro de uma melhor prática para o recurso do Split-Brain DNS.

Espero mais uma vez que o conteúdo possa ser útil e não perca o volume 5 desta série. Iremos falar sobre Filtering com DNS Policies.

Abraços

Uilson

Sobre DNS Policies–Windows Server 2016–volume 03–Gerenciamento de Tráfego de Rede baseado em Geo-Localização

25 de abril de 2017 Deixe um comentário

Saudações,

Dando continuidade a série de posts sobre DNS Policies no Windows Server 2016, vamos hoje ao volume 03 onde falaremos sobre o gerenciamento de tráfego de rede baseado em geo-localização via políticas de DNS com PowerShell. Para quem chegou agora, os links para os dois primeiros posts:

Sobre DNS Policies – Windows Server 2016 – volume 01 – Teoria

Sobre DNS Policies – Windows Server 2016 – volume 02 – Balanceamento de Carga

Vamos ao cenário – Você tem uma aplicação de intranet que está instalada em 4 servidores em sua rede. Cada servidor está em uma filial da empresa (São Paulo, Rio de Janeiro, Belo Horizonte e Fortaleza). As requisições vindas dos usuários de São Paulo deverão acessar o servidor da própria localidade, da mesma forma que os demais Estados. Imagine que a Intranet de São Paulo foi desenvolvida para os usuários da localidade, logo um usuário de Fortaleza não pode acessar o conteúdo paulista. O mesmo se dá com BH e Rio. Entenderam? Acho que sim né?

Subnet de São Paulo – 10.10.1.0/24

Subnet do Rio de Janeiro – 10.10.2.0/24

Subnet de Belo Horizonte – 10.10.3.0/24

Subnet de Fortaleza – 10.10.4.0/24

Endereço da intranet – https://intranet.uilson.net

O processo tem que ocorrer de acordo com o desenho abaixo:

 

image

Agora que temos o cenário pronto e descrito, vamos a parte técnica. Como fazer com que as requisições via DNS para esses servidores de aplicação sejam encaminhadas da forma como definimos no começo deste post? Simples! Vamos de PowerShell!

Como no post anterior, vamos repetir alguns passos para fixar os conceitos criando zone scopes, subnet scopes, inserir registros nos zone scopes e criar a regra que faz essa distribuição.

Apenas relembrando, para se instalar o serviço de DNS via PowerShell, seja integrado ao AD ou avulso, através de um Zone File, você pode consultar o post que escrevi da série de otimização de tarefas com PowerShell sobre DNS Server.

Estou assumindo neste laboratório que já temos um DNS Server instalado com um primary zone definido – no nosso laboratório é o domínio uilson.net.

1. Criação dos Client Subnets

Vamos criar os client subnets que serão utilizados em nossa política de gerenciamento de tráfego de rede. Na imagem abaixo, o comando para criação do client subnet para o ambiente em São Paulo:

image

Agora vamos repetir o processo para os demais sites do nosso ambiente de laboratório:

Add-DnsServerClientSubnet -Name RJSubnet -IPv4Subnet 10.10.2.0/24

Add-DnsServerClientSubnet –Name BHSubnet -IPv4Subnet 10.10.3.0/24

Add-DnsServerClientSubnet -Name CESubnet -IPv4Subnet 10.10.4.0/24

Com o comando Get-DnsServerClientSubnet você consegue ver a lista de client subnets criada.

2. Criação dos Scope Zones e adição do registro

Agora que temos nossos client subnet´s criados, vamos repetir um passo ensinado no 2o. post desta série que foi a criação dos escopos de zona (Zone Scopes) para que as requisições que vierem de qualquer uma das subnets criadas possam ser atendidas pelo registro que estiver no escopo correspondente a localidade em que o usuário se encontra.

Abaixo o comando para criação do escope zone em São Paulo no nosso laboratório:

image

No exemplo acima, eu criei um Zone Scope chamado “SPZoneScope_NM” (SP Zone Scope – Network Management) – somente para diferenciar do que foi criado no artigo anterior. Lembrando que o nome o Scope é o de sua conveniência. Apenas estou esclarecendo para que está acompanhando a série de posts desde o inicio.

Agora vamos repetir o processo para as outras localidades:

Add-DnsServerZoneScope -Zonename uilson.net -Name RJZoneScope_NM

Add-DnsServerZoneScope -Zonename uilson.net –Name BHZoneScope_NM

Add-DnsServerZoneScope -Zonename uilson.net -Name CEZoneScope_NM

Agora vamos inserir um registro em cada um desses Zone Scopes.

Vamos inserir o registro do tipo “A” chamado “intranet em cada um dos Zone Scopes:

Add-DnsServerResourceRecord -ZoneName uilson.net -A -Name intranet -IPv4Address 10.10.1.10 –ZoneScope SPZoneScope_NM

Add-DnsServerResourceRecord -ZoneName uilson.net -A -Name intranet -IPv4Address 10.10.2.10 –ZoneScope RJZoneScope_NM

Add-DnsServerResourceRecord -ZoneName uilson.net -A -Name intranet -IPv4Address 10.10.3.10 –ZoneScope BHZoneScope_NM

Add-DnsServerResourceRecord -ZoneName uilson.net -A -Name intranet -IPv4Address 10.10.4.10 –ZoneScope CEZoneScope_NM

4. Criação da política de gerenciamento de tráfego de rede

Com as client subnets criadas, zone scopes e registro definidos, vamos a criação da política de gerenciamento do tráfego de rede para a aplicação intranet do nosso laboratório:

image

Para cada localidade uma politica será criada:

Add-DnsServerQueryResolutionPolicy –Name SPPolicy -Action ALLOW -ClientSubnet ‘eq,SPSubnet’ -ZoneScope ‘SPZoneScope_NM,1’ -ZoneName uilson.net

Add-DnsServerQueryResolutionPolicy -Name RJPolicy -Action ALLOW -ClientSubnet ‘eq,RJSubnet’ -ZoneScope ‘RJZoneScope_NM,1’ -ZoneName uilson.net

Add-DnsServerQueryResolutionPolicy –Name BJPolicy -Action ALLOW -ClientSubnet ‘eq,BHSubnet’ -ZoneScope ‘BHZoneScope_NM,1’ -ZoneName uilson.net

Add-DnsServerQueryResolutionPolicy -Name CEPolicy -Action ALLOW -ClientSubnet ‘eq,CESubnet’ -ZoneScope ‘CEZoneScope_NM,1’ -ZoneName uilson.net

Nas políticas acima, a requisição que vem da subnet de São Paulo é direcionada exclusivamente para o servidor registrado no zone scope correspondente, ou seja, de São Paulo. O mesmo ocorrerá com as demais localidades.

5. Conclusão

Esta é apenas uma das formas de se configurar o tráfego de rede via DNS Policies. Nessa série de posts vamos explorar todas as formas disponíveis nesse mesmo laboratório. Vamos voltar a falar sobre gerenciamento de tráfego de rede em outros aspectos nos posts sub-sequentes.

No próximo post vamos falar sobre Split-Brain DNS.

Espero que o conteúdo possa ser útil a suas tarefas diárias e o ajude de forma eficaz.

Abraços

Uilson

Categorias:Não categorizado

Sobre DNS Policies–Windows Server 2016–volume2–Balanceamento de Carga

11 de abril de 2017 Deixe um comentário

Saudações,

Dando continuidade a nossa série de posts sobre DNS Policies, hoje vou relembrar um post que publiquei a um tempo atrás falando sobre o uso do balanceamento de carga de aplicações.

Para quem ainda não leu o primeiro post desta série, segue abaixo o link:

Sobre DNS Policies – Volume1 – Teoria

1. Planejamento do Balanceamento de carga

Vamos clarificar que, o planejamento para alta disponibilidade e sizing de suas aplicações, você não deve somente se basear no que vamos falar aqui. Você precisa ter em mente os objetivos e tipos de acesso que serão necessários para a sua realidade. O balanceamento de carga pode ser feito via NLB Windows, Failover Clustering ou NLB via hardware (este um recurso mais indicado para aplicações que recebem muitos acessos). No caso de high availability em cloud, verifique as questões de elasticidade em termos desenvolvimento e veja como seu cloud provider trabalha em relação a isso.

Enfim, o balanceamento de carga via DNS Policies deve ser avaliado quanto sua eficácia para o negócio que seu aplicativo visa entregar a um departamento e/ou cliente final. Você precisa estar certo de que esta é a melhor opção para seu cenário.

2. Estudo de caso

Vamos propor aqui, como no artigo original publicado anteriormente, um estudo de caso que nos dará a base para a solução a ser implementada:

2.1. Tenho 4 servidores de aplicação – 1 em São Paulo, 1 no Rio de Janeiro, 1 em Fortaleza e  1 em Belo Horizonte

2.2. Fortaleza e Belo Horizonte possuem links com menos banda que SP e RJ

2.3. Essa aplicação vai atender a todo acesso que vier em qualquer uma das filiais da empresa

3. Cenário

Para atender a esta demanda, temos o seguinte desenho de solução:

 

image

4. Solução técnica

Com o exposto acima, vamos ver agora de forma prática como o DNS Policies nos ajuda a entregar essa solução de forma rápida e tudo via PowerShell!!

Primeiro vamos criar os escopos de zona. É a partir deles que a política vai se orientar para aplicar o que queremos. Para cada localidade onde tenho um servidor de aplicação vou crirar um Scope Zone.

Vou noema-los da seguinte forma:

São Paulo: SP_Scope

Rio de Janeiro: RJ_Scope

Fortaleza: For_Scope

Belo Horizonte: BH_Scope

Como fica as linhas de comando PowerShell para isso:

Add-DnsServerZoneScope –ZoneName “uilson.net” –Name “SP_Scope”

Add-DnsServerZoneScope –ZoneName “uilson.net” –Name “RJ_Scope”

Add-DnsServerZoneScope –ZoneName “uilson.net” –Name “For_Scope”

Add-DnsServerZoneScope –ZoneName “uilson.net” –Name “BH_Scope”

image

Com os Scope Zones criados, vou criar um registro tipo A dentro destes escopos, ou seja, cada escopo estará apontando para o IP do back-end server da localidade correspondente:

Add-DnsServerResourceRecord –ZoneName “uilson.net” –A –Name “AppServer” –IPv4 “10.10.0.10” –ZoneScope “SP_Scope”

Add-DnsServerResourceRecord –ZoneName “uilson.net” –A –Name “AppServer” –IPv4 “10.10.1.10” –ZoneScope “RJ_Scope”

Add-DnsServerResourceRecord –ZoneName “uilson.net” –A –Name “AppServer” –IPv4 “10.10.2.10” –ZoneScope “For_Scope”

Add-DnsServerResourceRecord –ZoneName “uilson.net” –A –Name “AppServer” –IPv4 “10.10.3.10” –ZoneScope “SP_Scope”

image

Agora que já temos os Zone Scopes criados e seus respectivos registros, vamos criar a política que fará o balanceamento de carga via DNS Policies:

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

image

No comando acima observa-se que ao fim de cada Scope Zone foi colocado uma vírgula e um número (Ex: SP_Scope,3). Isto vai definir que para a cada 10 requisições feitas para o host “appserver.uilson.net”, teremos as 3 primeiras sendo direcionadas para o servidor em São Paulo, as próximas 3 para o servidor do Rio de Janeiro, as 2 seguintes para o servidor em Fortaleza e as 2 últimas para o servidor de Belo Horizonte. Dessa forma conseguimos balancear a carga entre as 3 localidades, respeitando os limites de link de cada uma delas.

5. Conclusão

Este post foi publicado novamente para seguir a série que começamos em 03/abril/2017 sobre DNS Policies. No próximo post falaremos sobre Gerenciamento de tráfego de Rede usando políticas de DNS.

Espero que você tenha gostado e que este conteúdo possa ajuda-lo em suas tarefas diárias.

Abraços

Uilson

%d blogueiros gostam disto: