(最終更新月:2023年5月)
✔このような方へ向けて書かれた記事となります
「digコマンドの使い方が知りたい」
「digコマンドが役立つ場面を教えて」
「digコマンドの実例が見てみたい」
✔当記事を通じてお伝えすること
- digコマンドとは?
- digコマンドの書き方やオプションの一覧
- digコマンドの実例
当記事では、digコマンドについての基本的な使い方はもちろん、オプション一覧や応用した方法を具体例付きで詳しく解説していきます。
ぜひ最後までご覧ください。
digコマンドについて知っておくべき基礎事項4選
digコマンドを扱う上での基本的なことをまずは見ていきます。
digコマンドを使いこなすためには、必ず理解しておくことが必要です。
- digコマンドとは
- 基本的な構文
- クエリとは?
- なぜdigコマンドを知るべきか
digコマンドとは
digコマンドは、DNS(ドメインネームシステム)サーバーに問い合わせをおこない、さまざまな情報を取得するためのネットワーク関連のコマンドラインツールです。
digコマンドを使用することで、ドメイン名やIPアドレスの情報を調べたり、DNSサーバーの応答時間を測定したりすることができます。
digとは、Domain Information Groper(ドメイン情報グローパー)の略称です。
基本的な構文
基本的なdigコマンドの構文は以下のようになります。
dig [オプション] [ドメイン名] [クエリタイプ]
簡易的な例としては、「dig + ドメイン名」で、以下のようになります。
$ dig itc.tokyo
; <<>> DiG 9.16.1-Ubuntu <<>> itc.tokyo
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41726
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
digコマンドのクエリとは?
digコマンドのクエリとは、DNSサーバーへの問い合わせ種類を指定するもの。
なぜならDNSサーバーには、さまざまな情報がDNSレコードと呼ばれる形式で格納されており、個別に問い合わせをする必要があるからです。
以下は、いくつかの一般的なクエリタイプの例です。
- A: IPv4アドレス
- AAAA: IPv6アドレス
- MX: メール交換サーバーの情報
- CNAME: キャノニカル名(別名)
- NS: ドメインのネームサーバー
- PTR: IPアドレスからドメイン名(逆引き)
- TXT: テキスト情報(SPFレコードやDKIMレコードなど)
- SOA: Start of Authority(権威データの開始)
特定のクエリタイプを指定して問い合わせる場合は、以下のようにコマンドを実行します。
dig example.com MX
クエリタイプを指定せずにdigコマンドを実行すると、デフォルトでAレコードが問い合わせられます。
なぜdigコマンドを知るべきか
digコマンドは、ネットワーク管理者やシステム管理者にとって重要なツールです。
DNSの問題をトラブルシューティングする際や、ネットワークのパフォーマンスを調べる際に役立ちます。
ウェブ開発者やサイト運営者にとっても、digコマンドはドメイン設定やサーバー管理に役立ちます。
digコマンドを理解しておくことで、効率的に問題を解決するスキルを身につけることができます。
digコマンドのオプション一覧
digコマンドにはさまざまなオプションが存在します。
参考にしていろいろと試してみてください。
オプション名 | 説明 | 例 |
---|---|---|
+short | 結果を簡潔な形式で表示する。 | dig example.com A +short |
+trace | DNSのルートサーバーからのトレース結果を表示する。 | dig example.com A +trace |
+time=秒数 | タイムアウトまでの秒数を指定する。 | dig example.com A +time=5 |
@DNSサーバー | 問い合わせるDNSサーバーを指定する。 | dig @8.8.8.8 example.com A |
+recurse | 再帰的な問い合わせを行う。 | dig example.com A +recurse |
+norecurse | 非再帰的な問い合わせを行う。 | dig example.com A +norecurse |
+aaonly | Authoritative Answerのみ表示する。 | dig example.com A +aaonly |
+noall | すべてのデフォルトのフラグをオフにする。 | dig example.com A +noall |
+answer | ANSWERセクションのみ表示する。 | dig example.com A +noall +answer |
+stats | 統計情報を表示する。 | dig example.com A +stats |
+multiline | 複数行の形式で結果を表示する。 | dig example.com A +multiline |
digコマンドのインストール
もしdigコマンドのインストールが済んでいないなら、以下の方法で準備しましょう。
OSにより、インストール方法は異なります。
- Windowsでのインストール方法
- macOSでのインストール方法
- Linuxでのインストール方法
Windowsでのインストール方法
Windowsにはデフォルトでdigコマンドがインストールされていません。
以下の手順でインストールしましょう。
- BINDの公式サイト(https://www.isc.org/bind/)からWindows用のBINDインストーラーをダウンロード
- ダウンロードしたインストーラーを実行し、BINDをインストール
- インストールが完了したら、コマンドプロンプトを開いて「dig」と入力し、正常にインストールされたことを確認
macOSでのインストール方法
macOSにはデフォルトでdigコマンドがインストールされています。
そのため、追加のインストールは不要です。
Linuxでのインストール方法
Linuxの場合、ディストリビューションによってインストール方法が異なります。
以下に、主要なディストリビューションごとのインストール方法を示します。
Ubuntu/Debian系
sudo apt install dnsutils
Fedora
sudo dnf install bind-utils
CentOS/RHEL
sudo yum install bind-utils
digコマンドの実践的な使い方
digコマンドを実際に使ってみましょう。
以下がいくつかの具体例です。
- ドメイン名からIPアドレスを調べる方法
- IPアドレスからドメイン名を調べる方法
- メールサーバー情報を調べる方法
- DNSサーバーの応答時間を測定する方法
ドメイン名からIPアドレスを調べる方法
クエリ「A」は、Aレコードを意味します。
指定しなくとも、デフォルトがAレコードです。
dig example.com A
IPアドレスからドメイン名を調べる方法
逆引きのクエリ「PTR」を使います。
dig -x 192.0.2.1 PTR
メールサーバー情報を調べる方法
メールサーバーは「MX」クエリが該当します。
dig example.com MX
DNSサーバーの応答時間を測定する方法
+statsオプションで、統計情報を表示。
dig example.com +stats
digコマンドの応用的な使い方
応用した使い方も見ていきましょう。
具体的な方法を知れば、実践で即使えます。
- 特定のDNSサーバーに問い合わせる方法
- DNSレコードの種類を指定して問い合わせる方法
特定のDNSサーバーに問い合わせる方法
DNSサーバーを指定したうえで、ドメイン情報を取得します。
dig @8.8.8.8 example.com A
DNSサーバー内のキャッシュ情報などを調べるときに有効です。
DNSレコードの種類を指定して問い合わせる方法
レコード種類を指定するのは、クエリの役割です。
dig example.com TXT
トラブルシューティングと実例
よくあるトラブルとその対処方法を見ていきましょう。
なぜなら事前に知っておけば、回避できるものもあるからです。
- よくあるエラーメッセージと対処法
- digコマンドを使ったトラブルシューティング例
よくあるエラーメッセージと対処法
よくあるエラーメッセージとその対処法をご紹介します。
connection timed out; no servers could be reached
DNSサーバーに到達できなかった場合のエラー。
ネットワーク接続や指定したDNSサーバーの状態を確認してください。
NXDOMAIN
指定したドメインが存在しない場合のエラー。
ドメイン名のスペルミスや存在しないドメインを指定していないか確認してください。
digコマンドを使ったトラブルシューティング例
例えば、メールが送信できない問題が発生した場合、digコマンドを使ってMXレコードを調べ、設定が正しいか確認することができます。
dig example.com MX
DNSによる問題を調べられるのです。
他のDNSツールとの比較
ネットワーク関連のツールと比較してみましょう。
使い分けることでより効率よく作業できるようになります。
- nslookupとの違い
- hostコマンドとの違い
- それぞれのツールの適用シーン
nslookupとの違い
nslookupは、DNS情報を調べるためのコマンドラインツールです。
digコマンドに比べて機能が限定的で、出力のカスタマイズが難しい点がデメリットといえます。
digコマンドはより詳細な情報を取得でき、柔軟なオプションが利用できるため、多くのシステム管理者に好まれています。
hostコマンドとの違い
hostコマンドもDNS情報を調べるためのコマンドラインツールです。
digコマンドに比べて出力結果がシンプルで、簡単な検索に適しています。
digコマンドは、より詳細な情報やカスタマイズが必要な場合に適しているといえるでしょう。
それぞれのツールの適用シーン
上記のコマンドをまとめて、それぞれの適用シーンをまとめました。
- digコマンド: 詳細なDNS情報が必要な場合や、トラブルシューティングに適している
- nslookup: シンプルなDNS情報の調査や、初心者にとって使いやすいインターフェイスが必要な場合に適している
- hostコマンド: 簡単なドメイン名やIPアドレスの検索に適している
まとめ:digコマンドを使ってネットワーク管理をマスターしよう
当記事の内容をまとめます。
- digコマンドは、DNS情報を調べる際に非常に便利なツール
- digコマンドでは、レコード種類別に問い合わせが可能
- digコマンドには、ほかのコマンドと比べてより詳細が見られるメリットがある
digコマンドの使い方を理解したら、実際に手元の環境で試してみましょう。
ほかのいろいろなコマンドと合わせて使用することで、さらなる知識を身につけられます。