【初心者向け】digやnslookupとは何か?コマンドでサイトのIPアドレスやDNSを調べる/取得する方法

windows-terminal-prograshi(プロぐらし)-kv Command
記事内に広告が含まれていることがあります。

特定のドメインのIPアドレスやDNSの情報を調べたいときに「dig」や「nslookup」といったコマンドを使用することができます。

ここでは「dig」や「nslookup」の使い方や表示内容が示す意味についてまとめています。


digコマンドとは何か?

digコマンドとは指定したIPアドレスやDNS、応答時間などの情報を取得できるコマンドです。

使い方は以下のようになります。

$ dig [@DNSサーバー] ドメイン名 [オプション]

なお、digはdomain information groperの略です。

英語辞書でgroperの意味を調べると「痴漢」。つまり、他人のドメイン情報をまさぐるコマンドということです。

(digは英語で掘るという意味なので、指定したドメインを深掘ることだと思っていました、、)


digコマンドでわかること

コマンド実行後の回答は情報がセクション毎に別れて返ってきます。

ドメインに対するIPアドレスは、ANSWER SECTIONに記載されています。


(1) ANSWER SECTION
問合せたドメインに対する回答。
IPアドレス、TTL、レコードのクラスとタイプがわかる。


(2) AUTHORITY SECTION
権威DNSサーバーの情報。
問い合わせたドメイン名のDNSサーバー一覧を表示する。


(3) ADDITIONAL SECTION
権威DNSサーバーの情報を表示する。
IPアドレス、TTL、レコードのクラスとタイプがわかる。


(4) 問合せ情報の詳細
・問合せから回答までにかかった時間
・問い合わせに使用したDNSサーバー


DNSサーバーとは何か?

WEBページを開くと上部にURLが表示されます。

例えば、このサイトであれば「https://prograshi.com/」が先頭にきて、その配下に各ページの階層のパスがきます。

ただし、インターネット上では「prograshi.com」というドメイン名ではなくIPアドレスを使って、各アドレスの所在地を割り当てています。

「prograshi.com」はドメインネーム、通称DNと呼ばれるものです。このDNとIPアドレスを対応させているサーバーをDNSサーバーと呼びます。

(参考) DNSサービス オンラインマニュアル: https://manual.iij.jp/dns/help/1480649.html

ドメイン名の問合せをすると、まずキャッシュDNSサーバーに行きここで情報があれば回答がきます。

ない場合は、ルートDNSサーバーに問合せ、そこで教えらるのが直下の権威DNSサーバーとなります。

図の例では、.jp -> .co.jp -> www.example.co.jpのように、各対応表を持つ3つの権威サーバーを経由しています。


権威DNSサーバーとは?

世の中にはIPアドレスとDNがたくさんあるため、1つのDNSサーバーではなく、DNSサーバーが複数に分かれています。

権威DNSサーバーとは、各DNSサーバーの中で指定したIPアドレスとドメイン名を定義(所有)しているサーバーのことです。


digコマンドの実行結果

例えば、qiitaのIPアドレス情報は以下になります。
$ dig qiita.com

; <<>> DiG 9.10.6 <<>> qiita.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29878
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 4

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;qiita.com.            IN  A

;; ANSWER SECTION:
qiita.com.        16  IN  A   52.194.6.194
qiita.com.        16  IN  A   13.114.11.230
qiita.com.        16  IN  A   13.112.43.51

;; AUTHORITY SECTION:
qiita.com.        171893  IN  NS  ns-772.awsdns-32.net.
qiita.com.        171893  IN  NS  ns-171.awsdns-21.com.
qiita.com.        171893  IN  NS  ns-1049.awsdns-03.org.
qiita.com.        171893  IN  NS  ns-1956.awsdns-52.co.uk.

;; ADDITIONAL SECTION:
ns-171.awsdns-21.com.    139723  IN  A   205.251.192.171
ns-772.awsdns-32.net.    20264   IN  A   205.251.195.4
ns-1049.awsdns-03.org.    65809   IN  A   205.251.196.25

;; Query time: 18 msec
;; SERVER: 2400:2412:6a60:bb00:1111:1111:1111:1111#53(2400:2412:6a60:bb00:1111:1111:1111:1111)
;; WHEN: Thu Sep 10 15:46:27 JST 2020
;; MSG SIZE  rcvd: 271


Qiitaの場合、IPアドレスは52.194.6.194, 13.114.11.230, 13.112.43.51の3種類。

権威DNSの情報を見るとAWSが使われていることがわかります。

AWSの場合、入力されたドメインが一致した場合にSSL/TLSハンドシェイクが成立し、ページが開く仕様のため、IPアドレス(52.194.6.19)でページを開こうとすると502 BadGatewayと表示されてしまいます。


問合せ結果の見方

上記の例で、digコマンドの実行結果から得られた情報は大きく以下の3つに分けることができます。

ドメイン/DNS名TTL[s]レコードクラスレコードタイプIPアドレス
qiita.com.16INA52.194.6.194
qiita.com.171893INNSns-772.awsdns-32.net.
ns-772.awsdns-32.net.20264INA205.251.195.4

TTL

TTLはTime To Live(生きている時間)。
DNSの場合、DNSサーバーのキャッシュの有効生存時間のこと。

権威DNSサーバーは毎回問合せを受けているわけではなく、応答時間を早めたり、負荷分散のために、前にキャッシュDNSサーバーがある。ここでのデータの保持時間。

WEBサーバー
  ↑↓
  PC
  ↑↓
