Split-Brain DNS com o Windows Server 2025 [quando seu domínio interno tem .com.br ou .com]

 



1. O Cenário e o Problema Fundamental

Vamos abordar neste artigo, algo que vejo em larga escala por diversos clientes. O bom de se trabalhar em uma consultoria, é que temos uma visão ampla de inúmeros cenários, e o mais comum deles é quando um analista coloca o nome de um domínio interno com o .com.br ou qualquer terminação que pertence a uma autoridade externa. 

Quando o servidor DNS está configurado com as políticas apropriadas, cada solicitação de resolução de nomes é analisada conforme essas regras.
Neste cenário, utilizamos a interface do servidor como critério para distinguir clientes internos de externos.

Se a consulta chegar por uma interface que atenda a uma das políticas definidas, o servidor responde usando o escopo de zona associado àquela política.

Assim, no nosso exemplo:

  • consultas para www.contoso.com.br recebidas no IP privado (10.0.0.56) retornam um endereço interno;

  • consultas recebidas pela interface pública retornam o endereço IP público a partir do escopo padrão da zona — equivalente ao comportamento de resolução convencional.

Para ilustrar o caso, imagine que sua empresa utiliza exatamente o domíniocontoso.com.br (na figura abaixo esta como eduardopopovici.com).

  • Para o mundo externo (Internet): contoso.com.br é o endereço do seu site, do seu portal de clientes, etc. O site www.contoso.com.br precisa resolver para um endereço de IP público (ex: 203.0.113.10), que é o endereço do seu servidor web na nuvem ou na DMZ da sua empresa.

  • Para a sua rede interna: contoso.com.br é o seu domínio do Active Directory. Seus computadores, servidores e usuários fazem parte deste domínio. Um servidor de arquivos interno, srv-dados.contoso.com.br, precisa resolver para um endereço de IP privado (ex: 192.168.1.50), acessível apenas de dentro da rede.

O problema é: Como o mesmo nome de domínio ? 

A documentação em português do Brasil trata o assunto como implantação de DNS com partição de rede. 

É exatamente isso que o Split DNS resolve.

2. Os Componentes da Solução: As Duas Zonas de DNS

A solução consiste em manter duas visões completamente separadas (e autoritativas) do mesmo domínio.

a) A Zona de DNS Interna (Gerenciada pelo Active Directory)

  • Onde Fica? Nos seus Controladores de Domínio (DCs). Quando você promove um servidor a DC, a função de Servidor DNS é geralmente instalada e a zona de DNS é criada como "Integrada ao Active Directory".

  • O que Contém? Esta zona é o "mapa" da sua rede interna. Ela contém registros vitais que NÃO DEVEM ser expostos na internet:

    • Registros de Host (A/AAAA): Mapeiam os nomes dos seus computadores e servidores internos (PC-FINANCEIRO-01SRV-DADOS) para seus IPs privados (192.168.1.100192.168.1.50).

    • Registros de Serviço (SRV): São cruciais para o AD. Eles informam aos computadores da rede onde encontrar serviços essenciais, como:

      • _ldap._tcp.dc._msdcs.contoso.com.br: Onde estão os controladores de domínio para autenticação.

      • _kerberos._tcp.dc._msdcs.contoso.com.br: Onde estão os serviços Kerberos para emissão de tickets de segurança.

      • E muitos outros (Global Catalog, etc.).

    • Atualizações Dinâmicas: Esta zona é configurada para permitir que os computadores membros do domínio registrem e atualizem seus próprios registros DNS automaticamente e de forma segura. Quando um PC obtém um novo IP do DHCP, ele informa ao DNS do AD.

b) A Zona de DNS Externa (Gerenciada por um Provedor Público)

  • Onde Fica? Em um serviço de DNS público. Pode ser o serviço do seu registrador de domínio (como GoDaddy, Registro.br) ou um serviço de DNS especializado (como Cloudflare, Amazon Route 53).

  • O que Contém? Esta zona é o "cartão de visitas" da sua empresa na internet. Ela contém apenas os registros que o público precisa para encontrar seus serviços externos:

    • Registro A para o site: www.contoso.com.br apontando para o IP público 203.0.113.10.

    • Registro MX (Mail Exchanger): contoso.com.br apontando para o seu servidor de e-mail (ex: mail.provedor-externo.com).

    • Outros registros públicos: SPF, DKIM, DMARC para segurança de e-mail, CNAME para serviços de terceiros, etc.



