LinuxのDigコマンド(DNSルックアップ)
Dig(Domain Information Groper)は、DNSネームサーバーを照会するための強力なコマンドラインツールです。
digコマンドを使用すると、ホストアドレス、メール交換、ネームサーバーなど、さまざまなDNSレコードに関する情報を照会できます。 では、もっとも頻繁に使用されるツール間のシステム管理者のトラブルシューティングDNSの問題、その柔軟性、操作性を実現いたしました。,
このチュートリアルでは、digユーティリティを使用する方法について、実用的な例と最も一般的なdigオプションの詳細な説明
dig#をインストールする
digコマンドがシステムタイプで利用可能かどうかを確認するには
出力は次のようになります。
digお使いのシステム上に存在する場合、上記のコマンドは”dig:command not found”と表示されます。, Div id=”03d5189a82″>
ツールは、ディストリビューションのパッケージマネージャーを使用してインストールできます。
ubuntuとDebianにdigをインストールする#
CentOSとFedoraにdigをインストールする#
Arch Linuxにdigをインストールする#
dig出力を理解する#
追加のオプションなしで単一のホスト(ドメイン)を照会するために使用されるdigコマンドはかなり冗長です。,
次の例では、linux.orgドメインで実行しています。
出力は次のようになります。
セクションごとにセクションごとに行き、digコマンドの出力を説明しましょう。
-
出力の最初の行は、インストールされている
digバージョンと照会されたドメイン名を出力します。, 次の行はグローバルオプションを示します(デフォルトではcmdのみ)。これらの行を出力に含めたくない場合は、
+nocmdオプションを使用します。 このオプションは、digコマンドの後の最初のオプションでなければなりません。 -
次のセクションには、要求された機関(DNSサーバー)から受信した回答に関する技術的な詳細が含まれています。 ヘッダーには、オペコード(
digによって実行されるアクション)とアクションのステータスが表示されます。, この例では、ステータスはNOERRORであり、要求された権限が問題なくクエリをサービスしたことを意味します。このセクションは、
+nocommentsオプションを使用して削除できます。
他のセクションのヘッダーも無効にします。
“OPT”擬似セクションは、digユーティリティの新しいバージョンでのみ表示されます。 Dns(EDNS)の拡張メカニズムの詳細については、こちらを参照してください。,
このセクションを出力から除外するには、+noednsオプションを使用します。
“質問”セクションでdigクエリ(質問)を表示します。 デフォルトでは、digはAレコードを要求します。
このセクションを無効にするには、+noquestionオプションを使用します。
“回答”セクションは、私たちの質問に対する答えを提供します。 既に述べたように、デフォルトではdigはAレコードを要求します。, ここでは、ドメインlinux.orgが104.18.59.123IPアドレスを指していることがわかります。
通常、答えをオフにしたくありませんが、+noanswerオプションを使用して出力からこのセクションを削除できます。
“AUTHORITY”セクションでは、照会されたドメインに関するDNSクエリに応答する権限がどのサーバーであるかを示しています。
+noauthorityオプションを使用して、出力のこのセクションを無効にすることができます。,
“追加”セクションは、authorityセクションに示されている権限のあるDNSサーバーのIPアドレスに関する情報を提供します。
+noadditionalオプションは、応答の追加セクションを無効にします。
dig出力の最後のセクションには、クエリに関する統計が含まれています。
+nostatsオプションでこの部分を無効にすることができます。,
答えのみを印刷する#
一般的に、digクエリに対する短い答えのみを取得する必要があります。
短い答えを取得する#
クエリに対する短い答えを取得するには、+shortオプションを使用します。
出力にはAレコードのIPアドレスのみが含まれます。,
詳細な回答を取得する#
より詳細な回答については、+noallオプションを使用してすべての結果をオフにし、+answerオプション
クエリ固有のネームサーバー#
デフォルトでは、ネームサーバーが指定されていない場合、dig/etc/resolv.confファイル,
クエリを実行するネームサーバを指定するには、@(at)記号の後にネームサーバのIPアドレスまたはホスト名を使用します。
たとえば、Googleネームサーバー(8.8.8.8)にlinux.orgドメインに関する情報を照会するには、次のように使用します。
レコードタイプのクエリ#
Digを使用すると、クエリの最後にレコードタイプを追加することにより、有効なDNSクエリを実行できます。, 次のセクションでは、A(IPアドレス)、CNAME(正規名)、TXT(テキストレコード)、MX(メールエクスチェンジャー)、NS(ネームサーバー)など、最も一般的なレコードを検索する方法の例を示
レコードを照会する#
ドメイン名のすべてのアドレスのリストを取得するには、aオプションを使用します。
既に知っているように、DNSレコードタイプが指定されていない場合は、digはaレコードを要求します。, また、aオプションを指定せずにAレコードを照会することもできます。, 特定のドメインのすべてのメールサーバーのうち、mxオプションを使用します。
NSレコード#
特定のドメインの権限のあるネームサーバーを見つけるには、nsオプションを使用します。
すべてのレコードを照会する#
anyオプションを使用して、特定のドメインのすべてのdnsレコードのリストを取得します。
dns逆引き#
特定のipアドレスに関連付けられたホスト名を照会するには、-xオプションを使用します。,
たとえば、208.118.235.148で逆引き検索を実行するには、次のように入力します。
IPアドレスの下の出力からわかるように208.118.235.148はホスト名wildebeest.gnu.org。
Bulk Queries#
多数のドメインをクエリする場合は、それらをファイル(行ごとに一つのドメイン)に追加し、-fオプション,
次の例では、domains.txtファイルにリストされているドメインを照会しています。
インクルード.digrc File#
digコマンドの動作は、${HOME}/.digrcファイルでユーザーごとのオプションを設定することで制御できます。
.digrcファイルがユーザーのホームディレクトリに存在する場合、そこで指定されたオプションはコマンドライン引数の前に適用されます。,
たとえば、回答セクションのみを表示する場合は、テキストエディタを開き、~/.digrcファイルを作成します。
結論#
digDNS情報を照会し、DNS関連の問題をトラブルシューティングするためのコマンドラインツールです。