Eu tenho uma caixa Linux (Ubuntu server 11.10) dentro de um domínio do Windows Active Directory, e ingressou no domínio usando igualmente aberto . O arquivo resolv.conf
tem esta aparência:
domain mydomain.com
nameserver 192.168.1.1
nameserver 8.8.8.8
nameserver 8.8.4.4
onde 192.168.1.1
é o servidor DNS do Windows para o domínio do Windows. 8.8.8.8
e 8.8.4.4
são servidores DNS públicos do Google que preferimos em nossos servidores ISP.
Essa configuração estava funcionando corretamente, até que decidimos desativar a recursão no servidor DNS do Windows devido a algumas alterações de nosso projeto de rede. Eu pensei que iria bem como nós configuramos para usar os servidores do Google em seguida, mas não parece:
mydomain\myuser@linux-server:~$ dig google.com
; <<>> DiG 9.7.3 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55321
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 4
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;google.com. IN A
;; AUTHORITY SECTION:
. 3600 IN NS c.root-servers.net.
. 3600 IN NS d.root-servers.net.
. 3600 IN NS e.root-servers.net.
. 3600 IN NS f.root-servers.net.
. 3600 IN NS g.root-servers.net.
. 3600 IN NS h.root-servers.net.
. 3600 IN NS i.root-servers.net.
. 3600 IN NS j.root-servers.net.
. 3600 IN NS k.root-servers.net.
. 3600 IN NS l.root-servers.net.
. 3600 IN NS m.root-servers.net.
. 3600 IN NS a.root-servers.net.
. 3600 IN NS b.root-servers.net.
;; ADDITIONAL SECTION:
c.root-servers.net. 3600 IN A 192.33.4.12
d.root-servers.net. 3600 IN A 128.8.10.90
e.root-servers.net. 3600 IN A 192.203.230.10
f.root-servers.net. 3600 IN A 192.5.5.241
;; Query time: 4 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Wed Jan 8 14:02:22 2014
;; MSG SIZE rcvd: 507
Além disso:
mydomain\myuser@linux-server:~$ ping google.com
ping: unknown host google.com
E também falhei com conexões de proxy do squid (que resolvi usar a opção dns_nameservers dentro do squid configuração e negligenciada o servidor DNS interno).
Por que as solicitações de DNS falham quando a recursão é recusada pelo primeiro servidor de nomes? A máquina não deve tentar o próximo servidor? E o que posso fazer se esse foi o comportamento esperado (planejado)?
EDITAR: o NSLOOKUP deu outros resultados (de sucesso):
mydomain\myuser@linux-server:~$ nslookup google.com
;; Got recursion not available from 192.168.1.1, trying next server
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: google.com
Address: 173.194.67.102
Name: google.com
Address: 173.194.67.138
Name: google.com
Address: 173.194.67.100
Name: google.com
Address: 173.194.67.113
Name: google.com
Address: 173.194.67.139
Name: google.com
Address: 173.194.67.101
Então, isso depende da aplicação? Posso obter isso (tentando próximo servidor se o primeiro recusa a recursão) para trabalhar de forma transparente para todos os aplicativos que solicitam a resolução de nomes, ou a resolução de nomes é de responsabilidade do próprio programa? (ou estou faltando alguma coisa ?!) ...
EDIT: Também vale a pena notar, mydomain.com
é um endereço registrado e público na internet e não é de nossa propriedade. É como se tivéssemos criado um domínio interno chamado apple.com
, e garanto que não trabalho para a Apple, pelo menos não ainda; -).