Os registros CNAME resultam em uma segunda pesquisa de DNS?

17

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

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

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

A minha pergunta é, em que fase o foo.bar.cc é resolvido? Isso é feito pelo servidor DNS recursivo antes que a resposta seja enviada de volta ao cliente? Ou o cliente emite um segundo pedido para o servidor DNS, desta vez para foo.bar.cc? Ou depende se o servidor DNS já tem uma entrada em cache para foo.bar.cc?

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

    
por Martin 21.08.2012 / 14:25

1 resposta

16

Os dois 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 nome para www, então as duas últimas solicitações do servidor de nomes do photoblog para mim 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 o pedido pergunta ns1 / ns2 qual é o ip para www.photoblog.com e ele retorna bem é um cname para photoblog.com e aqui está o ip para aquele registro.

    
por 21.08.2012 / 14:35