web-dev-qa-db-ja.com

サブドメインの制御を委任するためのNSレコードとCNAMEレコードの実装の違い

DNSを使用してwww.example.com(ただしexample.comではない)の宛先IPアドレスを制御したいのですが、親ドメイン自体を直接制御できないため、可能な限りこのサブドメインTTLを最大限に制御します。私は使用できる2つのメカニズムを知っています:

  1. ネームサーバーにwww.example.comのゾーンを設定し、example.comのネームサーバーにwww.example.comのNSレコードを設定させることができます。
  2. CNAMEを使用してwww.example.comexample.mydomain.comにポイントし、example.mydomain.comを制御できます。 NSレコードを使用した委任は、私が頻繁に使用するサークルではあまり一般的ではないため、これはリモートパーティが設定するのがおそらく簡単です。

私が少し漠然としているのは、ttlメカニズムの微妙さです。特にキャッシングに関してです。 CNAMEを使用する場合、実際のTTLは、www.example.comレコードのTTLとexample.mydomain.comのTTLの両方によって制御されますか、または(CNAMEレコードを提供)変更されません)、これはexample.mydomain.comのAレコードにのみ関連付けられていますか。

同様に、NSエントリを使用する場合、(ネームサーバーが変更されない場合)、www.example.comの解像度を変更するためのTTLはによって制御されると言っても過言ではありません。 www.example.comレコードのTTLで、NSレコードのTTLについて心配する必要はありませんか?

4
davidgo

レコードのTTLは、そのレコードとそのレコードのみに適用され、任意のネームサーバー/キャッシングリゾルバーのキャッシュに入ると期限切れになります。

多くの(ほとんど?)キャッシングネームサーバー(つまり、エンドクライアントによって使用されるキャッシングリゾルバー)は、より低い値でフェッチされるすべてのレコードに最低300秒TTLを置くことに注意してください。また、クライアントと権限のあるネームサーバーの間に複数のキャッシュネームサーバーが存在する可能性があることにも注意してください。

おそらく、CNAME(またはNS、MXなど)レコードでは比較的長いTTLが必要であり、Aレコードでははるかに短いTTL(たとえば、300秒程度)が必要です。

誰かにホスト名(例:www.example.com)を委任して、最終的なAレコードを制御できるようにする最も簡単な方法は、もちろんCNAMEを使用することですが、もちろん、そのようなホスト名はサブドメイン名である必要があることに注意してください。もちろん、CNAMEは同じノードの他のレコードと一緒に存在しない可能性があるため、ゾーンカットに配置することはできません。

たとえば、親ドメインネームサーバーでは次のようになります。

$Origin example.com.
www  1w  IN  CNAME  foo.mydomain.example.

次に、ネームサーバーで:

$Origin mydomain.example.
foo  1h  IN  A  192.168.0.1
1
Greg A. Woods