5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

digコマンド、DNSのメモ書き

Posted at

###digコマンド

digコマンドについてのメモ書きです。
digコマンドはDNSサーバに問い合わせて、ドメイン名からIPアドレなどを調査できたりします。

###権威DNSサーバ(コンテンツサーバ)とキャッシュDNSサーバ

digコマンドの前に、DNSサーバについてです。

参考サイト
DNSサーバとは
奥が深いDNSサーバーとdigコマンド

権威DNSサーバ(コンテンツサーバとも呼ばれる)とキャッシュDNSサーバがある。上の参考サイトが、DNSの再帰的な名前解決についてわかりやすく説明しています。DNSの名前解決はインターネットの根幹をなすものなので、どの階層(ノード)の権威DNSコンテンツサーバは複数台稼働している。

#####DNSサーバを指定しない場合、macOS

ドメイン名からIPアドレスを知りたい場合、「dig ドメイン名」コマンドを実行すればいいという情報が多かったのですが、自分のmacOSだとオプションでDNSサーバを指定しないと結果を返してくれませんでした。
(VMでCentOS7を起動してみましたが、CentOS7だとDNSサーバを指定しなくても結果を返してくれました。)

$ dig yahoo.co.jp

; <<>> DiG 9.10.6 <<>> yahoo.co.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 33409
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;yahoo.co.jp.			IN	A

;; Query time: 74 msec
;; SERVER: 2404:1a8:7f01:b::3#53(2404:1a8:7f01:b::3)
;; WHEN: Mon May 11 14:58:57 JST 2020
;; MSG SIZE  rcvd: 29

結果はstatusがREFUSEDで、ANSWER SECTIONも返してくれません。

#####DNSサーバを指定する場合(8.8.8.8はグーグルのPublicDNS)、macOS

$ dig @8.8.8.8 yahoo.co.jp

; <<>> DiG 9.10.6 <<>> @8.8.8.8 yahoo.co.jp
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29602
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
yahoo.co.jp.		244	IN	A	182.22.59.229
yahoo.co.jp.		244	IN	A	183.79.135.206

;; Query time: 157 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon May 11 14:58:02 JST 2020
;; MSG SIZE  rcvd: 72

結果はstatusがNOERRORで、ANSER SECTIONでAレコードを返してくれます。

#####DNSサーバを指定しない場合、CentOS7

$ dig yahoo.co.jp

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-1 <<>> yahoo.co.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2536
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;yahoo.co.jp.			IN	A

;; ANSWER SECTION:
yahoo.co.jp.		169	IN	A	183.79.135.206
yahoo.co.jp.		169	IN	A	182.22.59.229

;; AUTHORITY SECTION:
yahoo.co.jp.		160	IN	NS	ns02.yahoo.co.jp.
yahoo.co.jp.		160	IN	NS	ns11.yahoo.co.jp.
yahoo.co.jp.		160	IN	NS	ns12.yahoo.co.jp.
yahoo.co.jp.		160	IN	NS	ns01.yahoo.co.jp.

;; ADDITIONAL SECTION:
ns01.yahoo.co.jp.	873	IN	A	118.151.254.133
ns02.yahoo.co.jp.	741	IN	A	118.151.254.149
ns11.yahoo.co.jp.	521	IN	A	124.83.255.37
ns12.yahoo.co.jp.	132	IN	A	124.83.255.101

;; Query time: 18 msec
;; SERVER: 10.0.2.3#53(10.0.2.3)
;; WHEN: 月  5月 11 19:42:22 JST 2020
;; MSG SIZE  rcvd: 212

DNSを指定しなくても結果を返してくれます。ANSER SECTIONだけでなく、AUTHORITY SECTION、ADDITIONAL SECTIONも返してくれます。

#####dig -x、CentOS7

-xオプションは逆引きです。IPアドレスから対応するホストのネームを返してくれます。

$ dig -x 183.79.135.206

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.2 <<>> -x 183.79.135.206
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51797
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 5

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

;; ANSWER SECTION:
206.135.79.183.in-addr.arpa. 900 IN	PTR	f1.top.vip.kks.yahoo.co.jp.

;; AUTHORITY SECTION:
79.183.in-addr.arpa.	900	IN	NS	ns12.yahoo.co.jp.
79.183.in-addr.arpa.	900	IN	NS	ns02.yahoo.co.jp.
79.183.in-addr.arpa.	900	IN	NS	ns01.yahoo.co.jp.
79.183.in-addr.arpa.	900	IN	NS	ns11.yahoo.co.jp.

