DNS 設定調査方法のいろいろ

中京大学工学部 鈴木常彦
Dec 6, 2025 DNS温泉番外編in大阪 vol.4
https://www.e-ontap.com/misc/onsenkansai4/

dig

2023年の DNS温泉番外編in大阪 vol.2: dig の適切な使い方 をどうぞ


Windows など可哀想な OS で dig が使えない場合は Dig Gateway をどうぞ


ポイント

dig は history を残そう

% which dig
dig: aliased to ~/bin/dig    
% cat ~/bin/dig
#!/bin/sh
TIME=`echo | tai64n`
/usr/bin/dig $@ +tries=1 +timeout=1 +ignore | tee ~/histdig/$TIME

% ls -ltr histdig | tail -5
-rw-r--r--  1 tss  staff   1026 12月  4 15:39 @4000000069312cb30423324c
-rw-r--r--  1 tss  staff    886 12月  4 15:40 @4000000069312d031f7bb334
-rw-r--r--  1 tss  staff    859 12月  4 15:41 @4000000069312d1e127672b4
-rw-r--r--  1 tss  staff    878 12月  4 15:41 @4000000069312d25385cb7f4
-rw-r--r--  1 tss  staff    936 12月  4 15:41 @4000000069312d3309d2bb7c

% cat histdig/@40000000693268190950838c
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11780
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

tai64n についてはこちら

% echo "data" | tai64n 
@40000000693135e822a35cec data
% echo @40000000693135e822a35cec | tai64nlocal
2025-12-04 16:18:54.581131500 

drill も便利

DNSSEC の署名検証をツリーで

% drill -t -k /usr/local/etc/unbound/root.key -S mufj.jp soa @1.1.1.1
;; Number of trusted keys: 1
;; Chasing: mufj.jp. SOA


DNSSEC Trust tree:
mufj.jp. (SOA)
|---mufj.jp. (DNSKEY keytag: 17603 alg: 13 flags: 256)
    |---mufj.jp. (DNSKEY keytag: 12304 alg: 13 flags: 257)
    |---mufj.jp. (DS keytag: 12304 digest type: 2)
        |---jp. (DNSKEY keytag: 32565 alg: 8 flags: 256)
            |---jp. (DNSKEY keytag: 33631 alg: 8 flags: 257)
            |---jp. (DS keytag: 33631 digest type: 2)
                |---. (DNSKEY keytag: 61809 alg: 8 flags: 256)
                    |---. (DNSKEY keytag: 20326 alg: 8 flags: 257)
;; Chase successful

% drill -t -k /usr/local/etc/unbound/root.key -TD mufj.jp soa @1.1.1.1
 (省略)	

-k はトラストアンカー (KSK)

DNS健全性チェッカー

Lame Delegation の検査

https://www.e-ontap.com/dns/health/ (2009年公開)

DNS health checker

サンプル: expo2025future-of-life.com, 
expo-osaka2025.com, 
expo2025-kodomosyoutai-fukushi.jp


JPRS の検査サイト (ネームサーバー設定の事前チェックも行える) : https://dnscheck.jp/

逆引きDNSのlame delegationの確認 (JPNIC) : https://serv.nic.ad.jp/lame-check/

Hidden Open Resolver Tester

隠れオープンリゾルバの検査

https://snoopy.e-ontap.com/

snoopy.png

真正のオープンリゾルバー確認サイト (JPCERT/CC) はこちら

キャッシュが TTL に従っているかの検査
(浸透しない?)

5 分ごとに A レコードが切り替わるドメインです。(TTL 60 の誤差はあります)

http://a.t.e-ontap.com/

a.t.e-ontap.com


参考: ISPのDNSキャッシュサーバはTTLを越えてキャッシュを保持するか?

権威サーバ引越し実験

5分毎に NS が移転するドメイン d.t.e-ontap.com

https://www.e-ontap.com/dns/propagation/test/

多くの実装は権威サーバの NS 切り替えに従う (RFC 2181 準拠)

OCN の例 (権威を無視して委任の TTL に従う)

ocn-ttl

移転インジェクション脆弱性の確認方法

権威サーバからの Authority Section による NS キャッシュの上書き
(移転インジェクション模擬テスト)

flip.e-ontap.com の NS には 5分ごとに模擬毒 ns.flip.internot.jp が入る

https://www.e-ontap.com/dns/flip.e-ontap.com.html

委任
	
