KDOC 517: DNS階層をたどる様子を見る

この文書のステータス

  • 作成
    • 2026-01-12 貴島
  • レビュー
    • 2026-02-01 貴島

概要

DNSは階層的な分散型データシステムである。

具体的な例として、ja.wikipedia.orgというホスト名の IPアドレスを検索することを考えると、再帰検索は、トップレベルドメインをルートサーバに問い合わせることからはじまる。ja.wikipedia.orgというホスト名はwikipedia.orgドメインに属し、またwikipedia.orgドメインはorgドメインに属するため、クライアントは最初にorgドメインのDNSサーバ(ネームサーバ)のIPアドレスを得なければならない。

まず、クライアントは適当なルートサーバをひとつ選ぶ。ここでは A.ROOT-SERVERS.NET(198.41.0.4)とする。現在、ルートサーバに登録されているorgドメインのネームサーバは9つあり、そのうちのひとつはa7.nstld.com(192.5.6.36)である。

つぎにクライアントは、このネームサーバにwikipedia.orgドメインのネームサーバの IPアドレスを問い合わせる。するとそのネームサーバのホスト名はdns34.register.com(216.21.226.87)であることがわかる。

最後に、このネームサーバにja.wikipedia.orgのIPアドレスを問い合わせる。するとこのサーバは最終的な答130.94.122.197を返す。こうして目的とするホスト名のIPアドレスを検索できる。

Domain Name System - Wikipedia

トップレベルドメインからNSレコードを辿っていき、最終的にAレコードを得る様子を見る。

.com の場合を見る。

dig +trace -4 github.com
; <<>> DiG 9.18.30-0ubuntu0.24.04.1-Ubuntu <<>> +trace -4 github.com
;; global options: +cmd
.			5038	IN	NS	f.root-servers.net.
.			5038	IN	NS	i.root-servers.net.
.			5038	IN	NS	e.root-servers.net.
.			5038	IN	NS	b.root-servers.net.
.			5038	IN	NS	g.root-servers.net.
.			5038	IN	NS	d.root-servers.net.
.			5038	IN	NS	a.root-servers.net.
.			5038	IN	NS	j.root-servers.net.
.			5038	IN	NS	c.root-servers.net.
.			5038	IN	NS	k.root-servers.net.
.			5038	IN	NS	m.root-servers.net.
.			5038	IN	NS	l.root-servers.net.
.			5038	IN	NS	h.root-servers.net.
;; Received 239 bytes from 127.0.0.53#53(127.0.0.53) in 0 ms

com.			172800	IN	NS	a.gtld-servers.net.
com.			172800	IN	NS	b.gtld-servers.net.
com.			172800	IN	NS	c.gtld-servers.net.
com.			172800	IN	NS	d.gtld-servers.net.
com.			172800	IN	NS	e.gtld-servers.net.
com.			172800	IN	NS	f.gtld-servers.net.
com.			172800	IN	NS	g.gtld-servers.net.
com.			172800	IN	NS	h.gtld-servers.net.
com.			172800	IN	NS	i.gtld-servers.net.
com.			172800	IN	NS	j.gtld-servers.net.
com.			172800	IN	NS	k.gtld-servers.net.
com.			172800	IN	NS	l.gtld-servers.net.
com.			172800	IN	NS	m.gtld-servers.net.
com.			86400	IN	DS	19718 13 2 8ACBB0CD28F41250A80A491389424D341522D946B0DA0C0291F2D3D7 71D7805A
com.			86400	IN	RRSIG	DS 8 1 86400 20260125050000 20260112040000 21831 . ZxvdGVZKN2nSe3J+8z4B5jKhpwdWgBAX8SS1/Jw/fdo8hxb8XAZVP5+6 M7xLNBgvj7vHIzR/Gfiz0kAJeeTmTRU6uglTwf0tmvM9cCHr4J7sTc3r cDzLUZd6/kMskW5HSYOq5hBgLROzukzTVg1KO4AVGn6JL4iyAdtnoTyT pFt02zXADLs3CEfjZqLR+yzH/pqD9FYbDANdaljpxN/qpU7Itfz1ldV2 YZi1oKdrDixSFA00iHMYOcYI+laktp63yNAm73n+4E+O2p+r9u1KAmqL Yy2erLx7v6acR1eKw0S6HxLQekaTSSGLDuuhk5ztMCi1QKXlXp7dTwg5 oBJHkw==
;; Received 1170 bytes from 192.58.128.30#53(j.root-servers.net) in 108 ms

