こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

LAN内に立てたWEBサーバーの名前解決

LAN内に立てたWEBサーバーの名前解決がある程度時間が経過すると失敗します。IPアドレスを直接入力するとアクセスできます。

名前解決はDNSを用い、
WEBサーバーはLinuxのApache、
DNSはLinux上でBIND、
クライアントはWindows7で、WEBサーバー、DNS、クライアントは同一ネットワークにあります。

アクセス出来ない状態でWindowsから
nslookup ホスト名
と入力するとDNSサーバーからの答えとしてIPアドレスは返ってきますが
ipconfig /displaydns
を入力するとそのWEBサーバーは一覧に出てこなくなります。

そこで
net stop dnscache
net start dnscache
とDNS Clientを再起動すると、ホスト名でアクセスできます。

BINDのレコードですがTTLは604800を指定しています。

DNS Clientをいちいち再起動すること無く、運用できないものでしょうか?

投稿日時 - 2012-09-10 22:19:29

QNo.7691307

暇なときに回答ください

質問者が選んだベストアンサー

なかなか不可解な現象が発生していますね。
情報が不足していることもあり、直接的な答えではなく適切な回答になっていなかったらご容赦下さい。

>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は長すぎると思います。

参考になる部分があればいいですが。

投稿日時 - 2012-09-11 09:57:35

お礼

ご返答遅れて申し訳ありません。

確かにLAN内にProxyを立て、DNSと同一サーバー内にあるWebサーバーからproxy.pacファイルを配信して設定しているのですが、これを行うようになってからiPhoneからホスト名でWEBサーバーにアクセスした際のレスポンスが落ちているので、プロキシなども絡んできているのではないかと思います。一旦この質問はクローズとさせていただきます。ありがとうございました。

投稿日時 - 2012-09-18 16:13:45

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問