dig
(ドメイン情報手探り器; domain information groper) は、
DNS (Domain Name System) サーバから情報を集めるために使われる
柔軟なコマンドラインツールです。
dig
は 2 つのモードを持っています。
これは、1 つの問い合わせを行う単純な対話的利用モードと、
いくつかの問い合わせ行のリスト中の各問い合わせを実行するバッチモードです。
すべての問い合わせオプションは、コマンドラインから利用可能です。
普通の簡単な
dig
の使用法は、以下のような形式です。
-ragged -offset indent-two
dig @ Ns Ar server domain query-type query-class
ここで、
-tag -width Fl
Ar server
は、ドメイン名かドット表記のインターネットアドレスのどちらかです。
もし、このオプションフィールドが省略された場合、
dig
は、そのマシンのデフォルトのネームサーバを利用しようとします。
注:
ドメイン名が指定された時は、ドメイン名システムリゾルバ
(つまり、BIND) を使うことで解決しようとします。システムが DNS を
提供していない時は、ドット形式のアドレスを指定する必要があります。
利用できるサーバがどこかにある場合は、必要なことは
/etc/resolv.conf
が存在し、
server
自身が解決できるように、そのデフォルトネームサーバがどこにあるかが
記述されていることだけです。
/etc/resolv.conf
についての情報は
resolver 5
を参照してください。
警告:
/etc/resolv.conf
を変更すると、標準のリゾルバライブラリと
潜在的に
それを使ういくつかのプログラムに影響を与えます。
オプションとして、ユーザは環境変数
LOCALRES
を設定し、
/etc/resolv.conf
の代わりに使うファイルの名前を指定できます。
Ns Ev LOCALRES
変数は
dig
リゾルバ固有のもので、標準のリゾルバでは
参照されません
。
LOCALRES
変数が設定されていないか、
設定されたファイルが読み込めない場合は、
/etc/resolv.conf
が使われます。
Ar domain
は、あなたが情報を要求しているドメイン名です。
逆アドレスの問い合わせのための便利な方法は、
x
オプションを参照してください(この節の
その他のオプション
の項で述べられています)。
Ar query-type
は、あなたが要求している情報のタイプ(DNS 問い合わせタイプ)です。
省略された場合のデフォルトは、
Ar a
Dv T_A = アドレス
が使われます。以下のタイプが認識されます。
-hang -width hinfo T_HINFO -compact
Ar a Dv T_A
ネットワークアドレス
Ar any Dv T_ANY
指定されたドメインのすべて/任意の情報
Ar mx Dv T_MX
ドメインのメール交換情報 (MX)
Ar ns Dv T_NS
ネームサーバ
Ar soa Dv T_SOA
ゾーンの権威者を表すレコード
Ar hinfo Dv T_HINFO
ホスト情報
Ar axfr Dv T_AXFR
ゾーン転送情報(権威を持ったサーバに尋ねなければなりません)
Ar txt Dv T_TXT
任意の数の文字列
(完全なリストは、RFC 1035 を参照してください。)
Ar query-class
は、問い合わせで要求されるネットワーククラスです。
省略された場合のデフォルトは、
Ar in
Dv C_IN = Internet
です。
以下のクラスが認識されます。
-tag -width hinfo T_HINFO -compact
Ar in Dv C_IN
インターネットクラスドメイン
Ar any Dv C_ANY
すべて/任意のクラスの情報
(完全なリストは、RFC 1035 を参照してください。)
注:
Ar any
は、
クラス
や問い合わせの
タイプ
を指定するために使われます。
dig
は、最初に現れた
Ar any
を
query-type = Dv T_ANY
として解析します。
query-class = Dv C_ANY
にするためには、
any
を 2 度指定するか、
c
オプション(以下参照)を利用して問い合わせクラスを
指定しなければなりません。
-tag -width Fl
% Ns Ar ignored-comment
%
は、単に解析されない引数を含むために使われます。
これは、
dig
をバッチモードで実行する時に有効です。
問い合わせリスト中のすべての
@server-domain-name
を解決する代わりに、
そのオーバヘッドを避けつつコマンドライン上にドメイン名を書くことが出来ます。
以下の例を参照。
-ragged -offset indent-two
dig @128.9.0.32 %venera.isi.edu mx isi.edu
Fl Aq Ar dig option
Fl
は、
dig
の操作に影響を与えるオプションを指定するために
使われます。以下のオプションが現在利用可能です
( 便利であるかどうかは保証しません )。
-tag -width Fl
Fl x Ar dot-notation-address
逆アドレス変換を指定する便利な形式です。
Ic dig 32.0.9.128.in-addr.arpa
の代わりに、
Ic dig -x 128.9.0.32
と指定できます。
Fl f Ar file
dig
のバッチモードのためのファイルです。ファイルは、
つづいて実行される問い合わせの指定 (
Ic dig
のコマンドライン) の
リストを含んでいます。
; ,
# ,
\n
で始まる行は無視されます。その他のオプションは、
コマンドラインで現れるものは、個々のバッチによる問い合わせでも
影響があります。
Fl T Ar time
バッチモードで実行した時、連続した問い合わせの始まる時間間隔を秒で与え
ます。2 つ以上のバッチ
dig
コマンドの実行を大体同期することができる
ようになります。デフォルトは 0 です。
Fl p Ar port
ポート番号です。標準でないポート番号で待つネームサーバに問い合わせます。
デフォルトは 53 です。
Fl p Ns Bq Ar ping-string
問い合わせからかえってきた後で、
ping 8
コマンドを応答時間の比較のために実行します。これは、美しくないのですが、
シェルを呼び出します。統計の最後の 3 行がコマンドのために
表示されます。
-ragged -offset indent-two
ping Fl s server_name 56 3
オプションの
Ar ping-string
が存在した時は、シェルコマンドでは
Ic ping Fl s
を置き換えます。
Fl t Ar query-type
問い合わせのタイプを指定します。タイプフィールド内の整数値か、
上で述べたニーモニック表現 (つまり
mx = Dv T_MX
) かで
指定することができます。
Fl c Ar query-class
問い合わせのクラスを指定します。クラスフィールド内の整数値か、
上で述べたニーモニック表現 (つまり in = C_IN) で
指定することができます。
Fl k Ar keydir:keyname
ディレクトリ keydir 中の TSIG キー名 keyname で、問い合わせます。
Fl envsav
このフラグを指定すると、すべての引数が解析された後で
dig 環境 (デフォルトや表示オプション等) を
デフォルト環境としてファイルに保存します。
標準のデフォルトが気に入らず、
dig
を使う度にたくさんのオプションを指定することが嫌な場合は便利です。
環境は、
dig
出力 (以下参照) で詳しく述べられるフラグと同じように、
リゾルバの状態変数フラグや、タイムアウト、再試行回数からなります。
シェル環境変数
LOCALDEF
がファイルの名前に設定されている場合、
これが、デフォルトの
dig
環境が保存される場所となります。
そうでない場合は、ファイル
DiG.env
が現在の作業ディレクトリに
作成されます。
注:
LOCALDEF
は、
dig
のリゾルバ固有であり、
標準のリゾルバライブラリの操作には影響を与えません。
dig
が実行される度に、
またはシェル環境変数
LOCALDEF
で指定されたファイルが探されます。そのようなファイルが
存在し読める場合は、引数を解析する前にこのファイルから環境が
読み込まれます。
Fl envset
このフラグは、バッチ問い合わせを実行する時にだけ影響があります。
dig
バッチファイル中で
Fl envset
が指定されていると、
この引数が解析された後の
dig
環境は、バッチファイルが実行されている間もしくは、次の
Fl envset
が指定されるまでの間は、
デフォルトの環境となります。
Xo
Op Cm no
Cm stick
このフラグは、バッチ問い合わせ実行にだけ影響を与えます。
これは、
dig
環境を
dig
バッチファイル中での
各問い合わせ (行) の前に (初期状態もしくは、
Fl envset
で設定された)
元の状態に戻すことを指定します。
デフォルトの
Fl nostick
は、
dig
環境を回復しないという意味ですので、
dig
バッチファイルの各行で指定されたオプションは、
後の行でもその効果が残ったままになります (つまり
sticky
時のデフォルトのようには回復されません)。
Ic + Ns Aq Ar query option
+
はパケット問い合わせ中のオプション変更や
dig
出力仕様を変更するために使われます。
これらの多くは、
nslookup 8
で受け入れられるパラメータと同じものです。
オプションが値を必要とする場合、その指定形式は以下のようになります。
-ragged -offset indent-two
+
Ar keyword
Op = Ns Ar value
ほとんどのキーワードは、省略が可能です。
+
オプションの解釈は非常に単純です。
値はキーワードとスペースで区切ってはなりません。
以下のキーワードが現在利用可能です。
キーワード 省略形 意味 [デフォルト]
-tag -width [no]primary (ret) -compact
Xo
Cm no
Cm debug \
Cm deb
デバッグモードを変更
Cm deb
Xo
Cm no
Cm d2 \
追加のデバッグモードを変更
Cm nod2
Xo
Cm no
Cm recurse \
Cm rec
再帰的探索を使うかどうか指定
Cm rec
Xo
retry= Ns Ar #
\
Cm ret
再試行の回数を # に設定
4
Xo
time= Ns Ar #
\
Cm ti
タイムアウト時間を # 秒に設定
4
Xo
Cm no
Cm ko
繋げておくオプション(vc を暗黙指定)
Cm noko
Xo
Cm no
Cm vc
仮想回線を使うかどうか指定
Cm novc
Xo
Cm no
Cm defname \
Cm def
デフォルトドメイン名を使うかどうか指定
Cm def
Xo
Cm no
Cm search \
Cm sea
ドメインサーチリストを使うかどうか指定
Cm sea
Xo
domain= Ns Ar NAME \
Cm do
デフォルトドメイン名を
NAME
に指定
Xo
Cm no
Cm ignore \
Cm i
trunc. エラーを無視するかどうか指定
Cm noi
Xo
Cm no
Cm primary \
Cm pr
プライマリサーバを使うかどうか指定
Cm nopr
Xo
Cm no
Cm aaonly \
Cm aa
権威を持った問い合わせのみのフラグ
Cm noaa
Xo
Cm no
Cm cmd
解析された引数を表示
Cm cmd
Xo
Cm no
Cm stats \
Cm st
問い合わせの統計を表示
Cm st
Xo
Cm no
Cm Header \
Cm H
基本的なヘッダを表示
Cm H
Xo
Cm no
Cm header \
Cm he
ヘッダフラグを表示
Cm he
Xo
Cm no
Cm ttlid \
Cm tt
TTL を表示
Cm tt
Xo
Cm no
Cm cl
クラス情報を表示
Cm nocl
Xo
Cm no
Cm qr
出て行った問い合わせを表示
Cm noqr
Xo
Cm no
Cm reply \
Cm rep
応答節を表示
Cm rep
Xo
Cm no
Cm ques \
Cm qu
質問節を表示
Cm qu
Xo
Cm no
Cm answer \
Cm an
回答節を表示
Cm an
Xo
Cm no
Cm author \
Cm au
権威節を表示
Cm au
Xo
Cm no
Cm addit \
Cm ad
追加節を表示
Cm ad
Cm pfdef
デフォルト表示フラグを設定
Cm pfmin
最小のデフォルト表示フラグを設定
Cm pfset= Ns Ar #
表示フラグを # に設定
(# は 16 進 /8 進/10 進が可能です)
Cm pfand= Ns Ar #
表示フラグに # とのビット論理積 (and) 適用
Cm pfor= Ns Ar #
表示フラグに # とのビット論理和 (or) 適用
再試行回数
と
時間
のオプションは、問い合わせデータグラムを送る際に、
リゾルバライブラリによって使われる再送戦略に影響を与えます。
アルゴリズムは以下の通りです
-literal -offset indent
for i = 0 to retry - 1
for j = 1 to num_servers
send_query
wait((time * (2**i)) / num_servers)
end
end
(注:
dig
はいつも
Li num_servers
として値 1 を使います。)
dig
は、かつて BINDの
resolver 3
ライブラリの変更版を要求しました。
BIND のリゾルバは、(BIND 4.9のように)
dig
を正しく動作させるようになって来ています。本質的には、
dig
は、引数の解釈と適切なパラメータ設定を(見事にではなく)卒直に行うものです。
dig
はリゾルバの関数
res_init ,
res_mkquery ,
res_send
を使い、また
_res
構造体を操作します。