本連載ではネットワーク管理の基本コマンドを解説していきます。普段使うもの以外のオプションの確認やおさらいをしていきましょう。
本連載では、ネットワーク管理の基本コマンドを順を追って紹介していきます。基本書式と用法、主要なオプション、用例サンプルを示しますので、manやhelp代わりに通読し、各コマンドでできることを順次おさらいしてみてください。初回となる今回は、DNSサーバーへの問い合わせを行う「dig」コマンドの解説です。
DNSサーバーが正常に動作しているかどうか確認したい、問題がどこにあるかを突き止めたい、そんな時に「dig」を利用します。domain information groper(ドメイン情報探索ツール)という名前の由来通り、DNSサーバーに対し問い合わせを行い、その応答結果を表示するコマンドです。
IPアドレスとドメイン名をひも付け、ネットワーク経路を制御する機能を提供するサーバーのことを、ネームサーバーと呼びます。ネームサーバーには幾つか種類がありますが「BIND」を用いるのが一般的です。
digコマンドはBINDへの問い合わせに利用するコマンドです。名前解決の状況確認やトラブルシューティングといったネームサーバーの管理用途に利用されます。
機能的にはnslookupと共通項が多いものの、BIND 9以降はnslookupが非推奨になっており、将来のリリースでは廃止される可能性があります。nslookupよりも詳細な情報を確認できるdigを利用するようにしましょう。
digの基本的な書式は、必要な場合はdigオプションを指定し、問い合わせるネームサーバー(例:@dns.example.com、またはxx.xx.xx.xxのようなIPアドレス)、検索するドメイン、クエリータイプ、クエリーオプションの順に引数を指定します。
ネームサーバーを省略した場合は、/etc/resolv.confのnameserver行で定義されたネームサーバーに問い合わせが行われます。resolv.confの定義が複数ある場合は先頭行にあるネームサーバーに問い合わせます。
オプション | 意味 |
---|---|
domain=NAME | デフォルトドメイン名をNAMEに指定する |
retry=# | 再試行の回数を#に設定する |
time=# | タイムアウト時間を#秒に設定する |
-x | 逆アドレス変換を指定する |
+answer | Answerセクションのみ表示する(+noallと併用) |
+multiline | 出力結果を整形する |
+noall | 何も表示しない |
+norecurse | 再帰問い合わせしない |
+stats | 問い合わせの統計を表示する |
+trace | ルートDNSから問い合わせを行い、結果を順番に出力する |
オプション | 意味 |
---|---|
A | ネットワークアドレス |
ANY | 指定されたドメインの全情報 |
HINFO | ホスト情報 |
MX | メールアドレスに使用するドメイン名 |
NS | ゾーン権限を持つネームサーバー |
SOA | ゾーン情報が記述されたレコード |
TXT | 任意の文字列 |
オプション | 意味 |
---|---|
-4 | IPv4で問い合わせる |
-6 | IPv6で問い合わせる(接続不可の場合はIPv4) |
-p # | ポート番号を#に指定する |
dig ホスト名
ネームサーバー名(ホスト名)からそのIPアドレスを調べる場合は、引数にネームサーバー名だけを指定します。するとサーバーとのやりとりが表示され、「ANSWER SECTION」に問い合わせに対する回答(この実行例ではネームサーバーに対応するIPアドレス)が表示されます。
なお、「QUESTION SECTION」には問い合わせ内容、「AUTHORITY SECTION」には問い合わせ先に権威がある場合の情報、「ADDITIONAL SECTION」にはホストのIPアドレスなど付帯情報が表示されます。
下図は、digコマンドを使って、「atmarkit.co.jp」のIPアドレスを確認する場合の入出力例です。
$ dig atmarkit.co.jp ; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> atmarkit.co.jp ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60549 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;atmarkit.co.jp. IN A ;; ANSWER SECTION: atmarkit.co.jp. 299 IN A 202.218.219.147
dig -x IPアドレス
先のサンプルとは逆に、IPアドレスを基に、ネームサーバー名を調べたい場合は、digオプションに「-x」を指定し、問い合わせたいIPアドレスを引数とします。
すると、検索ドメインは「xxx.xxx.xxx.xxx.in-addr.arpa」の形式に変換されて実行されます。なお、正引きの場合はAレコード、逆引きの場合はPTRレコードが返されますが、明示することも可能です(ex. dig -x 8.8.4.4 ptr)。
$ dig -x 8.8.4.4 ・ ・ ・ ;; ANSWER SECTION: 4.4.8.8.in-addr.arpa. 21599 IN PTR google-public-dns-b.google.com.
dig ホスト名 ns
dig ネームサーバー soa
指定したドメインに複数のネームサーバーがある場合、クエリータイプに「NS」を指定すると、ネームサーバーのリストを表示できます。
また、リストに表示されたネームサーバーに対しクエリータイプ「SOA」で問い合わせると、プライマリネームサーバーを確認することができます(以下の実行例では「itmns01.itmedia.co.jp」がプライマリネームサーバー)。
$ dig atmarkit.co.jp ns ・ ・ ・ ;; ANSWER SECTION: atmarkit.co.jp. 20974 IN NS dridcns01.itmedia.co.jp. atmarkit.co.jp. 20974 IN NS idcns01.itmedia.co.jp. atmarkit.co.jp. 20974 IN NS itmns02.itmedia.co.jp. atmarkit.co.jp. 20974 IN NS itmns01.itmedia.co.jp. $ dig dridcns01.itmedia.co.jp soa ・ ・ ・ ;; AUTHORITY SECTION: itmedia.co.jp. 1799 IN SOA itmns01.itmedia.co.jp. postmaster.itmedia.co.jp. 2014073101 3600 600 1209600 3600
Copyright © ITmedia, Inc. All Rights Reserved.