CNAMEレコードは2回目のDNSルックアップになりますか?


19

foo.bar.ccを指すCNAMEレコードを持つwww.foo.comというサブドメインがあるとします。Foo.bar.ccには、IPアドレス1.2.3.4を指すAレコードがあります。

ここで、www.foo.comのDNSルックアップを行うと、次のような回答が得られます。

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

私の質問は、foo.bar.ccはどの段階で解決されますか?応答がクライアントに返される前に、再帰DNSサーバーによって行われますか?または、クライアントは、今回はfoo.bar.ccに対してDNSサーバーに2番目の要求を発行しますか?または、DNSサーバーにfoo.bar.ccのキャッシュエントリが既にあるかどうかに依存しますか?

1つの特定の再帰DNSサーバーが最初の行のみを返すため、つまりCNAMEを解決しないためです。ただし、おそらく20秒後、同じホストに対する後続の要求には両方の行が含まれます。

回答:


16

2つのレコードは同じリクエストで一緒に返されます。次のコマンドで確認できます

dig +trace www.foo.com

たとえば、私のドメインphotoblog.comにはwwwのcnameがあるため、フォトブログのネームサーバーから私への最後の2つのリクエストは次のようになります。

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

ご覧のように、リクエストはns1 / ns2にwww.photoblog.comのIPを尋ねますが、それはphotoblog.comのcnameであり、ここにそのAレコードのIPがあります。


OPでCNAMEのみを返す例では、DNSサーバーはCNAMEを追跡するのが困難である可能性が高いため、クライアントに情報を提供しました。最終的に、CNAMEをフォローし終えたため、完全な返信をすることができました。
デビッドシュワルツ

ええ-DNSサーバーがより多くの情報を持っている場合、それADDITIONALは答えのセクションでそれを返します。それはそれは再帰関数は、そのキャッシュにそれを持っていなかったという意味では戻らない場面-潜在的にあるためCNAMEA、それは別の権威サーバを持っているポイントのレコード(再帰関数の最初の要求は、取得していないのでCNAME、プラス追加のA応答を、だけCNAME)。
シェーンマッデン

@マイク:だから結論は何ですか?CNAMEレコードは2回目のDNSルックアップになりますか?そうでない場合、多くの人がCNAMEレコードのTTLを増やすことを提案するのはなぜですか?
マルコデマイオ

10
限り、AレコードはCNAMEと同じ権限のあるサーバーにあるように、同じルックアップがあります
マイク・
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.