DNSのアノ現象、正しく説明できますか?



中京大学工学部 鈴木常彦
Jan 24, 2025 JANOG 55
オフレコ セッション

浸透で誤魔化す事業者たち

そんなものはない

   
浸透いうなシミュレーション

みんな何を待っているのか?

  1. 自分のキャッシュサーバで新しいレコードが引けるのを待っている? (自分が引ければいい?)
  2. 世界中のキャッシュサーバが更新されるのを待っている? (永遠に?)
  3. 世界中のキャッシュサーバから古いキャッシュが消えるのを待っている? (少しまし)
  4. 祈りながら新しいウェブページが見えたりメールが届いたりするのを待っている? (30日キャッシュが消えなかったブラウザも)
  5. 権威サーバの応答が設定したゾーンデータに変わるのを待っている? (それ浸透?)

無駄に待つのは適切な設定手順/確認方法を知らないから

適切な設定の手順と確認方法 (モデルケース)

  1. マスターサーバ (できれば隠れマスター) でゾーン編集
    1. ゾーンデータを編集、チェックする (nsd-checkzone など)
    2. ゾーンの追加削除があれば conf もチェックする (nsd-checkconf など)
    3. ゾーンを reload / conf も変更していれば reconfig
    4. マスターサーバの応答を非再帰で確認
      dig -t a www.example.jp @ns0.example.jp +norec
    5. ゾーン転送 (nsd-control notify など) とか rsync とか、、、
  2. 全ての権威サーバの応答を非再帰で確認 (UDP, TCP)
    dig -t a www.example.jp @ns[1234].example.jp +norec +ignore +notcp +bufsize=????
    dig -t a www.example.jp @ns[1234].example.jp +norec +tcp
  3. NS 新設や移転なら委任を依頼 (ネームサーバ情報の変更)
  4. 委任応答を非再帰で確認 (権威との NS の整合性が重要!)
    dig example.jp @z.dns.jp +norec +bufsize=???? +dnssec
  5. キャッシュサーバの応答を確認 (再帰は最後)
    (最後まで我慢! 浸透待ちとなる大きな要因 / SOA minimum TTL は短めに)
  6. NS 移転なら委任の TTL の期間は並行運用

なぜ浸透と言ってはいけないのか?

浸透待ちの乗っ取りパターン

浸透待ち乗っ取りの図

おまけ: GO.JP を保護した話 (AWS Route 53 の例)

1月12日深夜 mext.go.jp (文科省) の権威サーバへ bousai を問い合わせ (SERVFAIL のリスト精査作業)

		;; AUTHORITY SECTION:
		bousai.mext.go.jp.	300 IN NS ns-173.awsdns-21.com.
		bousai.mext.go.jp.	300 IN NS ns-1407.awsdns-47.org.
		bousai.mext.go.jp.	300 IN NS ns-686.awsdns-21.net.
		bousai.mext.go.jp.	300 IN NS ns-1711.awsdns-21.co.uk.

		;; Query time: 19 msec
		;; SERVER: 202.241.4.6#53(dns2.mext.go.jp) (UDP)
		;; WHEN: Sun Jan 12 00:40:10 JST 2025
	

権威サーバへの問い合わせ

		; <<>> DiG 9.20.3 <<>> bousai.mext.go.jp @ns-173.awsdns-21.com.
		;; global options: +cmd
		;; Got answer:
		;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 2743
		;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
		;; WARNING: recursion requested but not available

		;; Query time: 122 msec
		;; SERVER: 2600:9000:5300:ad00::1#53(ns-173.awsdns-21.com.) (UDP)
		;; WHEN: Sun Jan 12 00:40:18 JST 2025
		

おまけ: Route 53 Lame Delegation 保護の再現

(AWS Console 画面録画...公開資料から削除)

質疑の補足

再確認しましたが Google Public DNS が TTL を守らないという観測は得られませんでした。ただし GPD は NS 移転のケースだと権威の NS TTL を短くしても委任元の TTL に引きづられます。(参考:権威サーバ引越し実験)

DNS キャッシュサーバ (フルサービスリゾルバ) が TTL を守るかどうかは dig @サーバ a.t.e-ontap.com を観察してみてください。権威サーバ側は以下のように切り替わります。

0-50/10 は 14.192.44.2
5-55/10 は 14.192.44.4

これが 60秒 の誤差で切り替われば TTL を無視していません。
(ただし短い TTL の切り上げは設定によってありえます)

そんなに TTL を無視する実装、運用が多かったら CDN や DDNS が機能しませんよね。

終わり

バズワードで誤魔化さず自分の頭で考えましょう

void さんじゃないよ

(宣伝) もっと濃い話を聴きたい人は DNS 温泉へ...