web-dev-qa-db-ja.com

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

DNSで、別のCNAMEレコードを指すCNAMEレコードを持つことはできますか?

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

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

72
Erik Sjölund

From RFC 1034-ドメイン名-概念と機能

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

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

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

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

84
Paweł Brodacki

確かに、それは可能です。

それは一般的にdiscouragedですが、より多くのDNSリソースを使用する明白な理由があります。例えば:

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

「bar」を照会すると、CNAME fooが照会され、次にsomeserver.somehost.com.が照会され、結果として1つの追加のクエリが発生します。

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

別の理由これはお勧めできません。これは、このようなチェーンを作成することによって、何らかの方法で作成される可能性が高くなるためですCNAMEループこれらは現在のDNSサーバーによって自動的に検出されますが、サーバーに大きな負荷がかかります。

26
Aron Rotteveel

はい、それは許可され、機能しますが、良い習慣とは見なされていません。複数のルックアップはより多くのリソースを使用し、誤ってループを作成するリスクがあります。

5
Mike Scott