1つの名前に複数のCNAMEを使用できますか?


43

負荷分散のためにこれが必要です。たとえば、私は2つのAzureストレージアカウント(と言ってきたaし、bそれらのため)とブロブアドレスをしているa.blob.core.windows.netb.blob.core.windows.net。両方とも同一のデータを保存します。次にexample.com、両方のストレージアカウントを指し、ラウンドロビンで動作する単一の外部名(たとえば)を提供する必要があります。これは、次のようにDNSに2つのCNAMEエントリを作成し、ラウンドロビングでそれらの1つに解決する場合に実現できます。

  1. example.com CNAME a.blob.core.windows.net
  2. example.com CNAME b.blob.core.windows.net

しかし、Windows DNSサーバーで単一の名前に対して2つのCNAMEレコードを作成することはできません。

だからそれは可能ですか?


確認することはできませんが、CNAMESでこれを実行できるとは思いません。代わりにAレコードをお試しください。
ダン14

1
@Dan問題は、AWS Elastic Load Balancerのような固定IPを持たないサービスになります。core.windows.netAzureなどで同様の状況が疑われることを考えると。
ceejayoz

しかし、Aレコードでは、IPアドレスを正しく指定する必要がありますか?IPアドレスよりもDNS名の方が好きです。
ラグラムマーシーP 14

なんでそんなことしたいの?Azure BLOBストレージは、高可用性と地理的冗長性のために既にセットアップされています。
JTKH

@JTKHは、BLOBのダウンロード制限が65MB /秒程度であり、さらにダウンロード制限が必要な場合は、複数のBLOBを使用することを考えていたためです。
ラグフラムマーシーP

回答:


58

同じ完全修飾ドメイン名の複数のCNAMEレコードは、DNSの仕様に違反しています。BINDの一部のバージョンではこれを行うことができ(multiple-cnames yesオプションを指定した場合のみ)、その間で負荷分散をラウンドロビンしますが、技術的には合法ではありません。

CNAMEと同じ名前のリソースレコード(RR)が存在することは想定されておらず、複数の同一のCNAMEが含まれます。RFC 1034のセクション3.6.2:

CNAME RRがノードに存在する場合、他のデータは存在しないはずです。これにより、正規名とそのエイリアスのデータが異なることはありません。また、このルールは、他のRRタイプについて権限のあるサーバーで確認することなく、キャッシュされたCNAMEを使用できることを保証します。

あなたがしていることを処理するためのRFC方式は、負荷分散された「A」レコードを参照する単一のCNAMEを使用する方法です。


詳細については、docstore.mik.ua / orelly / networking_2ndEd / dns /…を参照してください。
wedi

11

できません。CNAMEは、あるレコードを別のレコードの別の名前にします。レコードに2つの名前のCNAMEが含まれる場合、どちらの名前にも別の名前ではなく、まったく新しい名前になり、CNAMEエントリが不適切になります。

ただし、外部の問題を解決する良い方法はおそらくあります。たとえば、複数のAレコードを持つことができます。


Webサイトに対して1つのCNameと1つのAレコードを同時に使用できますか?
amesh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.