【Bash】「nslookup」 - DNSサーバーに名前解決の問い合わせを行う
Shell Script / シェルスクリプト
【Bash】
「nslookup」 - DNSサーバーに名前解決の問い合わせを行う
「nslookup」コマンドとは
DNSサーバに名前解決の問い合わせを行う。
指定したホスト名をDNSサーバーに問合せ、情報を取得する。
引数の指定がない場合は、対話モードとなる。
nslookupコマンドは、DNSクライアントの名前解決機能を手動実行するためのコマンド。
正引き/逆引き、Aレコード/NSレコード/MXレコードなどのレコード種類の絞込み検索や、再帰検索/イテレイティブ検索、DNSサーバの任意切り替え、デバッグの実行など、さまざまなオプションからDNS検索の診断が行える。
単にDNS検索を行いたいだけの場合にも、十分な機能を提供するだろう。
書式
nslookup[ -setコマンド・オプション][ ホスト・ドメイン名またはIPアドレス[ -DNSサーバ名]]
一般的なコマンド・ライン・モードのほか、ホスト・ドメイン名やIPアドレスが与えられていない場合には、対話モードで使用できる。
対話モードでは、コマンドを指定することで、DNSサーバ切り替えやゾーン情報の参照なども行える。
またLinuxでは、ユーザーのホーム・ディレクトリの「.nslookuprc」ファイルにオプションを記載して、実行時に自動指定しておくこともできる。
オプション
オプションなし | 対話モードで実行する |
setコマンド・オプション | setコマンドのオプションを指定して設定する |
ホスト・ドメイン名 または IPアドレス | ホスト・ドメイン名を指定した場合は正引き(Aレコード検索)、IPアドレスを指定した場合には逆引き(PTRレコード検索)が行われる |
DNSサーバ名 | 接続するDNSサーバを指定する |
name,-DNSサーバ名 | 情報を取得するためのDNSサーバを指定する。 |
対話モード
ホスト・ドメイン名またはIPアドレス[ DNSサーバ名]
下記のコマンド以外の文字列が入力された場合、
ホスト・ドメイン名またはIPアドレスが入力されたと解釈して、正引きまたは逆引きを実行する。DNSサーバ名も指定された場合には、そのDNSサーバに対して問い合わせを実行する
ホスト名 | 指定したホスト情報を取得する |
IPアドレス | 指定したIPアドレス情報を取得する |
set type=タイプ | 取得する情報のタイプを指定できる。A=IPアドレス、CNAME=正式なホスト名、MX=メールサーバ、PTR=ホスト名 |
exit | 対話モードの終了。 |
all | 現在の設定オプションを表示する |
debug | nodebug | デバッグ・モードを指定する。nodebugでこれを解除する |
d2 | nod2 | より詳細なデバッグ・モードを指定する。nod2でこれを解除する |
defname | nodefname |
デフォルト・ドメイン名を指定したホスト・ドメイン名に自動的に付加して検索する。例えばwwwと指定された場合に、デフォルト・ドメイン名であるexample.netを付加してwww.example.netとして検索する。nodefnameはこの動作を解除する
|
recurse | norecurse |
recurseは再帰検索を指定する。norecurseはイテレイティブ検索(反復検索: 再帰検索を行わずDNSサーバが管理するゾーン情報のみへの一度の検索のみ)を指定する
|
search | nosearch |
ドメイン・サーチ・リストを付加して検索する。nosearchはこれを解除する
|
vc | novc |
TCP接続による検索を行う。novcはUDP接続での通常の検索を行う(ただし通常は、回答されるデータ・サイズがUDPパケット・サイズを越えている場合(トランケーション・エラー)に、あらためてTCP接続で検索される)
|
domain=ドメイン名 | デフォルト・ドメイン名を指定する |
srchlist=ドメイン名[/ドメイン名 ……] |
ドメイン・サーチ・リストを指定する。複数のドメインを指定でき、検索時に指定されたホスト名に自動的に付加して、それぞれの名前で成功するまで試行する
|
root=DNSサーバ名 | ルートDNSサーバを指定する |
retry=試行回数 | 検索失敗時の試行回数を指定する |
timeout=タイムアウト秒数 | DNSサーバに対するタイムアウトを秒数で指定する |
querytype=検索レコード種別 | type=検索レコード種別 | 検索対象とするレコード種別を指定する。「'A'」「'SOA'」「'NS'」「'MX'」など |
port=ポート番号 |
DNSサーバへ接続する際のポート番号を指定する。通常は'53'番
|
class=クラス名 |
検索するレコード・クラスを指定する。通常はデフォルトである「'IN'(internet)」を指定する
|
msxfr | nomsxfr*1 | 高速ゾーン転送モード(many-answers)を指定する。nomsxfrはこれを解除する |
ixfrver=シリアル番号*1 | IXFR(Incremental Zone Transfers:差分ゾーン転送(RFC1995))モードを使用するとともに、現在のシリアル番号を指定する |
server DNSサーバ名 |
使用するDNSサーバを、指定したサーバに変更する(デフォルト・サーバの変更)。その際に、サーバのIPアドレスは現在指定されているDNSサーバを用いて検索する
|
lserver DNSサーバ名 |
使用するDNSサーバを、指定したサーバに変更する(デフォルト・サーバの変更)。その際に、サーバのIPアドレスはルート・ネーム・サーバから再帰検索して判断する
|
finger[ ユーザー名] |
現在のデフォルト・サーバに対してfinger(指定されたユーザー情報の問い合わせ)を実行する
|
root |
現在のデフォルト・サーバをルート・ネーム・サーバとする
|
ignoretc | noignoretc |
トランケーション・エラーを無視する。つまり、TCP接続による再度の検索は行わない。noignoretcはこれを解除する
|
ls[ オプション] ドメイン名[ >|>> 出力ファイル名] |
指定したドメインのゾーン情報を表示する。これは、通常プライマリ・サーバからセカンダリ・サーバに対して行うゾーン転送と同様の動作である。指定した出力ファイルに内容を出力して、新規作成または追記することもできる。また以下のオプションが指定できる
オプションなし | ホストのエイリアス(CNAMEレコード)のみを表示する |
-v | ホスト情報(HINFOレコード)のみを表示する |
-n | ホストのサービス情報(WKSレコード)のみを表示する |
-N | すべてのレコードを表示する |
-t レコードタイプ | 任意のレコードタイプを表示する。例えば「-t cname」は-aオプションと同義となる |
|
view 出力ファイル名*1 | (lsコマンドで作成された)出力ファイルを表示する |
exit | 対話モードを終了する |
help | ? | ヘルプを表示する |