トップ回答者
異なるドメインのサーバが1台のみ名前解決不可

質問
-
いつもお世話になっております。
信頼関係を結んでいる異なるドメインのメンバサーバ1台の名前解決ができない現象が起きております。
本現象に関しましてお伺いできませんでしょうか。
【環境】
①双方向の信頼関係を結んでいるドメインA,Bが存在する。
・ここでは、ドメインAを"aaa.local"、ドメインBを"bbb.local"とさせて頂きます。
②ドメインAに関して
・FSMOと追加のドメインコントローラが複数台存在。(全てWindows Server 2003。)
・メンバサーバが複数台存在。(Windows Server 2003がほとんど。Windows Server 2008は存在しない。)
・クライアントが複数台存在。(Windows XPがほとんど。Windows Vista, Windows 7は存在しない。)
③ドメインBに関して
・FSMOと追加のドメインコントローラが複数台存在。(全てWindows Server 2003。)
・メンバサーバが複数台存在。(Windows Server 2003がほとんど。Windows Server 2008は存在しない。)
・クライアントは存在しない。
【現象】
・ドメインA内のサーバもしくはクライアントから、ドメインBのサーバ1台(ここでは、ServerBとさせて頂きます)の名前解決ができない状態です。
・ドメインA内のマシンからServerBへ、"ping ホスト名"では応答が無く、"ping IPアドレス"では応答があります。ただし、"ping ホスト名.bbb.local"では応答があります。
※"ping ホスト名"を実行した際の表記は、下記の通りとなります。
「Pinging ホスト名.aaa.local[x.x.x.x] with 32 bytes of data:
Reply from x.x.x.x: byte=32 time<Xms TTL=126」
ドメインB内のServerB以外のサーバに関しては、ドメインBのサーバにも関わらず「Pinging ホスト名.aaa.local」と表記されていて、なおかつ通信できているのが不可解な状態です。
・現象は突然発生いたしました。(以前は名前解決できておりました。)
・サーバは全てファイアウォールを無効にしております。
・nslookupを実行すると、ドメインA内ではServerBの名前は引けませんが、ドメインB内ではServerBの名前は引けております。
本現象の対策方法をお伺いできませんでしょうか。
よろしくお願い致します。
- 移動 三沢健二Moderator 2010年7月26日 6:33 AD カテゴリが適切と判断したため (移動元:Windows Server 2003 全般)
回答
-
北川です。久々の投稿ですがよろしくお願いいたします。
今回のご質問は aaa.local のクライアントから ServerB.bbb.local の名前解決を実施したいということですね。
まず、名前解決についておさらいしてみましょう。DNS による名前解決は、すべて FQDN で行っており、ホスト名では行っていません。
(ServerB では実施しておらず、ServerB.bbb.local の名前解決を実施する必要があります。)次に、ServerB のレコードは bbb.local ゾーンが管理していますので、何らかの手段を用いて aaa.local の クライアントは bbb.local の名前解決を実施する手段を得る必要があります。
DNS はゾーン単位で分散管理をしており、ルートから順番に名前解決を実施する特性を持ちます。
よって、プライベート ルートゾーンを作成し、ルート経由で名前解決を実施させる方法も持つことができます。しかし、企業内の環境ではそれよりも、aaa.local の DNS サーバーで bbb.local のセカンダリ ゾーンを持つか、条件付きフォワーダーを設定するほうが簡単に実装できます。
記載いただいている文章を見ますと、これは実現できていると判断できます。さて、本題ですが、先にも述べたように DNS はホスト名だけの名前解決を実施していません。
サーチリスト(DNS サフィックス)を自動的に付加して名前解決を実施しています。
たとえば、aaa.local のドメインに参加しているクライアントはプライマリ DNS サフィックスが aaa.local になっています。
その為、 ping ServerA の結果は ping ServerA.aaa.local を実施しているのと同様になります。(サフィックスを自動的に補完しています)akiiroakiha さんが、ping ServerB と実施したのに、ServerB.aaa.local となる理由はここにあります。
aaa.local に ServerB というレコードが存在しない場合には、名前解決に失敗します。
逆に aaa.local に ServerB が存在すれば、ServerB.bbb.local にアクセスしたいのに、ServerB.aaa.local にアクセスすることになります。ホスト名でアクセスさせる場合は、このようなリスクが存在することをご留意いただいたうえで実現させる場合、Connection DNS サフィックスを設定することで実現することができます。
DNS サフィックス(サーチリスト)追加に関しましては、各々で設定したり、グループ ポリシーで配信する方法がありますが、関連しそうなリンクをご紹介いたします。
なお、サーチリストとは、DNS ドメイン名を補完するリストで、上から順番に評価されます。- DNSの検索サフィックス・リストを定義する
<http://www.atmarkit.co.jp/fwin2k/win2ktips/398dnssuffix/dnssuffix.html>- DNS クライアントでのドメイン サフィックス検索一覧の設定方法
<http://support.microsoft.com/kb/275553/ja>- Windows Server 2003 の DNS 用の新しいグループ ポリシー
<http://support.microsoft.com/kb/294785/ja>- DNS クライアントの設定を構成する
<http://technet.microsoft.com/ja-jp/library/cc778792(WS.10).aspx>- クライアント コンピュータ用のプライマリ DNS サフィックスを構成する
<http://technet.microsoft.com/ja-jp/library/cc786695(WS.10).aspx>- Configure DNS settings in Network Connections
<http://technet.microsoft.com/en-us/library/cc739745(WS.10).aspx>- DNS を使用するように Windows XP の TCP/IP を構成する方法
<http://support.microsoft.com/kb/305553>- 回答としてマーク 三沢健二Moderator 2010年7月26日 6:12
-
チャブーンです。
Windows の名前解決ですが、DNSによる名前解決のほかにNetBIOSによる名前解決が行なわれることがあります。たとえば、同一のネットワークセグメント内では、DNSの設定とは関係なくNetBIOSによる名前解決がブロードキャストにより行なわれますので、なんの設定もしていなくても「名前解決がうまくできてしまう」ように見えてしまいます。
名前解決がどう行なわれているか確認するにはipconfig /displaydns(DNS名前解決のキャッシュ)やnbtstat -c(NetBIOS名前解決のキャッシュ)情報である程度は確認できるでしょうが、とにかくちゃんと名前解決したい、というならMSFT北川さんのコメントどおり、適切なDNSサフィックスを設定するのが確実です。過去に聞かれた同じようなケースについて、参考までに書いておきます。
- 回答としてマーク 三沢健二Moderator 2010年7月26日 6:12
すべての返信
-
北川です。久々の投稿ですがよろしくお願いいたします。
今回のご質問は aaa.local のクライアントから ServerB.bbb.local の名前解決を実施したいということですね。
まず、名前解決についておさらいしてみましょう。DNS による名前解決は、すべて FQDN で行っており、ホスト名では行っていません。
(ServerB では実施しておらず、ServerB.bbb.local の名前解決を実施する必要があります。)次に、ServerB のレコードは bbb.local ゾーンが管理していますので、何らかの手段を用いて aaa.local の クライアントは bbb.local の名前解決を実施する手段を得る必要があります。
DNS はゾーン単位で分散管理をしており、ルートから順番に名前解決を実施する特性を持ちます。
よって、プライベート ルートゾーンを作成し、ルート経由で名前解決を実施させる方法も持つことができます。しかし、企業内の環境ではそれよりも、aaa.local の DNS サーバーで bbb.local のセカンダリ ゾーンを持つか、条件付きフォワーダーを設定するほうが簡単に実装できます。
記載いただいている文章を見ますと、これは実現できていると判断できます。さて、本題ですが、先にも述べたように DNS はホスト名だけの名前解決を実施していません。
サーチリスト(DNS サフィックス)を自動的に付加して名前解決を実施しています。
たとえば、aaa.local のドメインに参加しているクライアントはプライマリ DNS サフィックスが aaa.local になっています。
その為、 ping ServerA の結果は ping ServerA.aaa.local を実施しているのと同様になります。(サフィックスを自動的に補完しています)akiiroakiha さんが、ping ServerB と実施したのに、ServerB.aaa.local となる理由はここにあります。
aaa.local に ServerB というレコードが存在しない場合には、名前解決に失敗します。
逆に aaa.local に ServerB が存在すれば、ServerB.bbb.local にアクセスしたいのに、ServerB.aaa.local にアクセスすることになります。ホスト名でアクセスさせる場合は、このようなリスクが存在することをご留意いただいたうえで実現させる場合、Connection DNS サフィックスを設定することで実現することができます。
DNS サフィックス(サーチリスト)追加に関しましては、各々で設定したり、グループ ポリシーで配信する方法がありますが、関連しそうなリンクをご紹介いたします。
なお、サーチリストとは、DNS ドメイン名を補完するリストで、上から順番に評価されます。- DNSの検索サフィックス・リストを定義する
<http://www.atmarkit.co.jp/fwin2k/win2ktips/398dnssuffix/dnssuffix.html>- DNS クライアントでのドメイン サフィックス検索一覧の設定方法
<http://support.microsoft.com/kb/275553/ja>- Windows Server 2003 の DNS 用の新しいグループ ポリシー
<http://support.microsoft.com/kb/294785/ja>- DNS クライアントの設定を構成する
<http://technet.microsoft.com/ja-jp/library/cc778792(WS.10).aspx>- クライアント コンピュータ用のプライマリ DNS サフィックスを構成する
<http://technet.microsoft.com/ja-jp/library/cc786695(WS.10).aspx>- Configure DNS settings in Network Connections
<http://technet.microsoft.com/en-us/library/cc739745(WS.10).aspx>- DNS を使用するように Windows XP の TCP/IP を構成する方法
<http://support.microsoft.com/kb/305553>- 回答としてマーク 三沢健二Moderator 2010年7月26日 6:12
-
北川様
詳細なご返信ありがとうございます。
ドメインAには数千台のクライアントが存在するため、グループポリシーの適用を考えたいと思います。
ただ、ご返信いただきました内容を確認させていただいたところ気になる点がありました。
現在は、ドメインAのサフィックスのみしかついていない状態です。また、ご指摘いただいたとおり、条件付フォワーダーのも行っております。
だとすると、"ping ServerB"を実行した際に"ping ServerB.aaa.local"と認識され、通信できないのが正常な状態のように思われます。
しかし、現在はドメインBの現象未発生のサーバ(ここでは、ServerCとさせて頂きます。)には、"ping ServerC"を実行した際、"ping ServerC.aaa.local"と表示されているにも関わらず、通信ができている状態です。こちらの動作の方が、正常ではない動作ということでしょうか。
-
チャブーンです。
Windows の名前解決ですが、DNSによる名前解決のほかにNetBIOSによる名前解決が行なわれることがあります。たとえば、同一のネットワークセグメント内では、DNSの設定とは関係なくNetBIOSによる名前解決がブロードキャストにより行なわれますので、なんの設定もしていなくても「名前解決がうまくできてしまう」ように見えてしまいます。
名前解決がどう行なわれているか確認するにはipconfig /displaydns(DNS名前解決のキャッシュ)やnbtstat -c(NetBIOS名前解決のキャッシュ)情報である程度は確認できるでしょうが、とにかくちゃんと名前解決したい、というならMSFT北川さんのコメントどおり、適切なDNSサフィックスを設定するのが確実です。過去に聞かれた同じようなケースについて、参考までに書いておきます。
- 回答としてマーク 三沢健二Moderator 2010年7月26日 6:12
-
akiiroakiha さん、こんにちは。
フォーラムのご利用ありがとうございます。チャブーン さん、いつもアドバイスありがとうございます。
弊社 北川と チャブーン さんに案内いただいた内容が参考になられたのではないかと思いましたので、勝手ながら [回答としてマーク] を付けさせていただきました。
まずは適切な DNS サフィックスの設定を行っていただいた方が良さそうですね。もし、動作について疑問が残るようであれば、ネットワークトレースで実際にどのようなやり取りが行われているかを確認し、その確認できた内容をもとに DNS サーバーとクライアントの設定について再確認を行っていただければと思います。
(全ての設定が把握できていないと、正常な動作かどうかについての判断は難しいと思います)
それでは、今後とも TechNet Forum をよろしくお願いします。______________________________________
マイクロソフト株式会社 フォーラム オペレーター 三沢健二