web-dev-qa-db-ja.com

DNSキャッシングを無効にする方法または特定のホスト名のTTL=

スクリプトを使用して、自分のいずれかのドメインのサブドメインのAレコードを自動的に更新することにより、独自の動的DNSサービスをセットアップしました。
動的IPアドレスを持つホストは、特に、リモートで5分間隔で読み取っているMuninノードを実行します。
残念ながら、私のドメイン名登録事業者はTTL値が3600未満の場合は許可しないため、リモートMuninノードのIPは1時間キャッシュされ、最大でノードの動的IPが変更されるたびに1時間と述べた。

レジストラのDNSサーバーによって報告されたTTL=を上書きして、Muninノードに接続するたびにサーバーがIPを解決するようにする方法はありますか?

5
n.st

使用しているダイナミックDNSサービスが3600のTTLしか許可しない場合、唯一の選択肢はプロバイダーを切り替えることです。 TTLを制御する方法は、DDNSサービスプロバイダーが制御するオプションを提供しない限り、実際にはありません。

TTLの確認

ちなみに、特定のエントリのTTLが何であるかを確認するには、次のスイッチでDigを使用できます。

$ Dig +nocmd www.google.com +noall +answer | tail -1
www.google.com.     137 IN  A   74.125.225.82

$ Dig +nocmd www.google.com +noall +answer | tail -1
www.google.com.     135 IN  A   74.125.225.115

したがって、TTLは137秒です。〜2秒待ってから再度実行すると、135秒と表示されます。TTLは、 DNSエントリの有効期限が切れ、ドメインの権限のあるサーバーにクエリを送信する必要があります。

最大TTLの確認

権限のあるサーバーにクエリを実行する場合。

$ Dig @ns1.google.com +nocmd www.google.com +noall +answer | tail -1
www.google.com.     300 IN  A   74.125.225.210

したがって、このエントリの実際のTTLは300秒です。

注:権限のあるサーバーは SOA-Start of Authority とも呼ばれます。

SOA情報

ドメインにさらにSOA情報を問い合わせることができます。

$ Dig +nocmd dyndns.org any +multiline +noall +answer
dyndns.org.     596 IN SOA ns1.dyndns.org. hostmaster.dyndns.org. (
                863998266  ; serial
                600        ; refresh (10 minutes)
                300        ; retry (5 minutes)
                604800     ; expire (1 week)
                600        ; minimum (10 minutes)
                )
dyndns.org.     85904 IN NS ns5.dyndns.org.
dyndns.org.     85904 IN NS ns1.dyndns.org.
dyndns.org.     85904 IN NS ns2.dyndns.org.
dyndns.org.     85904 IN NS ns3.dyndns.org.
dyndns.org.     85904 IN NS ns4.dyndns.org.
dyndns.org.     12268 IN MX 10 mail.dyndns.com.
dyndns.org.     12268 IN MX 20 mx2.mailhop.org.
dyndns.org.     179 IN A 204.13.248.116

TTLの変更

DNSエントリのTTL(レジストラが提供するある種のAPI以外の)を変更する)唯一の方法は、サーバーを使用することです。

Bind 内で、ゾーンファイルを次のように設定できます。

;Zone file for liquidweb.com
$TTL 14400
@      86400    IN      SOA     ns.liquidweb.com. admin.liquidweb.com. (
2009022402      ; serial, todays date+todays
86400           ; refresh, seconds
7200            ; retry, seconds
3600000         ; expire, seconds
86400 )         ; minimum, seconds
liquidweb.com. 86400 IN NS   ns.liquidweb.com.
liquidweb.com. 86400 IN NS   ns1.liquidweb.com.
liquidweb.com.  IN A   209.59.139.21
localhost  IN A   127.0.0.1
liquidweb.com.  IN MX 0   liquidweb.com.
mail  IN CNAME  liquidweb.com.
www  IN CNAME   liquidweb.com.
ftp  IN A   209.59.139.21
cpanel  IN A   209.59.139.21
webmail  IN A   209.59.139.21

上記のマクロ、$ TTLは、特定のエントリに対してオーバーライドされない限り、すべてのエントリに対してTTLを14400秒に設定します。

参考文献

5
slm

Muninホストを外部ドメインの CNAME として作成できるので、munin名のみが動的DNSホストを使用します。

munin.yourdomain.com. CNAME somedynamic.dyndns.org.

したがって、ルックアップは実際にsomedynamic.dyndns.orgは動的TTLが低く、残りのyourdomain.comはDNSに残ります。

1
Matt

DNSを更新できない場合は、DynDNS.orgなどの別のDNSを使用して、標準の更新スクリプトを使用できます。

0
user55518