3. O Fluxo de Resolução de Nomes

Aqui é onde a "divisão" acontece na prática.

Fluxo para um Cliente INTERNO:

  1. Um usuário no PC-FINANCEIRO-01 tenta acessar srv-dados.contoso.com.br.

  2. O PC está configurado (geralmente via DHCP) para usar o Controlador de Domínio como seu servidor DNS primário (ex: 192.168.1.10).

  3. A consulta é enviada para o DC.

  4. O DC olha em sua zona interna contoso.com.br, encontra o registro srv-dados e responde com o IP privado: 192.168.1.50. A conexão é feita com sucesso.

E se o mesmo usuário interno tentar acessar www.google.com?

  1. A consulta vai para o DC (192.168.1.10).

  2. O DC vê que não tem uma zona para google.com.

  3. O DC usa seus Encaminhadores (Forwarders) ou os Root Hints para perguntar a um servidor DNS na internet (ex: 8.8.8.8).

  4. O servidor externo responde com o IP público do Google, e o DC repassa essa resposta ao cliente.

Fluxo para um Cliente EXTERNO:

  1. Um cliente em casa, em sua rede doméstica, digita www.contoso.com.br no navegador.

  2. Seu computador consulta o servidor DNS do provedor de internet dele (ex: Vivo, Claro).

  3. O DNS do provedor não conhece esse domínio, então ele inicia uma consulta recursiva pela internet, chegando até os servidores de DNS públicos que são autoritativos para a zona contoso.com.br (aqueles no seu provedor de DNS externo).

  4. O servidor de DNS público responde com o IP público 203.0.113.10.

  5. O cliente se conecta ao seu site.

Note que o cliente externo nunca fala com o seu Controlador de Domínio. Ele não tem conhecimento dos seus IPs internos ou dos seus registros SRV.

4. A Integração Crucial com o Active Directory

Manter a zona contoso.com.br interna e controlada pelos DCs é não negociável para o funcionamento do AD.

  • Autenticação e Login: Sem os registros SRV corretos, um computador não consegue encontrar um DC para validar o login de um usuário. O resultado seria a falha de logon no domínio.

  • Políticas de Grupo (GPO): O computador precisa encontrar um DC para baixar e aplicar as políticas de grupo.

  • Localização de Recursos: Scripts de logon, compartilhamentos de rede (DFS), e outros serviços integrados ao AD dependem do DNS interno para funcionar.

Expor esses registros SRV na internet seria um grave risco de segurança, pois forneceria um mapa detalhado da sua infraestrutura interna para potenciais atacantes.

5. Métodos de Implementação

Existem duas abordagens principais para implementar o Split DNS:

  1. Abordagem Tradicional (Servidores Separados):

    • Interno: Seus Controladores de Domínio servem a zona interna.

    • Externo: Você contrata um provedor de DNS externo para hospedar a zona pública.

    • Vantagem: Conceitualmente simples e muito seguro, pois há uma separação física e lógica completa. Esta é a prática mais comum e recomendada para a maioria das empresas.

  2. Abordagem Moderna (Políticas de DNS no Windows Server):

    • Disponível a partir do Windows Server 2016.

    • Permite que um único servidor DNS (seu DC) gerencie uma única zona, mas forneça respostas diferentes com base na origem da consulta.

    • Como funciona: Você cria "Escopos de Zona" (Zone Scopes). Por exemplo, um escopo interno e um externo. Depois, cria políticas que dizem: "Se a consulta vier de um IP da minha rede interna, responda com os registros do escopo interno. Se vier de qualquer outro lugar, responda com os do escopo externo".

    • Vantagem: Gerenciamento centralizado em um único local.

    • Desvantagem: Configuração mais complexa e exige um entendimento profundo das políticas de DNS. Geralmente, ainda se recomenda não expor o DC diretamente à internet, tornando esta abordagem mais útil para cenários específicos.

