Engineering Note

プログラミングなどの技術的なメモ

2.1 コマンドについて(dig)

dns-icon

前回DNSのレコードについて書きましたが、正直説明だけ読んでもいまいちピンとこないかも知れませんが、実際にコマンドを用いてレコードを問い合わせたほうが少し実感がわいてくると思います。

そこで今回は、DNSでは欠かせないツールであるdignslookupについて、簡単な使い方を学んでいきたいと思います。

 

dig

digは「domain information groper」の略で、主にUNIX系のOSでレコードを問い合わせるのに使用されます。

なお、digが見つからない場合は以下を実行しインストールする必要があります。

 

 # CentOSの場合
 > yum install bind-utils

 # Ubuntuの場合
 > apt install dnsutils

 

以下でdigのhelpを表示します。

 

 > dig -h
 Usage:  dig [@global-server] [domain] [q-type] [q-class] {q-opt}
             {global-d-opt} host [@local-server] {local-d-opt}
             [ host [@local-server] {local-d-opt} [...]]

 

レコードを問い合わせる

まずは単純にドメイン名だけを入力するとAレコードが返ってきます。

 

 > dig www.google.com
 ...
 ;; ANSWER SECTION:
 www.google.com.         251     IN      A       172.217.26.100
 ...

 

他にも出力されていますが、上記ではANSWER SECTIONだけを抜粋しています

CNAMEレコードがある場合はその上に表示されます。

上記のwww.google.comのドメインにおいてはTTLが251秒、レコードクラスがIN、レコード名がA、そしてIPアドレスが172.217.26.100と返答しています。

レコードクラスは問い合わせを行うネットワーククラスで、通常はInternetを指すINを指定し、デフォルト値もINとなっています。

なお、ネットワーククラスにANYを指定すると全てのネットワーククラスが問い合わせ対象になります。

TTLはTime To Live(生存時間)の略で、問い合わせの依頼を受けたDNSサーバがキャッシュとして保存しておく時間を意味し、上記時間が経過すると、そのデータは無効となります。

Aレコード以外を指定する場合はドメイン名の後に問い合わせをしたいレコードタイプを入力します。

 

 > dig google.com MX
 ...
 ;; ANSWER SECTION:
 google.com.             263     IN      MX      50 alt4.aspmx.l.google.com.
 google.com.             263     IN      MX      10 aspmx.l.google.com.
 google.com.             263     IN      MX      40 alt3.aspmx.l.google.com.
 google.com.             263     IN      MX      30 alt2.aspmx.l.google.com.
 google.com.             263     IN      MX      20 alt1.aspmx.l.google.com.
 ...

 

上記ではメールサーバの問い合わせを行っています。

複数のサーバのデータがあり、MXの後に数字が記載されていますが、これがプリファレンス値となり、この値が小さいほど優先順位が高く設定されています。

またレコードタイプをANYとするとそのドメインに関する全ての情報が返ってきます。

さらにレコードタイプにAXFRを指定するとドメインの権威サーバへ直接問い合わせることができますが、これについてはゾーン転送が許可されているホストから実行しないと情報が得られません。

 

逆引きを行う

本来逆引き用のレコードの記法に則れば、前回説明したように以下のようなコマンドを実行します。

 

 # 192.168.1.1の場合
 > dig 1.1.168.192.in-addr.arpa PTR

 

しかし、これだと入力が面倒なので、digでは"-x"オプションの後にIPアドレスを入力することで簡単に逆引きを行うことができます。

 

 > dig -x 192.168.1.1

 

バッチ処理

digコマンドに"-f"オプションをつけるとバッチ処理を行うことができ、複数のドメインやレコードを参照する際にはとても便利です。

まず処理を行う前にバッチファイルを作成します。

 

# dig.bat
 www.google.com
 google.com NS
 google.com MX
 % コメント

 

上記の"%"で始まる文字列はコメントとして扱われます。

そして、以下コマンドで問い合わせを自動化できます。

 

 > dig -f dig.bat

 

以上がdigコマンドの基本的な使い方になります。

次回はWindowsのコマンドであるnslookupについて学んでいきます。

 

参考書籍

改訂新版 BIND9によるDNSサーバ構築 (エッセンシャルソフトウェアガイドブック)