Subnet mal planejada não quebra na implantação. Quebra quando a empresa cresce.
Introdução
Olá!
Hoje vamos falar de um comportamento em redes Windows que você deveria SEMPRE levar em consideração ao projetar ou implementar o seu plano de subnets, principalmente em qualquer escopo que envolva pelo menos duas redes /24.
Dando um spoiler para os apressadinhos:
EVITE AO MÁXIMO USAR RANGES NÃO SEQUENCIAIS EM SUAS DEFINIÇÕES DE SUBNETS.
Isso não é apenas uma boa prática organizacional.
Trata-se de uma característica interna do DNS do Windows Server, pouco documentada, que impacta diretamente latência, autenticação, GPO, DFS, LDAP e a escalabilidade de ambientes com Active Directory distribuído.
Exemplos de planejamento de subnets
✅ Exemplos corretos (sequenciais)
10.0.0.0/24e10.0.1.0/24172.20.0.0/24e172.20.1.0/24192.168.50.0/24,192.168.51.0/24, 192.168.52.0/24, 192.168.53.0/24
Esses modelos permitem:
- continuidade binária
- sumarização lógica
- crescimento previsível
- priorização correta de subnet no DNS
❌ Exemplos incorretos (não sequenciais)
10.0.0.0/24e192.168.0.0/24172.40.0.0/24e10.5.0.0/24172.100.100.0/24e192.168.100.0/24
Esses cenários criam ilhas de endereçamento, que:
- não podem ser representadas por uma única máscara
- quebram a lógica de proximidade do DNS
- forçam o uso de round-robin puro
Topologia de rede — por que este artigo existe?
Antes de entrar em configurações avançadas, é fundamental entender o problema que este artigo resolve.
Cenário 1 — Site único, subnet única
Você está em uma estação de trabalho em uma rede local, em um site único, e precisa realizar uma consulta DNS.
Fluxo:
- A estação pergunta quais servidores DNS estão disponíveis
- Existe apenas um servidor DNS
- A resposta vem dele
✅ Tudo funciona corretamente.
Nesse cenário, qualquer erro estrutural fica mascarado.
Cenário 2 — Floresta com dois sites e subnet única em cada site
Agora a floresta possui dois sites, cada um com seu próprio DNS.
- A estação está na mesma subnet do DNS local
- O Active Directory associa corretamente a subnet ao site
- O DNS local responde
✅ Baixa latência
✅ Comportamento previsível
Ainda assim, o problema não aparece.
Cenário 3 — Dois sites, subnets diferentes entre workstations e DNS local
Aqui está o cenário crítico.
Você está em uma estação de trabalho:
- em uma subnet diferente da subnet do DNS local
- em uma floresta com dois sites
- cada site com seu próprio servidor DNS
Neste caso:
- Ambos os servidores DNS são válidos
- Pela configuração padrão do Windows, não existe garantia de prioridade
Resultado:
- A resposta depende
- A consulta pode ir para o DNS local
- Ou pode ir para um DNS remoto
- A decisão ocorre em round-robin, de forma aparentemente aleatória
👉 No cenário acima, o comportamento passa a ser este:
🔴 Quando o DNS responde fora do site correto
⚠️ Atenção: este não é um problema de falha, é um problema de previsibilidade
Quando o DNS em um ambiente Active Directory responde fora do site correto, o ambiente continua funcionando, porém passa a apresentar comportamento inconsistente, difícil de diagnosticar e cada vez mais custoso conforme a infraestrutura cresce.
Os impactos mais comuns são:
- Logon de usuários lento ou variável
- Autenticação inconsistente (ora local, ora remota)
- Aplicação de GPOs demorando ou falhando intermitentemente
- Falhas em encontrar recursos/hosts que só existem localmente
- DC Locator imprevisível
- DFS / aplicações sensíveis à latência
- Problemas intermitentes difíceis de diagnosticar
- Dificuldade de troubleshooting
- Aumento injustificado de dependência da WAN
- Perda do isolamento lógico entre sites
- Necessidade de comunicação irrestrita entre todos os sites
👉 Nada quebra de vez — tudo fica imprevisível.
A característica pouco documentada do DNS do Windows
O DNS do Windows Server possui um mecanismo chamado DNS Subnet Prioritization, controlado pelas chaves:
HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\LocalNetPriority
HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\LocalNetPriorityNetMask
⚠️ Importante:
- Não utiliza Sites and Services
- Não utiliza custo de link
- Não utiliza subnet do AD
- Utiliza apenas comparação binária de IP baseada em máscara
Configurando a priorização de subnet no DNS
1️⃣ Ativando LocalNetPriority
Chave: LocalNetPriority
Tipo: REG_DWORD
Valor: 1
Ativa a tentativa do DNS de priorizar registros considerados locais antes do round-robin.
2️⃣ Configurando LocalNetPriorityNetMask
Chave: LocalNetPriorityNetMask
Tipo: REG_DWORD
Valor: máscara em hexadecimal
Essa máscara define qual parte do endereço IP o DNS considera como rede local.
Como calcular a máscara LocalNetPriorityNetMask
A máscara não é a subnet mask tradicional.
O cálculo é feito assim:
- Comece com
255.255.255.255 - Subtraia a subnet mask desejada
- Converta o resultado para hexadecimal
- Remova os pontos
Exemplo /21 (255.255.248.0)
255 255 255 255
255 255 248 0
----------------
0 0 7 255
Hexadecimal:
000007ff
Exemplo /20 (255.255.240.0)
255 255 255 255
255 255 240 0
----------------
0 0 15 255
Hexadecimal:
00000fff
Exemplo /16 (255.255.0.0)
255 255 255 255
255 255 0 0
----------------
0 0 255 255
Hexadecimal:
0000ffff
Exemplo /22 (255.255.252.0)
255 255 255 255
255 255 252 0
----------------
0 0 3 255
Hexadecimal:
000003ff
Relação entre priorização de subnet e round-robin
O comportamento final do DNS é:
- Prioriza IPs considerados locais
- Dentro do conjunto local, aplica round-robin
- Se não houver IP local:
- round-robin global
- ordem imprevisível
Por que ranges não sequenciais quebram essa lógica?
Se você usa subnets como:
10.0.10.0/2410.0.20.0/2410.0.30.0/24
👉 não existe máscara binária única que represente esse padrão, ou será necessário utilizar uma máscara excessivamente ampla, englobando endereços que não deveriam ser considerados locais.
Resultado:
- LocalNetPriority perde efeito
- DNS opera como round-robin puro
- comportamento imprevisível aparece
✅ Checklist de sintomas — diagnóstico rápido em produção
Use este checklist como confirmação prática do problema descrito até aqui.
- ☐ Logon de usuários demora mais em alguns dias do que em outros
- ☐
gpupdate /forcedemora sem motivo aparente - ☐
nltest /dsgetdcretorna DCs de outros sites - ☐ Aplicações funcionam localmente, mas falham aleatoriamente
- ☐ DFS Namespace aponta para servidores remotos
- ☐ Replicações parecem lentas sem erro claro
- ☐ Scripts e automações apresentam comportamento irregular
- ☐ Ferramentas administrativas conectam em DCs errados
- ☐ Firewalls precisam liberar tráfego excessivo entre sites
- ☐ Diagnóstico sempre começa com “mas o DNS responde…”
👉 Se parece aleatório, geralmente não é.
🧠 Conclusão
O planejamento de subnets em ambientes Windows não é apenas roteamento.
É comportamento interno do DNS, baseado em máscaras binárias, e não em lógica administrativa.
O maior erro em Active Directory não é criar algo que não funcione.
É criar algo que funcione sem previsibilidade.
O DNS do Windows Server:
- não entende intenção administrativa
- não considera “proximidade lógica”
- decide com base em subnet, máscara e priorização
Quando o planejamento de subnets é mal feito — especialmente com ranges não sequenciais — o DNS perde a capacidade de decidir corretamente quem está mais próximo, e o ambiente passa a depender de round-robin e sorte.
Arquitetura de Active Directory não é sobre fazer funcionar hoje.
É sobre garantir que continue previsível amanhã.
Planejar subnets corretamente e configurar a priorização de subnet no DNS não é otimização.
É fundação.
Subnet sequencial bem planejada + LocalNetPriority bem configurado = DNS previsível, rápido e escalável.
Ignorar isso é garantir:
- crescimento problemático
- troubleshooting complexo
- e incidentes difíceis de reproduzir.
Nota do autor
Este artigo nasceu a partir de problemas reais observados em ambientes de produção, ao longo de projetos envolvendo Active Directory distribuído, múltiplos sites e DNS do Windows Server.
A motivação principal foi documentar um comportamento pouco explorado na documentação oficial, mas que impacta diretamente latência, previsibilidade e escalabilidade de ambientes Windows: a priorização de subnet no DNS.
O objetivo aqui não é apenas ensinar uma configuração, mas explicar o raciocínio técnico por trás dela, para que arquitetos e administradores consigam planejar corretamente suas redes antes que o problema apareça.
Se este artigo evitar um único ambiente imprevisível no futuro, ele já cumpriu seu papel.