Os registros CNAME resultam em uma segunda pesquisa de DNS?

19

Digamos que temos um subdomínio chamado www.foo.com que possui um registro CNAME apontando para foo.bar.cc. O Foo.bar.cc, por sua vez, possui um registro A apontando para o endereço IP 1.2.3.4.

Agora, se eu fizer uma pesquisa de DNS no site www.foo.com, receberei uma resposta assim:

www.foo.com. IN CNAME foo.bar.cc.
foo.bar.cc. IN A 1.2.3.4

Minha pergunta é: em que estágio o foo.bar.cc está resolvido? Isso é feito pelo servidor DNS recursivo antes que a resposta seja enviada de volta ao cliente? Ou o cliente emite uma segunda solicitação ao servidor DNS, desta vez para foo.bar.cc? Ou isso depende se o servidor DNS já possui uma entrada em cache para foo.bar.cc?

Estou perguntando porque um servidor DNS recursivo específico retorna apenas a primeira linha, ou seja, não resolve o CNAME. No entanto, após talvez 20 segundos, solicitações subsequentes para o mesmo host incluirão as duas linhas.

Martin
fonte

Respostas:

16

Os 2 registros são retornados juntos na mesma solicitação. Você pode descobrir isso através do seguinte comando

dig +trace www.foo.com

Por exemplo, meu domínio photoblog.com tem um cname para www, portanto, as duas últimas solicitações do servidor de nomes do photoblog me parecem

photoblog.com.      172800  IN  NS  ns1.photoblog.com.
photoblog.com.      172800  IN  NS  ns2.photoblog.com.
;; Received 103 bytes from 192.43.172.30#53(i.gtld-servers.net) in 196 ms

www.photoblog.com.  600 IN  CNAME   photoblog.com.
photoblog.com.      600 IN  A   74.52.128.18
photoblog.com.      60  IN  NS  ns2.photoblog.com.
photoblog.com.      60  IN  NS  ns1.photoblog.com.
;; Received 133 bytes from 74.52.128.18#53(ns2.photoblog.com) in 59 ms

Como você pode ver, a solicitação pergunta ao ns1 / ns2 qual é o ip para www.photoblog.com e ele retorna bem, é um cname para photoblog.com e aqui está o ip para esse registro A.

Mike
fonte
Nos OPs, seu exemplo em que ele retornou apenas o CNAME, o servidor DNS provavelmente teve dificuldade em segui-lo e, portanto, deu ao cliente todas as informações que ele possuía. Eventualmente, ele terminou de seguir o CNAME e, portanto, foi capaz de dar uma resposta completa.
David Schwartz
Sim - se o servidor DNS tiver mais informações, ele será devolvido na ADDITIONALseção da resposta. As ocasiões em que não retorna, significa que o recursor não o tinha em cache - potencialmente porque CNAMEo Aregistro indica que ele possui servidores autoritativos diferentes (para que a solicitação inicial do recursor não tenha recebido a resposta CNAMEadicional A, apenas o CNAME).
Shane Madden
@ Mike: então, qual é a conclusão? Os registros CNAME resultam em uma segunda pesquisa de DNS ou não? Caso contrário, por que muitos sugerem aumentar o TTL do registro CNAME?
Marco Demaio
10
enquanto o registro Um está no mesmo servidor autoritário como o CNAME é a mesma pesquisa
Mike