テックブログ

技術ネタ

digを導入してみたお話

こんにちは、技術部のkyomoと申します。

今日はdigコマンドのお話を少ししたいと思います。

domain information groper、略してdig。
上記を訳すと「ドメイン情報を手探りするもの」となります。

dig、和訳すると「掘る」なので
「ドメインの情報を掘るように探すからdigってコマンドなんだなーなるほどなー」

と勘違いしておりました。恥ずかしい。
先日CentOS7のサーバを個人的に作成した際にdigコマンドが使えなかったので
ちょっとその時のお話を書きますね。

何気なしにそのCentOS7のサーバでdigで情報を引こうと思ったら引けませんでした。

# dig google.com
-------------- -------------- -------------- 
-bash: dig:command not found
-------------- -------------- -------------- 

導入してみます。が、単純にyumでdigを入れることはできません。

# yum install dig
-------------- -------------- --------------
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
パッケージ dig は利用できません。
エラー: 何もしません
-------------- -------------- --------------

CentOS7なのでbind-utilsを入れる必要があります。

# yum install bind-utils
-------------- -------------- --------------
~略
インストール:
  bind-utils.x86_64 32:9.9.4-29.el7_2.3
依存性関連をインストールしました:
  bind-libs.x86_64 32:9.9.4-29.el7_2.3
-------------- -------------- --------------

パッケージの中身は下記のようになっています。
bind-utilsを導入することでnslookupを利用することもできるようになります。

# rpm -ql bind-utils | grep -v ".gz"
-------------- -------------- --------------
/etc/trusted-key.key
/usr/bin/dig
/usr/bin/host
/usr/bin/nslookup
/usr/bin/nsupdate
-------------- -------------- --------------

しかしまだANSWER SECTIONが返ってきません

# dig google.com
-------------- -------------- -------------- -------------- -------------
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> +edns google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: FORMERR, id: 45832
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; WARNING: EDNS query returned status FORMERR - retry with '+noedns'

;; QUESTION SECTION:
;google.com. IN A

;; Query time: 0 msec
;; SERVER:
;; WHEN:
;; MSG SIZE rcvd: 28
-------------- -------------- -------------- -------------- -------------

「WARNING: EDNS query returned status FORMERR – retry with ‘+noedns’」
このWARNINGは以前ykinjo先輩が「Bash on Windows」をインストールした際にも出ていました。

WARNINGに記載されているように「+noedns」をオプションとしてもう一度引いてみると
…引けました!

# dig +noedns google.com
-------------- -------------- -------------- -------------- -------------
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> +noedns google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12389
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;google.com. IN A

;; ANSWER SECTION:
google.com. 121 IN A 216.58.221.14

;; AUTHORITY SECTION:
google.com. 28619 IN NS ns4.google.com.
google.com. 28619 IN NS ns1.google.com.
google.com. 28619 IN NS ns2.google.com.
google.com. 28619 IN NS ns3.google.com.

;; ADDITIONAL SECTION:
ns1.google.com. 28622 IN A 216.239.32.10
ns2.google.com. 28622 IN A 216.239.34.10
ns3.google.com. 28622 IN A 216.239.36.10
ns4.google.com. 28622 IN A 216.239.38.10

;; Query time: 2 msec
;; SERVER:
;; WHEN:
;; MSG SIZE rcvd: 180
-------------- -------------- -------------- -------------- --------------

別の環境のCentOS7ではオプション無しでも引けたので問い合わせ先の問題だった様子。

$ dig yahoo.com
-------------- -------------- -------------- -------------- -------------
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> yahoo.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43712
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
yahoo.com. 596 IN A 98.138.253.109
yahoo.com. 596 IN A 206.190.36.45
yahoo.com. 596 IN A 98.139.183.24

;; Query time: 0 msec
;; SERVER: 158.205.237.131#53(158.205.237.131)
;; WHEN: 日 9月 18 21:27:55 JST 2016
;; MSG SIZE rcvd: 86
-------------- -------------- -------------- -------------- -------------

毎回オプションを付けてdigするのが億劫だったので
ホームディレクトリに「.digrc」ファイルを作成してオプションを省略して問い合わせできるようにしました。

$ cat .digrc
--------------
+noedns
--------------

下記のように記載すればANSWER SECTION部分だけを見ることも可能です。

$ cat .digrc
--------------
+noedns
+noall
+answer
--------------

$ dig google.com
-------------- -------------- --------------
google.com. 101 IN A 216.58.221.14
-------------- -------------- --------------

個人的備忘録のような形になってしまいましたが今回はここまでで失礼します。
とりあえずdigが引けるようになったので活用します。

実績数30,000件!
サーバーやネットワークなど
ITインフラのことならネットアシストへ、
お気軽にご相談ください