[Network] | |||||||||||||
nslookupでDNSのゾーン転送機能をテストする
|
|||||||||||||
|
解説 |
DNSドメインを定義して、それに対するDNSサーバを用意する場合、負荷分散や耐障害性の向上のために、1つのゾーンに対して複数のDNSサーバを用意することがある。複数のDNSサーバ間では、登録されたレコードの内容が同じになるように、データを同期させる必要があるが、一般的には「ゾーン転送」と呼ばれる機能を使ってデータを同期させている。これは、マスタとなるDNSサーバ(プライマリDNSサーバ)のデータを、サブとなるDNSサーバ(セカンダリDNSサーバ)へまとめて転送する機能であり、大量の登録データを効率よく送ることができる。
ゾーン転送機能は、同じゾーン情報を定義しているDNSサーバ間でのみ使われる機能であり、それ以外のコンピュータへ転送することはセキュリティ上望ましくない。通常はアクセスされることのない特別なDNSレコードなどを登録していても、ゾーン転送すればその内容がすべて分かってしまうし、不正なDNSレコード・データをゾーン転送で送り込まれる可能性などもある。
このような問題を起こさないように、通常のDNSサーバには、ゾーン転送可能な相手を限定するための機能(IPアドレス制限など)が用意されている。この機能が正しく動作しているかどうかを確認するには、DNSサーバやそれ以外のコンピュータ間で、それぞれDNSのゾーン転送を実行させ、正しく転送されるか、それとも拒否されるかなどを調べる。
あるDNSサーバから別のコンピュータへのゾーン転送が許可されているかどうかを調査するには、nslookupコマンドを利用する(UNIXやLinuxなどではdigというコマンドもあるが、Windows OSでは用意されていない)。nslookupでゾーン転送コマンドを実行し、DNSサーバ間では正しく転送でき、そうでないコンピュータでは転送が拒否されることを確認すればよい。
操作方法 |
nslookupのインタラクティブ・モードにはいくつかのサブコマンドがあるが、DNSサーバのゾーン転送機能の動作を確認するには、lsというサブコマンドを使用する。
ls [-a|-d|-t タイプ] ドメイン名 [>出力ファイル名] |
-aや-d、-tは、出力するレコードのタイプを表す。-aならばCNAME(エイリアス、別名)のみを出力し、-tならば、指定されたタイプのレコードのみが表示される。通常は-d(すべて出力)を指定しておけばよいだろう。
ドメイン名には、ゾーン転送を行いたいDNSドメイン名を指定する。nslookupを実行しているマシンのTCP/IPにおけるドメインの設定がどのようになっているかに関わらず、このサブコマンドを実行する場合は、明示的にドメイン名を引数として指定しなければならない。
出力ファイル名には、ゾーン転送の結果を書き出すファイルを指定する。転送結果が大量にある場合は、こうやって一時ファイルに書き出し、その内容を確認するとよいだろう。
それでは実際にゾーン転送を行ってみよう。
手順1―nslookupの起動
ゾーン転送のテストは、nslookupを起動して、サブコマンドを入力する必要がある。単に名前を調べるだけなら、例えば「nslookup server」などとして直接実行すればよいが(この場合は結果が表示されたあと、nslookupは実行を終了する)、ゾーン転送をテストするコマンドは、インタラクティブにユーザーが入力する必要がある。nslookup起動時の引数として与えることはできない。単に「nslookup」とだけ入力して実行すると、サブコマンドを受け付けるインタラクティブ・モードに入る。
C:\>nslookup …引数を何も付けずに実行する |
手順2―DNSサーバの指定
|
nslookupは、デフォルトでは、TCP/IP設定における「優先DNS」サーバに接続するようになっている(優先DNSについては関連記事参照)。もしこれ以外のサーバに接続してゾーン転送を調査したいのなら、DNSサーバを切り替える必要がある。このためには2つの方法がある。
■方法1―nslookup起動時のパラメータで指定する方法
デフォルトのDNSサーバは、nslookupの起動時に指定することができる。DNSサーバを指定してインタラクティブ・モードに入るには、次のように第1引数に「-」、第2引数に「DNSサーバ名(もしくはIPアドレス)」を指定する。
C:\>nslookup - 192.168.0.242 …デフォルトDNSサーバの指定 |
■方法2―DNSサーバを変更するサブコマンドを利用する。
すでにインタラクティブ・モードに入っているなら、server/lserverサブコマンドを利用して変更することもできる。多数のサーバを順にテストする場合にはこの方法がよいだろう。
C:\>nslookup |
手順3―ゾーン転送を実行する
ゾーン転送を実行するには、lsサブコマンドに-dなどのタイプ指定と、ターゲットとなるDNSのゾーン名を指定する。ゾーン内のレコードが表示されれば、ゾーン転送は成功している。
> ls -d example.jp …example.jpゾーンのゾーン転送を要求する |
もしゾーン転送が許可されていなければ、次のように拒否されたというメッセージが表示される。
> ls -d example.jp |
以上のnslookupコマンドを、DNSサーバやクライアント・コンピュータ上で動作させ、お互いにゾーン転送を許可したサーバ間では正しく転送できるが、それ以外のコンピュータからでは転送が拒否されることを確認する。1つのゾーンに複数のDNSサーバが定義されている場合は、すべてのDNSサーバ上で相互に確認作業を行ってほしい。また、正引きのゾーンだけでなく、逆引きのゾーン(0.168.192.in-addr.arpaなどのゾーン)でも、正しく設定されていることを確認しておく。
関連記事(Windows Server Insider) | ||
![]() |
Windows TIPS:nslookupの基本的な使い方(イントラネット編) | |
![]() |
Windows TIPS:nslookupの基本的な使い方(MXレコード編) | |
![]() |
特集:インターネット「常時」接続計画第6回「DNSサーバの設定と確認」 | |
この記事と関連性の高い別の記事
- nslookupの基本的な使い方(イントラネット編)(TIPS)
- Active Directory用のDNSレコードを強制的に作成する方法(TIPS)
- 優先DNSサーバと代替DNSサーバの動作について(TIPS)
- DNSサーバの動的更新設定を変更する(TIPS)
- WindowsでDNSの逆引きゾーンを定義する(イントラネット編)(TIPS)
- DNSの逆引きゾーンを定義する(イントラネット・サブドメイン編)(TIPS)
- WindowsでDNSサーバのキャッシュの内容を調査する(TIPS)
- DNSサービスのルート・ヒントを変更する(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。

![]() |
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
![]() |
|
|
|
![]() |