キャッシュDNSサーバー
  ↑↓
権威DNSサーバー


レコードとは?

権威DNSサーバーが所持しているIPアドレスとドメインの対応表(ゾーンファイル)の行のこと。

レコードにはクラスとタイプ(種類)が記述されている。

例えば、IPアドレスとドメインの対応はレコードクラスINのAレコードに記述されている。


レコードクラス

基本的にINのみ。INはInternetの略。


レコードタイプ

実例ではAレコードと、NSレコードがあります。

主要なレコードの内容は以下のようになっています。

タイプ概要備考
Aレコードドメイン名とIPアドレス(ipv4形式)の対応表Aはadressの略
AAAAレコードドメイン名とIPアドレス(ipv6形式)の対応表ipv6が4桁区切りなのでAが4つ
NSレコードドメイン名と権威サーバーの対応表権威サーバーとは、DNSの管理を委託されているサーバー
MXレコードドメイン名とメールサーバーの対応表Mail Exxhangeの略。対象ドメイン宛てのメール配信先サーバーを定義。
TXTレコードコメントドメイン名に関連する情報が記載された行
CNAMEレコードニックネームドメイン名の別名を定義。Canonical NAMEの略。

他にもDSやCAAレコードなどがある。


コマンドオプション

逆引き(-x)

dig -x IPアドレス

IPアドレスからDNSの情報を問い合わせることができる。
権威DNSの情報がわかるのであって、ドメイン名がわかるわけではない。

$ dig -x 13.112.43.51

; <<>> DiG 9.10.6 <<>> -x 13.112.43.51
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48107
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;51.43.112.13.in-addr.arpa.    IN  PTR

;; ANSWER SECTION:
51.43.112.13.in-addr.arpa. 300    IN  PTR ec2-13-112-43-51.ap-northeast-1.compute.amazonaws.com.

;; AUTHORITY SECTION:
112.13.in-addr.arpa.    8034    IN  NS  x2.amazonaws.com.
112.13.in-addr.arpa.    8034    IN  NS  x1.amazonaws.com.
112.13.in-addr.arpa.    8034    IN  NS  pdns1.ultradns.net.
112.13.in-addr.arpa.    8034    IN  NS  x4.amazonaws.org.
112.13.in-addr.arpa.    8034    IN  NS  x3.amazonaws.org.

;; ADDITIONAL SECTION:
pdns1.ultradns.net.    3409    IN  AAAA    2001:502:f3ff::1
pdns1.ultradns.net.    3409    IN  A   204.74.108.1

;; Query time: 18 msec
;; SERVER: 2400:2412:6a60:bb00:1111:1111:1111:1111#53(2400:2412:6a60:bb00:1111:1111:1111:1111)
;; WHEN: Thu Sep 10 17:05:23 JST 2020
;; MSG SIZE  rcvd: 278


IPアドレスのみ表示(+short)

$ dig ドメイン +short

シンプルにIPアドレスだけを返します。

$ dig qiita.com +short
52.194.6.194
13.114.11.230
13.112.43.51


問い合わせ先のDNSサーバーを指定(@ DNSサーバー)

$ dig @DNSサーバー ドメイン

$ dig @8.8.8.8  qiita.com

省略

;; Query time: 15 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Sep 10 17:19:06 JST 2020
;; MSG SIZE  rcvd: 86

問合せ先DNSのSERVERが8.8.8.8になっています。

ちなみに、8.8.8.8はGoogle Public DNSが運営するDNSサーバのIPアドレスです。


問い合わせるipvを指定(-4, -6)

$ dig ドメイン -4 : ipv4で問合せ
$ dig ドメイン -6 : ipv6で問合せ

dig qiita.comを実行するとデフォルトでipv6で問い合わせているが、「-4」を使うと、IPv4で問合せられる。

-6 での問い合わせ結果

;; Query time: 22 msec
;; SERVER: 2400:2412:6a60:bb00:1111:1111:1111:1111#53(2400:2412:6a60:bb00:1111:1111:1111:1111)
;; WHEN: Thu Sep 10 17:22:52 JST 2020
;; MSG SIZE  rcvd: 271

-4 での問い合わせ結果

;; Query time: 18 msec
;; SERVER: 192.168.3.1#53(192.168.3.1)
;; WHEN: Thu Sep 10 17:23:21 JST 2020
;; MSG SIZE  rcvd: 271


nslookup

digと似たコマンドに「nslookup」というコマンドがあります。

digで取得できる情報をシンプルにしたもので、問い合わせ先DNS、ドメインに対応するIPアドレスのみを返します。

nsはname serverの略で、DNSサーバーが起動正しく起動しているか確認するために開発されたコマンドです。


$ nslookup ドメイン名

nslookupの実行例

$ nslookup qiita.com
Server:        2400:2412:6a60:bb00:1111:1111:1111:1111
Address:    2400:2412:6a60:bb00:1111:1111:1111:1111#53

Non-authoritative answer:
Name:    qiita.com
Address: 13.114.11.230
Name:    qiita.com
Address: 52.194.6.194
Name:    qiita.com
Address: 13.112.43.51


問合せ先DNSサーバーの指定

digと同じく問い合わせるDNSサーバーを指定することもできます。

$ nslookup ドメイン名 DNSサーバーのIPアドレス

$ nslookup qiita.com 8.8.8.8
Server:        8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:    qiita.com
Address: 13.112.43.51
Name:    qiita.com
Address: 13.114.11.230
Name:    qiita.com
Address: 52.194.6.194
タイトルとURLをコピーしました