Eu tenho um problema ao emitir consultas para um DNS e não tenho certeza de onde procurar a causa subjacente.
Eu tenho um registro "www.alumninews.uottawa.ca", que é um registro CNAME que aponta para um registro A de "uottawa.mailoutinteractive.com", que eu hospedo. Quando eu consultar os servidores DNS do meu provedor, recebo respostas diferentes:
O primeiro não recorre
$ dig +recurse www.alumninews.uottawa.ca @64.59.184.13
; <<>> DiG 9.8.1-P1 <<>> +recurse www.alumninews.uottawa.ca @64.59.184.13
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 13260
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.alumninews.uottawa.ca. IN A
;; ANSWER SECTION:
www.alumninews.uottawa.ca. 3600 IN CNAME uottawa.mailoutinteractive.com.
;; Query time: 139 msec
;; SERVER: 64.59.184.13#53(64.59.184.13)
;; WHEN: Wed Apr 3 11:33:55 2013
;; MSG SIZE rcvd: 87
Observe que o CNAME não foi resolvido (mais sobre isso abaixo).
O segundo resolve o CNAME corretamente (note que o TTL agora é 3532, não o padrão 3600 acima):
$ dig +recurse www.alumninews.uottawa.ca @64.59.184.13
; <<>> DiG 9.8.1-P1 <<>> +recurse www.alumninews.uottawa.ca @64.59.184.13
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16716
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.alumninews.uottawa.ca. IN A
;; ANSWER SECTION:
www.alumninews.uottawa.ca. 3532 IN CNAME uottawa.mailoutinteractive.com.
uottawa.mailoutinteractive.com. 300 IN A 209.15.195.166
;; Query time: 30 msec
;; SERVER: 64.59.184.13#53(64.59.184.13)
;; WHEN: Wed Apr 3 11:35:03 2013
;; MSG SIZE rcvd: 103
Além disso, quando eu capturar o tráfego de rede com o wireshark, vejo que o erro ao pesquisar uottawa.mailoutinteractive.com é "Código de resposta: Nenhum nome (3)" na recursão com falha:
Domain Name System (response)
[Request In: 3993]
[Time: 0.057954000 seconds]
Transaction ID: 0xf07c
Flags: 0x8183 Standard query response, No such name
1... .... .... .... = Response: Message is a response
.000 0... .... .... = Opcode: Standard query (0)
.... .0.. .... .... = Authoritative: Server is not an authority for domain
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query recursively
.... .... 1... .... = Recursion available: Server can do recursive queries
.... .... .0.. .... = Z: reserved (0)
.... .... ..0. .... = Answer authenticated: Answer/authority portion was not authenticated by the server
.... .... ...0 .... = Non-authenticated data: Unacceptable
.... .... .... 0011 = Reply code: No such name (3)
Questions: 1
Answer RRs: 1
Authority RRs: 0
Additional RRs: 0
Queries
www.alumninews.uottawa.ca: type A, class IN
Name: www.alumninews.uottawa.ca
Type: A (Host address)
Class: IN (0x0001)
Answers
www.alumninews.uottawa.ca: type CNAME, class IN, cname uottawa.mailoutinteractive.com
Name: www.alumninews.uottawa.ca
Type: CNAME (Canonical name for an alias)
Class: IN (0x0001)
Time to live: 1 hour
Data length: 32
Primaryname: uottawa.mailoutinteractive.com
Uma pesquisa bem-sucedida se parece com isso no Wireshark (este é um domínio diferente com o mesmo problema):
Domain Name System (response)
[Request In: 70]
[Time: 0.051422000 seconds]
Transaction ID: 0x417d
Flags: 0x8180 Standard query response, No error
1... .... .... .... = Response: Message is a response
.000 0... .... .... = Opcode: Standard query (0)
.... .0.. .... .... = Authoritative: Server is not an authority for domain
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query recursively
.... .... 1... .... = Recursion available: Server can do recursive queries
.... .... .0.. .... = Z: reserved (0)
.... .... ..0. .... = Answer authenticated: Answer/authority portion was not authenticated by the server
.... .... ...0 .... = Non-authenticated data: Unacceptable
.... .... .... 0000 = Reply code: No error (0)
Questions: 1
Answer RRs: 2
Authority RRs: 0
Additional RRs: 0
Queries
www.bulletinsanciens.uottawa.ca: type A, class IN
Name: www.bulletinsanciens.uottawa.ca
Type: A (Host address)
Class: IN (0x0001)
Answers
www.bulletinsanciens.uottawa.ca: type CNAME, class IN, cname uottawa.mailoutinteractive.com
Name: www.bulletinsanciens.uottawa.ca
Type: CNAME (Canonical name for an alias)
Class: IN (0x0001)
Time to live: 41 minutes, 26 seconds
Data length: 32
Primaryname: uottawa.mailoutinteractive.com
uottawa.mailoutinteractive.com: type A, class IN, addr 209.15.195.166
Name: uottawa.mailoutinteractive.com
Type: A (Host address)
Class: IN (0x0001)
Time to live: 5 minutes
Data length: 4
Addr: 209.15.195.166 (209.15.195.166)
Os servidores DNS do Uottawa estão configurados para não retornar informações de consulta recursivas, portanto, meu entendimento é que meu ISP fará uma segunda consulta para resolver o CNAME. Mas eu não sei porque está falhando uma vez e depois conseguindo uma segunda vez. parece para mim ser um problema entre nosso ISP (Shaw) e Route53, onde meu DNS está hospedado.
Eu também noto que muitas vezes continua a falhar - eu posso continuar a executar o comando de digitação com falha por um bom tempo antes que ele tenha sucesso novamente.
Eu cheguei até aqui, mas não sei como depurar isso ainda mais. Alguma ideia de onde isso está falhando?