O problema (como problemhsot nos comentários) acaba sendo o gateway de VPN que estava interceptando as consultas DNS.
Descobrimos que a VPN está configurada para redirecionar todas as pesquisas de nomes para um servidor diferente. Portanto, o problema não é o DNS do Windows, mas o gateway VPN.
Eu tenho uma rede remota 10.12.0.0/16 com um controlador de domínio do Windows (SBS 2011) e um gateway VPN. Alguns PCs Windows (nenhum membro do domínio) usa uma VPN l2tp para se conectar ao SBS. Obtém um IP virtual em 10.14.0.0/24. O gateway da VPN é o gateway padrão do SBS e as rotas entre as duas redes. O SBS e o cliente podem efetuar ping uns aos outros.
O Controlador de Domínio possui o domínio do Active Directory company.local
. Se eu nslookup-lo no SBS, é resolvido corretamente para o IP do SBS. Uma consulta do gateway VPN também funciona. Mas um nslookup company.local 10.12.0.5
(mais tarde é o IP do SBS) do cliente responderá que o domínio não foi encontrado. Através do tcpdump no gateway da VPN, posso ver que o SBS realmente retorna NXDOMAIN 0/0/0
.
Como você já deve ter adivinhado, o objetivo é ingressar no domínio com o computador conectado VPN.
Por que o servidor DNS não retorna o registro correto? Minha única ideia é que a consulta vem de uma rede privada desconhecida.
Consulta completa do computador cliente:
C:\Users\abc>nslookup -debug company.local 10.12.0.5
------------
Got answer:
HEADER:
opcode = QUERY, id = 1, rcode = NOERROR
header flags: response, auth. answer, want recursion, recursion avail.
questions = 1, answers = 1, authority records = 0, additional = 0
QUESTIONS:
5.0.12.10.in-addr.arpa, type = PTR, class = IN
ANSWERS:
-> 5.0.12.10.in-addr.arpa
name = xyz.cloud.internal
ttl = 0 (0 secs)
------------
Server: xyz.cloud.internal
Address: 10.12.0.5
------------
Got answer:
HEADER:
opcode = QUERY, id = 2, rcode = NXDOMAIN
header flags: response, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
company.local, type = A, class = IN
------------
------------
Got answer:
HEADER:
opcode = QUERY, id = 3, rcode = NXDOMAIN
header flags: response, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
company.local, type = AAAA, class = IN
------------
------------
Got answer:
HEADER:
opcode = QUERY, id = 4, rcode = NXDOMAIN
header flags: response, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
company.local, type = A, class = IN
------------
------------
Got answer:
HEADER:
opcode = QUERY, id = 5, rcode = NXDOMAIN
header flags: response, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
company.local, type = AAAA, class = IN
------------
*** xyz.cloud.internal can't find company.local: Non-existent domain
C:\Users\abc>nslookup -debug _ldap._tcp.dc._msdcs.company.local.
------------
Got answer:
HEADER:
opcode = QUERY, id = 1, rcode = NOERROR
header flags: response, auth. answer, want recursion, recursion avail.
questions = 1, answers = 1, authority records = 0, additional = 0
QUESTIONS:
5.0.12.10.in-addr.arpa, type = PTR, class = IN
ANSWERS:
-> 5.0.12.10.in-addr.arpa
name = xyz.cloud.internal
ttl = 0 (0 secs)
------------
Server: xyz.cloud.internal
Address: 10.12.0.5
------------
Got answer:
HEADER:
opcode = QUERY, id = 2, rcode = NXDOMAIN
header flags: response, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
_ldap._tcp.dc._msdcs.company.local, type = A, class = IN
------------
------------
Got answer:
HEADER:
opcode = QUERY, id = 3, rcode = NXDOMAIN
header flags: response, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 1, additional = 0
QUESTIONS:
_ldap._tcp.dc._msdcs.company.local, type = AAAA, class = IN
AUTHORITY RECORDS:
-> (root)
ttl = 10789 (2 hours 59 mins 49 secs)
primary name server = a.root-servers.net
responsible mail addr = nstld.verisign-grs.com
serial = 2013011600
refresh = 1800 (30 mins)
retry = 900 (15 mins)
expire = 604800 (7 days)
default TTL = 86400 (1 day)
------------
*** xyz.cloud.internal can't find _ldap._tcp.dc._msdcs.company.local.: Non-existent domain