Em resumo, o Split DNS com Active Directory não é apenas uma boa prática, é um requisito fundamental para ter um domínio com o mesmo nome para uso interno e externo, garantindo segurança, funcionalidade e uma experiência de acesso contínua para todos os usuários.

Como configurar: 

Cenário de Exemplo

Antes de começarmos, vamos definir nosso ambiente de exemplo:

  • Nome do Domínio: eduardopopovici.com

  • Controlador de Domínio (DC): DC01 (que também é o Servidor DNS)

  • IP do DC01: 192.168.1.10

  • Rede Interna (Sub-rede): 192.168.1.0/24

  • Recurso Interno: Servidor de arquivos srv-files.eduardopopovici.com com o IP 192.168.1.100.

  • Recurso Externo: Site www.eduardopopovici.com com o IP Público 203.0.113.50.

Pré-requisitos

  1. Você tem um domínio Active Directory funcional chamado eduardopopovici.com.

  2. A função de Servidor DNS está instalada no seu Controlador de Domínio.

  3. A zona de pesquisa direta eduardopopovici.com já existe e está integrada ao Active Directory.

  4. Você executará os comandos a seguir em uma janela do PowerShell (como Administrador) no seu Controlador de Domínio.

Passo a Passo da Configuração no Windows Server

Passo 1: Identificar e Criar a Sub-rede do Cliente Interno

Primeiro, precisamos dizer ao servidor DNS o que ele deve considerar como "rede interna". Criaremos um objeto de sub-rede de cliente para representar sua rede local.

# Este comando cria uma sub-rede chamada "InternalSubnet" para o range de IP 192.168.1.0/24.
# Ajuste o range de IP se a sua rede for diferente.
Add-DnsServerClientSubnet -Name "InternalSubnet" -IPv4Subnet "192.168.1.0/24"




Passo 2: Criar os Escopos da Zona (Zone Scopes)

Por padrão, sua zona já possui um escopo chamado default. Vamos manter este escopo para a nossa visão interna. Agora, criaremos um novo escopo para a visão externa (pública).

# Este comando adiciona um novo escopo chamado "ExternalScope" à sua zona DNS.
Add-DnsServerZoneScope -ZoneName "eduardopopovici.com" -Name "ExternalScope"


Obs.: Ele não vai aparecer no Gerenciador de DNS. Você precisa fazer a consulta por powershell. 


É importante lembrar que a interface gráfica do Gerenciador de DNS (dnsmgmt.msc) não mostra os Escopos de Zona (Zone Scopes).

A ferramenta gráfica do Gerenciador de DNS é um "console legado" que não foi atualizado para visualizar ou gerenciar os recursos modernos de Políticas de DNS, que foram introduzidos à partir do Windows Server 2016.

Como Verificar se o Escopo foi Criado Corretamente

Para confirmar que seu comando funcionou e ver os escopos existentes, execute o seguinte comando no PowerShell:

Get-DnsServerZoneScope -ZoneName "eduardopopovici.com"

Vamos usar um comando mais fundamental. Vamos pedir ao PowerShell para simplesmente listar todas as zonas que ele consegue enxergar no servidor.

Get-DnsServerZone

Agora você tem dois "contêineres" para registros dentro da mesma zona: default e ExternalScope.

Passo 3: Adicionar os Registros DNS aos Escopos Apropriados

Este é o passo crucial onde a "divisão" acontece. Vamos adicionar os registros, garantindo que cada um vá para o escopo correto.

# --- Adicionar registros para a visão INTERNA (escopo 'default') ---

# 1. Adiciona o registro do servidor de arquivos interno. Este registro só existirá na visão interna.
Add-DnsServerResourceRecord -ZoneName "eduardopopovici.com" -A -Name "srv-files" -IPv4Address "192.168.1.100"

