CNAMEからCNAMEへのチェーンは許可されていますか?


68

DNSで、別のCNAMEレコードを指すCNAMEレコードを持つことは許可されていますか?

これが必要な理由は、WebサーバーコンピューターのIPアドレスを検索するホスト名があるためです。また、別のWebサーバーコンピューターがあり、最初のコンピューターが死んだ場合にアクティブ化できます。そのような場合は、ホスト名をスタンバイWebサーバーコンピューターのIPアドレスにすばやくポイントする必要があります。

残念ながら、ホスト名は、他のシステム管理者に依存する手動操作のために変更に時間がかかるDNSドメインに存在します。しかし、変更をすばやく実行できる別のDNSドメインがあります。CNAMEからCNAMEチェーンを持つことは、可能な解決策のようです。しかし、許可されていますか?Webブラウザーはそれを理解しますか?

回答:


81

RFC 1034 -ドメイン名-概念と施設

別の名前を指すRRのドメイン名は、エイリアスではなく常にプライマリ名を指す必要があります。これにより、情報にアクセスする際の余分な間接化が回避されます。たとえば、上記のホストのRRを指定するアドレスは次のようになります。

52.0.0.10.IN-ADDR.ARPA  IN      PTR     C.ISI.EDU

USC-ISIC.ARPAを指すのではなく。もちろん、堅牢性の原則により、ドメインソフトウェアはCNAMEチェーンまたはループが提示されても失敗することはありません。CNAMEチェーンに従う必要があり、CNAMEループはエラーとして通知されます。

はい、それは許可されており、適切に書かれたソフトウェアがそれをうまく処理します。ただし、CNAMEチェーンはグッドプラクティスとは見なされず、インフラストラクチャにオーバーヘッドがかかります。


3
RFC参照用に+1
Alnitak

16
私は常にこれを行いますが、上記の引用は文脈から外れています。ただ、この段落の上にそれは...読みDomain names in RRs which point at another name should always point at the primary name and not the alias. This avoids extra indirections in accessing information.
Molomby

3
Microsoft Azureのネットワーク担当者が言及したように、CNAMEチェーンは、AnyCastのロードバランシングを行うために重要です。
ポール・ラン

26

もちろん、可能です。

ただし、より多くのDNSリソースを使用するという明らかな理由により、一般的には推奨されません。例えば:

foo   IN      CNAME  someserver.somehost.com.
bar   IN      CNAME  foo

「bar」をfoo照会すると、CNAME が照会され、その後someserver.somehost.com.照会されるため、1つの余分な照会が発生します。

追加するチェーン内のすべての要素について、別のクエリが必要になります。

これが推奨されないもう1つの理由は、このようなチェーンを作成することにより、何らかの方法でCNAMEループを作成する可能性が高まることです。これらは現在のDNSサーバーによって自動的に検出されますが、それでもサーバーに大きな負荷がかかります。


5

はい、許可されており、機能しますが、グッドプラクティスとは見なされません。複数のルックアップはより多くのリソースを使用するため、誤ってループを作成するリスクがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.