Esta manhã, descobrimos que (devido a uma mudança) um dos nossos registros de DNS para um serviço importante está errado. Ele foi alterado em nosso servidor DNS primário, mas os clientes em sites secundários não vêem a alteração. (Nossa rede está funcionando quase inteiramente com os clientes OS X 10.5 e OS X 10.5).
Deixe-me nomear algumas máquinas para fins de exemplo:
- primary = o servidor DNS primário
- secundário = um servidor DNS secundário
- client = um cliente em um site secundário
- service.ourdomain.com = o serviço cujos registros DNS foram alterados
No cliente, (que faz pesquisas de DNS através do secundário), ao verificar como as coisas estão configuradas, eu recebo:
nslookup service.ourdomain.com
** server can't find service.ourdomain.com: NXDOMAIN
nslookup service.ourdomain.com secondary
** server can't find service.ourdomain.com: NXDOMAIN
nslookup service.ourdomain.com primary
(returns appropriate information about how to contact the service)
Quando eu ssh em
- secundário, que faz suas pesquisas de DNS por meio do principal
- ou o próprio primário, que faz pesquisas de DNS de si mesmo
Eu recebo:
nslookup service.ourdomain.com
(returns appropriate information about how to contact the service)
nslookup service.ourdomain.com secondary
** server can't find service.ourdomain.com: NXDOMAIN
nslookup service.ourdomain.com primary
(returns appropriate information about how to contact the service)
Estou perplexo. Secundário parece saber onde o serviço está, mas não retorna os valores quando consultados. (Concedido, as entradas de DNS podem ser totalmente independentes ou o que ele retorna quando consultado para um nome de domínio, mas ainda assim - parece que ele deve saber!)
Eu tentei liberar o DNS no secundário e no cliente. (%código%). Eu também parei e reiniciei o DNS no secundário. ( dscacheutil -flushcache
e sudo serveradmin stop dns
)
Em nosso site principal, meu colega de trabalho reinicializou a primária e um cliente lá para que o nome fosse resolvido corretamente. Infelizmente, temos 14 sites secundários e preferimos não reinicializar os servidores, que estão compartilhando arquivos, durante o dia, se possível, mas faremos isso se resolver o problema.
por pedido:
host -C ourdomain.com # [with names substituted]:
ourdomain.com SOA record primary.ourdomain.com. admin.ourdomain.com. 2009121410 21600 3600 604800 345600
[Não tenho ideia do que é admin.ourdomain.com - não creio que tenhamos uma caixa com esse nome; Eu com certeza não posso fazer ping. O servidor DNS primário é exibido corretamente.]
Também por solicitação, aqui está a saída de sudo serveradmin start dns
(com substituições de nome):
; <<>> DiG 9.4.3-P1 <<>> service.ourdomain.com @secondary
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 19207
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;service.ourdomain.com. IN A
;; AUTHORITY SECTION:
ourdomain.com. 10800 IN SOA primary.ourdomain.com. admin.ourdomain.com. 2009121409 21600 3600 604800 345600
;; Query time: 3 msec
;; SERVER: [IP of secondary]#53([IP of secondary])
;; WHEN: Mon Dec 14 10:34:11 2009
;; MSG SIZE rcvd: 88
E a saída de dig service.ourdomain.com @secondary
:
; <<>> DiG 9.4.3-P1 <<>> service.ourdomain.com @primary
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47885
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;service.ourdomain.com. IN A
;; ANSWER SECTION:
service.ourdomain.com. 10800 IN A [IP of service]
;; AUTHORITY SECTION:
ourdomain.com. 10800 IN NS primary.ourdomain.com.
;; ADDITIONAL SECTION:
primary.ourdomain.com. 10800 IN A [IP of primary]
;; Query time: 8 msec
;; SERVER: [IP of primary]#53([IP of primary])
;; WHEN: Mon Dec 14 10:34:18 2009
;; MSG SIZE rcvd: 92
As diferenças mais marcantes são que o secundário não respondeu com uma resposta, e que o primário disse: ";; AVISO: recursão solicitada mas não disponível".