web-dev-qa-db-ja.com

CNAMEレコードのTTLはどういう意味ですか?

ネットワークに含まれているサーバーの数が原因で、すべてのサーバーを整理するのに苦労しています。それらのいくつかは静的IPを持っていないので、config.mydomain.comドメインを作成するといいかもしれないと思いました。このドメインでは、各サーバーのAレコードとIPを保存できます。これは私がそれを設定した方法です:

s1.config.mydomain.com.     A   10.0.0.1    #ttl 60
s2.config.mydomain.com.     A   10.0.0.2    #ttl 60
s3.config.mydomain.com.     A   10.0.0.3    #ttl 60
# etc

これらの各レコードのTTL= 60です。IPをすばやく変更する必要がある場合に備えて、クライアントが60秒ごとに接続して更新する必要は必ずしもありません。ここで、次のようにそれらを使用するドメイン:

mydomain.com.           CNAME   s2.config.mydomain.com.   #ttl 3600
mail.mydomain.com.      CNAME   s2.config.mydomain.com.   #ttl 10800
svn.mydomain.com.       CNAME   ns1.config.mydomain.com.  #ttl 21600

CNAMESのTTLの方が高いので、mydomain.comにアクセスするとします。 DNSサーバーにmydomain.comのIPを要求し、サーバーはCNAME s2.config.mydomain.com.を返します。次に、サーバーにs2.config.mydomain.comのIPを要求し、サーバーは10.0.0.1を返します。

CNAME s2.config.mydomain.comレコードを3600秒間キャッシュし、A 10.0.0.1レコードを60秒間キャッシュしますか? 60秒ごとにサーバーにIPアドレスを要求するという意味ですか?

または、ビューCNAME s2.config.mydomain.comをキャッシュし、A 10.0.0.1を取得して、両方を3600秒間キャッシュします。

それが最初のものである場合、おそらくそれらを管理する別の方法を見つける必要があるので、それが2番目であることを願っていますが、よくわかりません。それらを追跡するためのより良い方法を知っていますか?

22
Ryan Pendleton

ISCのこのメッセージ メーリングリストによると、CNAMEとそれが指すレコードはネームサーバーを解決することによってキャッシュされます(sane resolving name servers)これは、リゾルバーがクライアント側の解決/キャッシングプロセスを最適化できるようにするために行われます。

したがって、CNAME TTLは有効であるが、それが指すAが無効である場合、元のCNAMEではなく(CNAME TTLまで、参照されたレコードまでルックアップを繰り返すだけです。 _もアップしています)。

10
coredump

すべてのCNAMEレコードは、最大3600、10800、21600秒間キャッシュされます。

Aレコードは個別に処理され、60秒ごとに再度照会されます。

ただし、CNAMEの有効期限が切れた場合は、Aレコードも同時に更新する必要があります。

CNAMEレコードには、RFC 1912で説明されているさまざまな落とし穴があります。mydomain.com。 SOAおよびNSレコードが使用されているため、com。ドメインの委任であるため、CNAMEにすることはできません。

あなたの質問は古いです。今日、一部のDNSプロバイダーは、ユーザーがCNAMEをSOA(彼らはAPEXドメインと呼ぶ)に置くことを許可しているため、RFCに従っていません。)繰り返しますが、自己責任で使用してください。

最後に重要なことですが、CNAMEにTTL=の値を高く設定すると、クライアントがIPv6レコードを要求するときに役立ちます:AAAA。少なくともCNAMEマッピングはキャッシュに残り、IPアドレスのみ2回尋ねられます。

つまり、CNAMEにTTL=を高く設定すると、クライアントから見た応答のサイズが小さくなります。これは、リゾルバサーバーにも役立ちます。ただし、1秒あたりのリクエスト数はほぼ同じである必要があります。 。

3
Xavier Nicollet