01-04 インターネットの名前解決の仕組み

今あなたがサーバーにログインすることができるのは、サーバーにIPアドレスが割り振られ、あなたのPCもインターネットに繋がっているから。

例えば、ブラウザを使ってYahoo! Japanのサイトを閲覧する際に、IPアドレスを入力して表示させる人はあまり見かけません。

その理由の一つに、IPアドレスは覚えにくいということもあり、IPアドレスにはFQDN(ホスト名 + ドメイン名)が紐付けされています

FQDNとはFully Qualified Domain Nameの略で、完全修飾ドメインと言われるものです。

今回の講座では、インターネットの名前解決がどのように行われているのか、動画と合わせて少し掘り下げて説明します。

動画講座 名前解決やFQDNについて

FQDNからIPアドレスを求める正引き

FQDNからIPアドレスを求めることを正引きと言います。

例えば、インターネットに繋がっているPCのブラウザのアドレスバーにwww.superusers.jpと入力すれば、SuperUserのページが当たり前のように表示されます。

その裏側では幾多の工程を経てIPアドレスが導き出され、SuperUserのWebサイトに辿り着くことをご理解いただけたと思います。

digコマンドで正引き

FQDNからIPアドレスを調べる際に使うコマンドがdigです。

書式は「dig FQDN」とタイプすることによってIPアドレスを求めることができます。

dig www.superusers.jp

このコマンドを入力して、ANSWER SECTIONの部分に表示されたIPアドレスが、www.superusers.jpのIPアドレスになります。

; <<>> DiG 9.10.6 <<>> www.superusers.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24323
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.superusers.jp.		IN	A

;; ANSWER SECTION:
www.superusers.jp.	3600	IN	A	133.130.89.76

;; Query time: 67 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Jun 28 12:37:04 JST 2022
;; MSG SIZE  rcvd: 62

digコマンドで逆引き

IPアドレスからFQDNを求めることを逆引きと言います。同じくdigコマンドを使いますが、逆引きの場合は「-x」というオプションを付加して使います。

dig -x 133.130.89.76

ANSWER SECTIONは、このように表示されると思います。

;; ANSWER SECTION:
76.89.130.133.in-addr.arpa. 3469 IN PTR www.superusers.jp.

digコマンドで名前解決をトレース

動画講座では名前解決の工程をトレースする方法を説明しました。

通常、名前解決をトレースすることはあまりありませんが、知っておくことで名前解決の仕組みの理解度が深まります。

トレースする方法は、このようなコマンドでしたね。

dig +trace +multiline @8.8.8.8 www.superusers.jp

@8.8.8.8は、名前解決にGoogle Public DNSサーバーに問い合わせをするという意味。

もし指定しなければ、/etc/resolv.confに書かれているnameserverに問い合わせをします。

トレースの結果

dig +trace +multiline @8.8.8.8 www.superusers.jp

; <<>> DiG 9.10.6 <<>> +trace +multiline @8.8.8.8 www.superusers.jp
; (1 server found)
;; global options: +cmd
.			4826 IN	NS m.root-servers.net.
.			4826 IN	NS b.root-servers.net.
.			4826 IN	NS c.root-servers.net.
.			4826 IN	NS d.root-servers.net.
.			4826 IN	NS e.root-servers.net.
.			4826 IN	NS f.root-servers.net.
.			4826 IN	NS g.root-servers.net.
.			4826 IN	NS h.root-servers.net.
.			4826 IN	NS i.root-servers.net.
.			4826 IN	NS a.root-servers.net.
.			4826 IN	NS j.root-servers.net.
.			4826 IN	NS k.root-servers.net.
.			4826 IN	NS l.root-servers.net.
.			4826 IN	RRSIG NS 8 0 518400 (
				20181226170000 20181213160000 2134 .
				TZnENyu+QWw02tLR5WV+cSD6UX2o1oTZ496E1Oj4pBb2
				fyqO+OuwSogiY3OIi/dqpsSQlz4+C894d1+amtuNDaF8
				O1aIYtHuV1xHxbqsqrj/jm824yc5Ore3lNARKogPXtQb
				NedwJyW6Hi/lToh7r/E1LhcnMwLVR+Vs6Y4rUPDS4s+N
				V2Kq+Jpvb159waBSLLlyB0+T+IBiTDU7GtuXkMfo60AJ
				QomTDT6J7AuO1FocRAkjt4SlycZ8V6RIBVauFEMYnPQg
				LLUFUUp61TuVZF/AdEbWJ7XtcOvcKAzO5Ca351yM8u9S
				Humu2gDtJwyGpmFTUOApYvXEBDOydZUZkA== )
