- ベストアンサー
LAN内WEBサーバーの名前解決に関するトラブル
- LAN内に立てたWEBサーバーの名前解決が失敗する問題が発生しています。IPアドレス直接入力でアクセス可能ですが、DNSを使用した名前解決ができません。
- 問題の原因は、Linux上で稼働しているApacheとBINDを使用したDNSサーバーの設定にあります。クライアントはWindows7で、同一ネットワーク内に配置されています。
- 現在、WindowsからDNSサーバーに対してnslookupコマンドを実行すると正しいIPアドレスが返されますが、ipconfigコマンドを実行するとWEBサーバーの情報が表示されません。DNS Clientを再起動すると、ホスト名でアクセスできるようになりますが、運用上の問題となっています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
なかなか不可解な現象が発生していますね。 情報が不足していることもあり、直接的な答えではなく適切な回答になっていなかったらご容赦下さい。 >DNS Clientをいちいち再起動すること無く、運用できないものでしょうか? それほど複雑な構成ではないと思いますので通常はこんなことにはならないはずですので、何か設定や構成がおかしいと思います。 Windowsの名前解決は、 ・優先DNS、代替DNSサーバの設定 ・プライマリ及び接続固有のDNSサフィックス ・NetBIOSのノードタイプ などによって名前解決の優先順位が変わりますし、アプリ側の実装によっても変わります。(ブラウザならばプロキシの有無など) 従って、実際にどのようになっているかは通信をキャプチャして調査するのが良いと思います。 名前解決のプロトコルはそれほど難しくないので見れば大体わかると思います。 >nslookup ホスト名 >と入力するとDNSサーバーからの答えとしてIPアドレスは返ってきますが >ipconfig /displaydns >を入力するとそのWEBサーバーは一覧に出てこなくなります。 この結果から判断するとDNSによる名前解決自体は問題ないように思います。 DNS名前解決以外の何かが影響していることが考えられます。 ちなみにご存じかもしれませんが、 nslookupコマンドは常に優先DNSに設定されたIPアドレスにクエリし冗長化のしくみは機能しません。(Serverサブコマンドなどで変更しない限り) また、ホスト名の最後にドットを付けなければ、DNSサフィックスに従ってドメイン名を付与してFQDNでのクエリに自動的に変更します。 また、nslookupでクエリしたものはクライアントのDNSキャッシュに保存されないはずです。 >BINDのレコードですがTTLは604800を指定しています。 余談ですが、LAN内のローカルで使用するゾーンではこのTTLは長すぎると思います。 参考になる部分があればいいですが。
お礼
ご返答遅れて申し訳ありません。 確かにLAN内にProxyを立て、DNSと同一サーバー内にあるWebサーバーからproxy.pacファイルを配信して設定しているのですが、これを行うようになってからiPhoneからホスト名でWEBサーバーにアクセスした際のレスポンスが落ちているので、プロキシなども絡んできているのではないかと思います。一旦この質問はクローズとさせていただきます。ありがとうございました。