tech memo

調べたこと、試したことの覚書です

PowerDNS ALIASレコード / TTL の 挙動確認

はじめに

先日、DNS ANAMEレコード / PowerDNS ALIASレコードについて下記の記事を投稿しました。本記事内で一部は専門用語などで記述していますが、それらの専門用語の説明は下記の記事にて確認していただけます。

本記事においては PowerDNS ALIASレコード の TTLについての挙動確認を記録しています。

 

ANAMEレコード の TTLについての 仕様確認

Internet Draft にて「Address-specific DNS aliases (ANAME)」として仕様提案されている TTL周りの仕様を、現時点での最新である draft-03 にて確認しました。

【5.3. TTLs】にて記述されている仕様は下記の内容でした。

  • Sibling Address Record は、固定TTLを持つ権威サーバから提供される。
  • 通常 Sibling Address RecordTTLは、Target Address Record TTL (Target Address RecordのTTLが ANAMEのTTLより小さい場合は、ANAME の TTL)と同じであると予想される。
  • ただし 正確なメカニズムは指定されていないため、 Sibling Address RecordTTLが小さくなる場合がある。 

 

PowerDNS ALIASレコード の TTLについての動作確認

正確な挙動は、実際に試してみないと分からなさそうだったので確認しました。

何パターンか試してみた内容です。

① Sibling Address Record が Aレコード , ANAME's TTL > Sibling's TTL 

【ANAME @ DNS-1】
(owner) (ttl) (class) (TYPE) (target)
example.1773.work. 60 IN ALIAS origin.1773.work.

【Sibling Address @ DNS-2】
(owner) (ttl) (class) (TYPE) (target)
origin.1773.work. 10 IN A 192.168.254.100

 
【事前確認、DNS-2に直接確認】
origin.1773.work. 10 IN A 192.168.254.100

【ANAME確認、DNS-1に確認】
exsample.1773.work. 10 IN A 192.168.254.100

 ⇒ TTLは、Sibling Address(かつTarget Address) Record のTTLに置き換わった。

 

② Sibling Address Record が Aレコード , ANAME's TTL < Sibling's TTL 

【ANAME @ DNS-1】
(owner) (ttl) (class) (TYPE) (target)
example.1773.work. 60 IN ALIAS origin.1773.work.

【Sibling Address @ DNS-2】
(owner) (ttl) (class) (TYPE) (target)
origin.1773.work. 100 IN A 192.168.254.100

 
【事前確認、DNS-2に直接確認】
origin.1773.work. 100 IN A 192.168.254.100

【ANAME確認、DNS-1に確認】
exsample.1773.work. 100 IN A 192.168.254.100

 ⇒ TTLは、Sibling Address(かつTarget Address) Record のTTLに置き換わった。

 

③ Sibling Address Record が CNAMEレコード , ANAME's TTL > Sibling's TTL > Target's TTL 

【ANAME @ DNS-1】
(owner) (ttl) (class) (TYPE) (target)
example.1773.work. 60 IN ALIAS cname.1773.work.

【Sibling Address @ DNS-2】
(owner) (ttl) (class) (TYPE) (target)
cname.1773.work. 10 IN CNAME origin.1773.work.

【Target Address @ DNS-3】
(owner) (ttl) (class) (TYPE) (target)
origin.1773.work. 5 IN A 192.168.254.10
origin.1773.work. 5 IN A 192.168.254.20
origin.1773.work. 5 IN A 192.168.254.30
 
【事前確認、DNS-3に直接確認】
origin.1773.work. 5 IN A 192.168.254.10
origin.1773.work. 5 IN A 192.168.254.20
origin.1773.work. 5 IN A 192.168.254.30

【事前確認、DNS-2に直接確認】
cname.1773.work. 10 IN CNAME origin.1773.work.
origin.1773.work. 5 IN A 192.168.254.10
origin.1773.work. 5 IN A 192.168.254.20
origin.1773.work. 5 IN A 192.168.254.30

【ANAME確認、DNS-1に確認】
exsample.1773.work. 5 IN A 192.168.254.20
exsample.1773.work. 5 IN A 192.168.254.10
exsample.1773.work. 5 IN A 192.168.254.30
  ⇒ TTLは、Target Address Record のTTLに置き換わった。
 

④ Sibling Address Record が CNAMEレコード , ANAME's TTL > Sibling's TTL < Target's TTL

【ANAME @ DNS-1】
(owner) (ttl) (class) (TYPE) (target)
example.1773.work. 60 IN ALIAS cname.1773.work.

【Sibling Address @ DNS-2】
(owner) (ttl) (class) (TYPE) (target)
cname.1773.work. 10 IN CNAME origin.1773.work.

【Target Address @ DNS-3】
(owner) (ttl) (class) (TYPE) (target)
origin.1773.work. 90 IN A 192.168.254.10
origin.1773.work. 90 IN A 192.168.254.20
origin.1773.work. 90 IN A 192.168.254.30
 
【事前確認、DNS-3に直接確認】
origin.1773.work. 90 IN A 192.168.254.10
origin.1773.work. 90 IN A 192.168.254.20
origin.1773.work. 90 IN A 192.168.254.30

【事前確認、DNS-2に直接確認】
cname.1773.work. 10 IN CNAME origin.1773.work.
origin.1773.work. 90 IN A 192.168.254.10
origin.1773.work. 90 IN A 192.168.254.20
origin.1773.work. 90 IN A 192.168.254.30

【ANAME確認、DNS-1に確認】
exsample.1773.work. 90 IN A 192.168.254.30
exsample.1773.work. 90 IN A 192.168.254.20
exsample.1773.work. 90 IN A 192.168.254.10
  ⇒ TTLは、Target Address Record のTTLに置き換わった。

 

PowerDNS ALIASレコード TTL関連の feature request の動向

現時点では未実装ではありますが、機能要望としては、下記の feature request がありました。 

この request においては CDN RR の TTL が 1 などの短期間に設定されている場合においても、一定時間キャッシュさせたいなどのケースにおいて利用する、ALIASレコード側のTTLをつかってTTLを上書き(調整)するオプションが要望されていました。

 

PowerDNS ALIASレコード の TTL を確認してみた 紹介でした。