flip.e-ontap.com.     86400 NS ns1.flip.e-ontap.com.
ns1.flip.e-ontap.com. 86400 A 150.42.6.1

0-5分 (正規の flip.e-ontap.com ゾーン)

 flip.e-ontap.com.     3600  NS ns.flip.e-ontap.com.
 *.flip.e-ontap.com.   3600  A  150.42.6.1

5-10分 (移転先/あるいは悪意ある偽の flip.e-ontap.com ゾーンを指す)

 flip.e-ontap.com.     3600  NS ns.flip.internot.jp.
 *.flip.e-ontap.com.   3600  A  150.42.6.5

多くのリゾルバでは上書きされて *.flip.e-ontap.com. 60 IN A 150.42.6.5 が見える。

8.8.8.8 では観測されない。OCN のキャッシュサーバもたぶん上書きされない。

あなたのリゾルバは親と子のどちらの NS を選ぶか?

http://www.orphan.e-ontap.com/

判定 iframe

<p>Your cache server looks like using...</p>
<iframe src="http://6932a0d075cb.orphan.e-ontap.com/judge.html" frameborder="0" height="30px" width="300px" ></iframe>

委任先 ns.orphan.e-ontap.com = 150.42.6.2 / *.orphan.e-ontap.com IN A 150.42.6.5

権威 ns2.orphan.e-ontap.com = 150.42.6.9 / *.orphan.e-ontap.com IN A 49.212.171.172

% dig orphan.e-ontap.com @ns.e-ontap.com +norec +noall +auth +add
orphan.e-ontap.com.	300 IN NS ns.orphan.e-ontap.com.
ns.orphan.e-ontap.com.	300 IN A 150.42.6.2

% dig ns orphan.e-ontap.com @150.42.6.2 +norec +noall +ans +add  
orphan.e-ontap.com.	360 IN NS ns2.orphan.e-ontap.com.
ns2.orphan.e-ontap.com.	360 IN A 150.42.6.9
% dig 123.rand.orphan.e-ontap.com. @150.42.6.2 +norec +noall +ans +auth +add
123.rand.orphan.e-ontap.com. 60	IN A 150.42.6.5
orphan.e-ontap.com.	360 IN NS ns2.orphan.e-ontap.com.
ns2.orphan.e-ontap.com.	360 IN A 150.42.6.9

% dig 123.rand.orphan.e-ontap.com. @150.42.6.9 +norec +noall +ans +auth +add
123.rand.orphan.e-ontap.com. 60	IN A 49.212.171.172
orphan.e-ontap.com.	360 IN NS ns2.orphan.e-ontap.com.
ns2.orphan.e-ontap.com.	360 IN A 150.42.6.9

"奇妙な DNS 設定例" でリゾルバを検査してみよう

奇妙な DNS 設定例 より抜粋

DNSViz

DNSViz is a tool suite for analysis and visualization of Domain Name System (DNS) behavior

診断例

whois 裏技?

その他もろもろのツール

ところで

CVE-2025-40778

(緊急)BIND 9.xの脆弱性(DNSキャッシュポイズニングの危険性)について (JPRS 2025/10/23)

公開された PoC では毒は入らず。(こんなのが入るとは思えない)

隠された条件がある?

% dig @14.192.44.4 -p5301 www.victim.test +norec

; <<>> DiG 9.20.13 <<>> @14.192.44.4 -p5301 www.victim.test +norec
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12179
;; flags: qr aa ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;www.victim.test.		IN	A

;; ANSWER SECTION:
www.victim.test.	120	IN	A	198.51.100.10

;; ADDITIONAL SECTION:
www.target.example.	600	IN	A	203.0.113.5

CVE-2025-40778

もうひとつおまけ

AWS Route 53 Global Resolver

AWS Route 53 Global Resolver (preview) で移転インジェクション模擬テストを試してみた。

;; ANSWER SECTION:
2.flip.e-ontap.com.	56	IN	A	150.42.6.1

;; Query time: 79 msec
;; SERVER: 3.33.*.*#53(3.33.*.*)
;; WHEN: Fri Dec 05 16:25:12 JST 2025

結果、移転毒 (150.42.6.5) は入らず。(安全寄りだが、利用者は 浸透おそい! と言っちゃう可能性大)

route53globalresolver

質問どうぞ

void さん

次は DNS 温泉 12 でお会いしましょう。(たぶん来年 8 月)