digコマンドで諸々することがあって使い方がいまいちだったので調べた。
digコマンドとは?
DNSサーバに対して問い合わせを行い、その結果を表示してくれる。
簡単に使ってみる
google.comのIPアドレスを調べてみる。このようにドメインからIPアドレスを求めることを正引きという。
$ dig google.com
; <<>> DiG 9.10.6 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23074
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 46 IN A 216.58.196.238
;; Query time: 31 msec
;; SERVER: 192.168.11.1#53(192.168.11.1)
;; WHEN: Thu Apr 22 01:05:38 JST 2021
;; MSG SIZE rcvd: 55
;; ANSWER SECTION:
と書いている部分で、216.58.196.238
と書いていることがわかる。これがgoogle.com
のIPアドレス。
今回のようにDNSサーバーからの返答はANSWER SECTION
に記述してある。
とりあえず正引きのみしたいとき(余計な情報はいらないとき)
+short
オプションを利用する。
dig +short google.com
172.217.31.142
こんか感じでシンプルにIPアドレスのみ表示される。
利用するDNSサーバーを指定したいとき
問い合わせるDNSサーバーを指定することもできる。
@8.8.8.8
のように@をつけてDNSサーバーのIPアドレスを指定する。
ちなみに、8.8.8.8
はgoogleのGoogle Public DNS。
余談だが、Public DNSは他にも以下のようなものがある。
- Cloudflare社とAPNICが運営する1.1.1.1
- IBM社などが共同運営するQuad9による9.9.9.9
dig @8.8.8.8 google.com
ドメインに関連する様々なレコードの情報が知りたいとき
ANY
オプションを利用する。
dig google.com ANY
結果のANSWER SECTION
のみ抽出して表示する。
;; ANSWER SECTION:
google.com. 263 IN A 172.217.26.14
google.com. 263 IN AAAA 2404:6800:4004:809::200e
google.com. 21563 IN NS ns2.google.com.
google.com. 3563 IN TXT "google-site-verification=wD8N7i1JTNTkezJ49swvWW48f8_9xveREV4oB-0Hf5o"
google.com. 3563 IN TXT "apple-domain-verification=30afIBcvSuDV2PLX"
google.com. 563 IN MX 30 alt2.aspmx.l.google.com.
google.com. 3563 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
google.com. 21563 IN CAA 0 issue "pki.goog"
google.com. 23 IN SOA ns1.google.com. dns-admin.google.com. 369489900 900 900 1800 60
google.com. 21563 IN NS ns1.google.com.
google.com. 563 IN MX 10 aspmx.l.google.com.
google.com. 3563 IN TXT "docusign=1b0a6754-49b1-4db5-8540-d2c12664b289"
google.com. 3563 IN TXT "google-site-verification=TV9-DBe4R80X4v0M4U_bd_J9cpOJM0nikft0jAgjmsQ"
google.com. 3563 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
google.com. 21563 IN NS ns3.google.com.
google.com. 563 IN MX 20 alt1.aspmx.l.google.com.
google.com. 563 IN MX 50 alt4.aspmx.l.google.com.
google.com. 563 IN MX 40 alt3.aspmx.l.google.com.
google.com. 3563 IN TXT "globalsign-smime-dv=CDYX+XFHUw2wml6/Gb8+59BsH31KzUr6c1l2BPvqKX8="
google.com. 21563 IN NS ns4.google.com.
google.com. 3563 IN TXT "v=spf1 include:_spf.google.com ~all"
どのDNSサーバーが応答してくれたか知りたいとき
+identify
オプションを利用する
今回は例として、+short
オプションと併用する
dig google.com +short +identify
172.217.31.142 from server 192.168.11.1 in 39 ms.
192.168.11.1
から応答が返ってきたことがわかる
権威サーバーに問い合わせてみたいとき
+norecurse
オプションを利用する。
dig google.com +norecurse
まとめ
好きなコマンドはdig
です。って言えるようになりたい。