;; Received 525 bytes from 8.8.8.8#53(8.8.8.8) in 52 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 54004 8 1 (
				0EC348CC7E6D3213CC89E5867088043FC7D5C111 )
jp.			86400 IN DS 54004 8 2 (
				5F4B24F667BC70880720D10DF317DC8FF80C63E586D5
				04E6BBFE53F0B9ECC040 )
jp.			86400 IN RRSIG DS 8 1 86400 (
				20181229170000 20181216160000 2134 .
				OAc6GajvZ4hfswuQo7TrMuCzXP1mh0N7Pj/gBjm/e/aX
				kDqZrXIFfTBoyBW0qbUzy4hXrWZwIdBL/Ya7sfz1aCe0
				P3D/E+zxuoF+I8hm5DIN0OocZ4N1kTS7JF1qkSZFHtV6
				TKtATZIo1YsLcwSLE2ArOixu3xFtroV5dHiaeoBX9P52
				BNtcKheDVTT+kiUjf0RqulJrNRESZlBKm2qAlPF4p2Ir
				I0QDGL+uOuh7EqHuRMSXFJEaSqBUon7cCJzkdINA8mA7
				szU3a6JVCtn4I9N1xlBrK9cstpmTVlaFT9v4T1cwe9sg
				A9J2D1ccyI/xx+UKRDbd/ssIZSvwvSmFhg== )
;; Received 873 bytes from 199.7.83.42#53(l.root-servers.net) in 138 ms

superusers.jp.		86400 IN NS dns02.muumuu-domain.com.
superusers.jp.		86400 IN NS dns01.muumuu-domain.com.
TL3E9MCE8KE1PUDULD7G5JUB5D7CAVQI.jp. 900 IN NSEC3 1 1 8 0B645814A5 (
				TL3QIB30GAAN9EE2TJVJNVBMMOGA0AC0
				NS SOA RRSIG DNSKEY NSEC3PARAM )
TL3E9MCE8KE1PUDULD7G5JUB5D7CAVQI.jp. 900 IN RRSIG NSEC3 8 2 900 (
				20190114174502 20181215174502 45828 jp.
				DWtlk7yC/SMDcwepco8OzTgVSmPHoZJ57yTC87LgROqb
				afqM+DZrEJDIVQ+qahHxYgb3fawrAG4JCsQUfQ4U9h03
				GEOV+aPq6y+fLD1HWPoRpNCydkijY7XoYFxxsMiNmbP1
				PzkonRcwxC+Avqu+KjmE6j7DaqEWhj3aPWPPlPQ= )
9JJ8TPE2TM9L7GN09DH00VMB0GT86LJ6.jp. 900 IN NSEC3 1 1 8 0B645814A5 (
				9JQQ0UT05BA7O513T71020437ENU1571
				TXT RRSIG )
9JJ8TPE2TM9L7GN09DH00VMB0GT86LJ6.jp. 900 IN RRSIG NSEC3 8 2 900 (
				20190114174502 20181215174502 45828 jp.
				MhiMNRCaym3xchdkkLIB2lOztGztat+265eH5mf2Lpyp
				rcPrDC0JR7Ci+0UeVPnq1C65Nh/3ExOWljRaRv9CANHf
				q9bDkhj2m+jJcCCExASxsaDGgPpKdcYL8H2zChdPD+CU
				5pbnxUxiTV5mPojE2fgT0F9KliFEUgFdYpo9+ds= )
;; Received 596 bytes from 150.100.6.8#53(f.dns.jp) in 28 ms

www.superusers.jp.	3600 IN	A 133.130.89.76
;; Received 62 bytes from 202.239.23.40#53(dns01.muumuu-domain.com) in 29 ms

表示された結果の中に「;; Received」の行がいくつかあると思います。

29行目は、Google Public DNSサーバーからroot DNSサーバーに問い合わせ。

;; Received 525 bytes from 8.8.8.8#53(8.8.8.8) in 52 ms

54行目は、l.root-servers.net DNSサーバーからJPドメインのサーバーへと、順を追って名前解決の問い合わせをしています。

;; Received 873 bytes from 199.7.83.42#53(l.root-servers.net) in 138 ms

名前解決のイメージ

名前解決はドメインの上位に当たるルートDNSサーバーから順に問い合わせをして、最終的にFQDNに紐付いたIPアドレスを得ます。

関連記事

コメント

この記事へのコメントはありません。