github.com.		172800	IN	NS	ns-520.awsdns-01.net.
github.com.		172800	IN	NS	ns-421.awsdns-52.com.
github.com.		172800	IN	NS	ns-1707.awsdns-21.co.uk.
github.com.		172800	IN	NS	ns-1283.awsdns-32.org.
github.com.		172800	IN	NS	dns1.p08.nsone.net.
github.com.		172800	IN	NS	dns2.p08.nsone.net.
github.com.		172800	IN	NS	dns3.p08.nsone.net.
github.com.		172800	IN	NS	dns4.p08.nsone.net.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 900 IN NSEC3 1 1 0 - CK0Q3UDG8CEKKAE7RUKPGCT1DVSSH8LL NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 900 IN RRSIG NSEC3 13 2 900 20260118002710 20260110231710 46539 com. NJZOGM6/58BaMKgZQx3rszUB4kwgp/075NDSCLL5AH9z02FiE+DgsxFR djxD/mRLTPZAaNUuvtHv76ZIxIchcA==
4KB4M5P0V10KIBJ8HQ2VH9EMME8NV6MR.com. 900 IN NSEC3 1 1 0 - 4KB4V9IAMJL29MC1VBJ8NDO7E6SI2B8O NS DS RRSIG
4KB4M5P0V10KIBJ8HQ2VH9EMME8NV6MR.com. 900 IN RRSIG NSEC3 13 2 900 20260118021121 20260111010121 46539 com. 9fgJGD+ItOwih/kCASh2P3+nhrE7CFiQtzusLGGm3Entyu7/h7ci+tim VsYfJ5bwYi4KizXq/3lVaSfTlIydXA==
;; Received 635 bytes from 192.52.178.30#53(k.gtld-servers.net) in 189 ms

github.com.		60	IN	A	20.27.177.113
github.com.		900	IN	NS	dns1.p08.nsone.net.
github.com.		900	IN	NS	dns2.p08.nsone.net.
github.com.		900	IN	NS	dns3.p08.nsone.net.
github.com.		900	IN	NS	dns4.p08.nsone.net.
github.com.		900	IN	NS	ns-1283.awsdns-32.org.
github.com.		900	IN	NS	ns-1707.awsdns-21.co.uk.
github.com.		900	IN	NS	ns-421.awsdns-52.com.
github.com.		900	IN	NS	ns-520.awsdns-01.net.
;; Received 278 bytes from 205.251.197.3#53(ns-1283.awsdns-32.org) in 4 ms

同様に .jp も試す。

dig +trace -4 note.jp
; <<>> DiG 9.18.30-0ubuntu0.24.04.1-Ubuntu <<>> +trace -4 note.jp
;; global options: +cmd
.			4988	IN	NS	a.root-servers.net.
.			4988	IN	NS	g.root-servers.net.
.			4988	IN	NS	b.root-servers.net.
.			4988	IN	NS	h.root-servers.net.
.			4988	IN	NS	m.root-servers.net.
.			4988	IN	NS	i.root-servers.net.
.			4988	IN	NS	d.root-servers.net.
.			4988	IN	NS	l.root-servers.net.
.			4988	IN	NS	j.root-servers.net.
.			4988	IN	NS	f.root-servers.net.
.			4988	IN	NS	k.root-servers.net.
.			4988	IN	NS	c.root-servers.net.
.			4988	IN	NS	e.root-servers.net.
;; Received 239 bytes from 127.0.0.53#53(127.0.0.53) in 0 ms