;; ADDITIONAL SECTION:
ns01.yahoo.co.jp.	828	IN	A	118.151.254.133
ns02.yahoo.co.jp.	401	IN	A	118.151.254.149
ns11.yahoo.co.jp.	341	IN	A	124.83.255.37
ns12.yahoo.co.jp.	123	IN	A	124.83.255.101

;; Query time: 22 msec
;; SERVER: 10.0.2.3#53(10.0.2.3)
;; WHEN: 月  5月 11 19:42:57 JST 2020
;; MSG SIZE  rcvd: 236

ホストのネームだけ知りたければ、hostやnslookupでもできます。
dig -xコマンドのANSWER SECTIONと同じ結果です。

$ host 183.79.135.206
206.135.79.183.in-addr.arpa domain name pointer f1.top.vip.kks.yahoo.co.jp.

$ nslookup 183.79.135.206
206.135.79.183.in-addr.arpa	name = f1.top.vip.kks.yahoo.co.jp.

Authoritative answers can be found from:
79.183.in-addr.arpa	nameserver = ns02.yahoo.co.jp.
79.183.in-addr.arpa	nameserver = ns12.yahoo.co.jp.
79.183.in-addr.arpa	nameserver = ns01.yahoo.co.jp.
79.183.in-addr.arpa	nameserver = ns11.yahoo.co.jp.
ns01.yahoo.co.jp	internet address = 118.151.254.133
ns02.yahoo.co.jp	internet address = 118.151.254.149
ns11.yahoo.co.jp	internet address = 124.83.255.37
ns12.yahoo.co.jp	internet address = 124.83.255.101

hostの-aオプションはAllです。ネームサーバ(NSレコード)の情報なども返してくれます。
NSレコードには、ドメインの権威DNSサーバのホスト名が登録されています。

$ host -a 183.79.135.206
Trying "206.135.79.183.in-addr.arpa"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44100
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;206.135.79.183.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
206.135.79.183.in-addr.arpa. 900 IN	PTR	f1.top.vip.kks.yahoo.co.jp.

;; AUTHORITY SECTION:
79.183.in-addr.arpa.	194	IN	NS	ns11.yahoo.co.jp.
79.183.in-addr.arpa.	194	IN	NS	ns12.yahoo.co.jp.
79.183.in-addr.arpa.	194	IN	NS	ns02.yahoo.co.jp.
79.183.in-addr.arpa.	194	IN	NS	ns01.yahoo.co.jp.

;; ADDITIONAL SECTION:
ns01.yahoo.co.jp.	286	IN	A	118.151.254.133
ns02.yahoo.co.jp.	99	IN	A	118.151.254.149
ns11.yahoo.co.jp.	33	IN	A	124.83.255.37
ns12.yahoo.co.jp.	286	IN	A	124.83.255.101

-t NSオプションでも、ドメインのNSレコードを返してくれます。-tはタイプの指定です。

参考サイト
6.1 NSレコードを取得する方法(-t NS)

$  dig -t NS yahoo.co.jp

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.2 <<>> -t NS yahoo.co.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22882
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 5

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;yahoo.co.jp.			IN	NS

;; ANSWER SECTION:
yahoo.co.jp.		663	IN	NS	ns12.yahoo.co.jp.
yahoo.co.jp.		663	IN	NS	ns11.yahoo.co.jp.
yahoo.co.jp.		663	IN	NS	ns01.yahoo.co.jp.
yahoo.co.jp.		663	IN	NS	ns02.yahoo.co.jp.

;; ADDITIONAL SECTION:
ns01.yahoo.co.jp.	749	IN	A	118.151.254.133
ns02.yahoo.co.jp.	268	IN	A	118.151.254.149
ns11.yahoo.co.jp.	787	IN	A	124.83.255.37
ns12.yahoo.co.jp.	787	IN	A	124.83.255.101

;; Query time: 6 msec
;; SERVER: 10.0.2.3#53(10.0.2.3)
;; WHEN: 火  5月 12 09:58:18 JST 2020
;; MSG SIZE  rcvd: 180

#####dig ANY

digコマンドでANYを指定すると、Aレコードだけでなく、NS、MX、SOA、TXTレコードなども一緒に返してくれます。下の実行結果はレコードが多いので、一部のみ抜粋しています。

$  dig ANY yahoo.co.jp @8.8.8.8

; <<>> DiG 9.10.6 <<>> ANY yahoo.co.jp @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43608
;; flags: qr rd ra; QUERY: 1, ANSWER: 17, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;yahoo.co.jp.			IN	ANY