# 2. Adiciona o registro do site 'www' na visão interna, apontando para o IP PÚBLICO.
#    Isso permite que usuários internos também acessem o site pelo nome público.
Add-DnsServerResourceRecord -ZoneName "eduardopovici.com" -A -Name "www" -IPv4Address "203.0.113.50"

# --- Adicionar registros para a visão EXTERNA (escopo 'ExternalScope') ---

# 3. Adiciona o registro 'www' APENAS no escopo externo. Note o parâmetro "-ZoneScope".
Add-DnsServerResourceRecord -ZoneName "eduardopovici.com" -A -Name "www" -IPv4Address "203.0.113.50" -ZoneScope "ExternalScope"

# IMPORTANTE: NÃO adicione o registro 'srv-files' ou outros registros internos neste escopo!

Passo 4: Criar as Políticas de Resolução de Consultas

Agora, vamos criar as regras lógicas que dizem ao servidor DNS qual escopo usar com base em quem está perguntando.

# Política 1: Para clientes da rede INTERNA
# "Se uma consulta para eduardopopovici.com vier da InternalSubnet,
#  use o escopo 'default' para encontrar a resposta."
Add-DnsServerQueryResolutionPolicy -Name "InternalPolicy" -Action ALLOW -ClientSubnet "eq,InternalSubnet" -ZoneName "eduardopovici.com" -ZoneScope "default,1"

# Política 2: Para todos os OUTROS clientes (Internet)
# "Se uma consulta para eduardopopovici.com vier de qualquer outro lugar,
#  use o escopo 'ExternalScope' para encontrar a resposta."
Add-DnsServerQueryResolutionPolicy -Name "ExternalPolicy" -Action ALLOW -ZoneName "eduardopovici.com" -ZoneScope "ExternalScope,1"

Passo 5: Configuração no seu Provedor de DNS Externo

Esta parte é feita no painel de controle do seu serviço de DNS público (ex: GoDaddy, Cloudflare, Registro.br, etc.).

  1. Acesse o painel de gerenciamento de DNS para o domínio eduardopopovici.com.

  2. Crie APENAS os registros que o público precisa ver:

    • Registro A:

      • Nome/Host: www

      • Valor/Aponta para: 203.0.113.50 (seu IP público)

    • Registro MX (para e-mails):

      • Nome/Host: @ (ou deixe em branco, dependendo do provedor)

      • Valor/Aponta para: O endereço do seu servidor de e-mail (ex: mx.provedor-email.com)

    • Outros registros públicos: SPF, DKIM, CNAMEs para serviços externos, etc.

O mais importante: NÃO crie nenhum registro para servidores internos como srv-files ou DC01 no seu DNS público.

Passo 6: Verificação e Testes

Agora, vamos verificar se tudo está funcionando como esperado.

A. De um computador CLIENTE INTERNO (dentro da sua rede):

Abra o PowerShell ou o Prompt de Comando.

# Teste de resolução do recurso INTERNO
Resolve-DnsName srv-files.eduardopopovici.com
# Resposta ESPERADA: 192.168.1.100

# Teste de resolução do recurso EXTERNO
Resolve-DnsName www.eduardopovici.com
# Resposta ESPERADA: 203.0.113.50

B. De um computador EXTERNO (sua casa, 4G) ou usando uma ferramenta online (como MxToolbox):

# Use o nslookup especificando um servidor DNS público como o do Google (8.8.8.8)
nslookup www.eduardopovici.com 8.8.8.8
# Resposta ESPERADA: 203.0.113.50

# Teste de resolução do recurso INTERNO (deve FALHAR)
nslookup srv-files.eduardopovici.com 8.8.8.8
# Resposta ESPERADA: Erro! "Non-existent domain" ou "não foi possível encontrar o host".
# Esta falha é a confirmação de que sua rede interna está protegida e não vaza nomes.

Se os resultados dos testes forem os esperados, você configurou com sucesso o Split-Brain DNS para o seu domínio

Ref Learn: 



Postar um comentário

Comente sem faltar com respeito - ;-)

Postagem Anterior Próxima Postagem