jp.			172800	IN	NS	a.dns.jp.
jp.			172800	IN	NS	b.dns.jp.
jp.			172800	IN	NS	c.dns.jp.
jp.			172800	IN	NS	d.dns.jp.
jp.			172800	IN	NS	e.dns.jp.
jp.			172800	IN	NS	f.dns.jp.
jp.			172800	IN	NS	g.dns.jp.
jp.			172800	IN	NS	h.dns.jp.
jp.			86400	IN	DS	33631 8 2 B54097461F9DBC3D9D87E74552C76314B421D178A18D8CB74DD2D97F 34FBADBE
jp.			86400	IN	RRSIG	DS 8 1 86400 20260125050000 20260112040000 21831 . QEFbHHyuCVClqh4q0bxZJuyr8qcS/suW+l5YAvmqSsnWwnccRnTkkoNO /zR2kWumTHHKjwWJ5I9VY5Dn2ywxrJescwdb1GgHk8xHkosgt6MAfOgK gkSGOzlf9B6rqPjWmCCCmbvM3N9ErUndIUg5oNy7w874aQK3IfQkTEZV Y87Gv7Nfa8V4NMy7vstbssYqXgWwbXiDKJQyaLWpyTW/GnWZ+GZeVvGS 7RMDWkKJS+QXMt8ioZol6eb35qJ4yDvZ+r+WtekSL1df9io2yTMVtD59 ULfUivAoqHRcnmOd+E4icogbZ4mEiy0kzHPS5x9c3Ykw9fUlo0ctRrPf j7CoOA==
;; Received 827 bytes from 199.7.83.42#53(l.root-servers.net) in 117 ms

note.jp.		86400	IN	NS	ns-139.awsdns-17.com.
note.jp.		86400	IN	NS	ns-675.awsdns-20.net.
note.jp.		86400	IN	NS	ns-1391.awsdns-45.org.
note.jp.		86400	IN	NS	ns-1650.awsdns-14.co.uk.
b9ccvllht15jm5het57bq8mlbaakpi82.jp. 900 IN NSEC3 1 1 0 - B9GCLVHJOFB3318PIQ42MAJLDH459SFM NS SOA RRSIG DNSKEY NSEC3PARAM
b9ccvllht15jm5het57bq8mlbaakpi82.jp. 900 IN RRSIG NSEC3 8 2 900 20260209174503 20260110174503 62703 jp. tB7WC8UIsO4S3FOjtRKfiVd7a4dvGu/hQD5CKU/tJrmg+W4LyMqHUeTy /wD0ClTIbv7gWfh+WbkHeCA0MeU/X7Hy5damcvGajz9/QLLdjNQSJeHG xOe7irqopZZNrjLSKapewJyUgZglxx4VIe8r2Py9FIWiCk9CaSPUhSAl WCw=
31taohd0oni1cga6biicglbhhh6i1san.jp. 900 IN NSEC3 1 1 0 - 31V1508LCTMLVPQRIVORPD3UJG8TF416 NS DS RRSIG
31taohd0oni1cga6biicglbhhh6i1san.jp. 900 IN RRSIG NSEC3 8 2 900 20260209174503 20260110174503 62703 jp. D8JUgZtoIA2kXrV4qO3w9nxrG0H9NhNn/3+kLb9yIzrP84fjU2lfjG5j Sz5NDIBItw5Ymnm6+8quTkpIuzGZQPKr9rUAjgCGmz5YlG8f1iIYxA/x FRpTs06Oz/Xd30ck3yDpzOotKc2GEb87cKZFGGoVFltGurP1TZUrcEpw AX8=
;; Received 659 bytes from 192.50.43.53#53(e.dns.jp) in 11 ms

note.jp.		300	IN	A	18.176.100.108
note.jp.		172800	IN	NS	ns-139.awsdns-17.com.
note.jp.		172800	IN	NS	ns-1391.awsdns-45.org.
note.jp.		172800	IN	NS	ns-1650.awsdns-14.co.uk.
note.jp.		172800	IN	NS	ns-675.awsdns-20.net.
;; Received 192 bytes from 205.251.194.163#53(ns-675.awsdns-20.net) in 109 ms

関連

  • 追加調査: NSレコードは複数あるが、どうやって選ばれているのか