;; ANSWER SECTION:
yahoo.co.jp.		699	IN	SOA	yahoo.co.jp. postmaster.yahoo.co.jp. 2005110010 1800 900 86400 900
yahoo.co.jp.		699	IN	CAA	0 issue "globalsign.com"
yahoo.co.jp.		699	IN	CAA	0 issue "cybertrust.ne.jp"
yahoo.co.jp.		699	IN	MX	10 mx5.mail.yahoo.co.jp.
yahoo.co.jp.		699	IN	MX	10 mx2.mail.yahoo.co.jp.
yahoo.co.jp.		699	IN	TXT	"google-site-verification=GvbYgNin-mY73VbS4IJK2D8nI3tHEf2NpRdy76VYqBU"
yahoo.co.jp.		699	IN	TXT	"v=spf1 include:spf.yahoo.co.jp ~all"
yahoo.co.jp.		699	IN	NS	ns11.yahoo.co.jp.
yahoo.co.jp.		699	IN	NS	ns12.yahoo.co.jp.
yahoo.co.jp.		99	IN	A	183.79.135.206
yahoo.co.jp.		99	IN	A	182.22.59.229

#####dig +short

+shortオプションを指定すると、AレコードのIPアドレスのみを返してくれます。

$ dig yahoo.co.jp +short @1.1.1.1
182.22.59.229
183.79.135.206

#逆引き
$ dig -x 182.22.59.229 +short @1.1.1.1
f1.top.vip.ssk.yahoo.co.jp.

#####DNSキャッシュサーバ情報の取得と指定

+short +identifyオプションで使っているDNSキャッシュサーバ情報のIPアドレスを返してくれる。

参考サイト
9 DNS応答を返すキャッシュDNSサーバの調べ方(+short +identify)
DNSキャッシュサーバ 【 DNS cache server 】
->問い合わせ結果は一定期間保存され、期間内に同じ問い合わせが来た時には外部サーバへ新たに問い合わせることはせず自ら返答する。これにより上位DNSサーバの負担が軽減され、利用者への応答時間も短縮される。

$ dig yahoo.co.jp +short +identify
182.22.59.229 from server 10.0.2.3 in 15 ms.
183.79.135.206 from server 10.0.2.3 in 15 ms.

+short +identifyオプションを指定しないでも最後に返してくれるね。SERVER: 10.0.2.3#53(10.0.2.3)

$ dig yahoo.co.jp
~省略
;; Query time: 6 msec
;; SERVER: 10.0.2.3#53(10.0.2.3)
;; WHEN: 火  5月 12 10:50:11 JST 2020
;; MSG SIZE  rcvd: 212

$ dig yahoo.co.jp +short +identify @1.1.1.1
182.22.59.229 from server 1.1.1.1 in 5 ms.
183.79.135.206 from server 1.1.1.1 in 5 ms.

また、DNSキャッシュサーバを指定する場合、@オプションで指定する。

$ dig yahoo.co.jp @1.1.1.1
~省略
;; Query time: 5 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: 火  5月 12 10:51:37 JST 2020
;; MSG SIZE  rcvd: 83

#####DNSルートサーバ(ルートネームサーバ)情報の取得、CentOS7

オプションを何も指定しないと、13あるDNSルートサーバの情報が取得できます。

$ dig

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.2 <<>>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27196
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 14

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;.				IN	NS

;; ANSWER SECTION:
.			17485	IN	NS	i.root-servers.net.
.			17485	IN	NS	c.root-servers.net.
.			17485	IN	NS	m.root-servers.net.
以下省略

#####他によく使うdigコマンド

他によく使う、もしくは使う機会がありそうなdigコマンドのメモです。コマンドのみ、実行結果省略です。環境はCentos7。

#+trace。ルートネームサーバから再帰的な解決の様子がトレースできる。
$ dig yahoo.co.jp +trace

# +multiline, 出力結果の整形
$ dig yahoo.co.jp  +multiline

# SOAレコードを取得
$ dig -t SOA yahoo.co.jp

#-hオプション。オプション一覧と簡単な使い方のヘルプ。
$ dig -h


#####digコマンド参考サイト

CMAN,nslookup(dig)テスト【DNSサーバ接続確認】
->ウェブサービス。digなどを実行してくれる。
【 dig 】コマンド――ドメイン名からIPアドレスを調べる
奥が深いDNSサーバーとdigコマンド
digコマンドの使い方

#####https、ssl化の参考サイト

自分で発行したサーバー証明書(オレオレ証明書)をブラウザに登録する方法
->ローカル環境でオレオレ証明書を使ってhttpsアクセスする際、ブラウザの警告をなくす方法。実際にこのあたりはやらないからいいかな、、、

#####その他の参考サイト
curlコマンドでapiを叩く

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?