はじめまして、まいパパです。自宅サーバーをWeb、mail、sshで公開しているほか、職場(大学研究室)でもサーバー管理をしております。こちらのサイトには、どれだけお世話になったか数え切れません
さっそくですが、サーバー運用開始当初から以下の症状が発生して、困っております。致命的な不具合ではないので1年近く放置してきましたが、どなかた御存知の方がいらっしゃいましたら、御教示いただければ幸いです。
長文で申し訳ありませんが、どうかよろしくお願い致します
【環境】
・サーバーOS:Vine3.1(IP=192.168.1.100)
・公開サービス:httpd(バーチャルにて複数運用)、ssh、postfix(Lan内のみ)、FTP(Lan内のみ)、DNS(内向きのみ)
・ルーター(192.168.1.1):Planex BRL-04FMX(中身はBA8000Proと同じらしいです)
・DNS:Bind 9(内向きのみ、forwardersでプロバイダーのDNSを指定)
・ルーターのDNS設定:1stはサーバーPC指定(192.168.1.100)、2ndはプロバイダのDNS指定→LAN内サーバーのドメインでの参照を可能にし、なおかつ、サーバーが万一ダウンしたばあいでも、クライアントの外部とのネットワーク接続には影響がないようにするためです
【症状】
LAN内にあるWebサーバーを参照すると、グルーバルIPアドレスを探しに行ってしまい、エラーとなる(2日に1回程度)。この間も、外部からのWEBアクセスは正常にできるのでLAN内だけの問題です。
解決は
・ルーターを再起動
・IEのテンポラリーファイルを削除
を何回か繰り返すと、正常にLAN内のサーバーが見えるようになります。
(これらを実行してもすぐ直らない場合もあり、時間がたつといつのまにか直っているというケースもあるように感じます・・・あいまい^^;;)
【疑問点】
1 上記症状が出ている状態で、正常表示できないクライアントPCでDOSプロンプトからnslookupでドメイン(URL)を正引きすると、正しく「LAN内のIPアドレス」が表示され、DNS機能は正常だと思われます。また、サーバー機でnslookupをしても、ルーター・他のLAN内PCは正しくLAN内のIPとして参照されており、DNS自体の問題ではないと断言していいと思います。にもかかわらず、IEからだと「グローバルIPアドレス」を参照しに行ってしまうのはなぜなんでしょう?
2 DNSキャッシュが怪しいと思い、怪しそうなソフトはすべて点検したつもりですが、DNSキャッシュを使用してするソフトはないと思います。また、クライアントPCから「ipconifg /flushdns」を実行しても解決されません。
3 IEだけでなく、他のブラウザ(Opera,NNなど)でも全く同じなので、IEの問題ではないと思います。
4 他のLAN内のクライアントPCからテストしても、全く同じ症状となり、DNSの問題にも思えるんですが、上記のとおり、nslookupでは問題ありません
5 実は自宅でも職場でも、同じサーバー環境(Vine3.1+ルーターPlanex BRL-04FMX)でサーバー公開してますが、どちらでも、定期的に同じような症状が発生し、その都度、ルーターの再起動などで解決をしており、ルーターも疑ってます
> グルーバルIPアドレスを探しに行ってしまい
これはどうやって検証したのですか。
> ・ルーターのDNS設定:1stはサーバーPC指定(192.168.1.100)、2ndはプロバイダのDNS指定
1st2ndは優先順位ではないのでしょう
それと
nslookupとwinsockのgethostbynameは動作が違います。
祇園さん、さっそくのコメント、ありがとうございます
> > グルーバルIPアドレスを探しに行ってしまい
> これはどうやって検証したのですか。
IEのステータスバーに、「xxx.xxx.xxx.xxxを検索して?います」というメッセージが表示されるからです(正確なメッセージは今再現できないので忘れてしまいました^^;(xxx...はグローバルIP)
> > ・ルーターのDNS設定:1stはサーバーPC指定(192.168.1.100)、2ndはプロバイダのDNS指定
> 1st2ndは優先順位ではないのでしょう
正確にはプライマリ、セカンダリですね^^;
以下は、ルーター設定のマニュアルの一部引用です
[ プライマリDNSサーバアドレス ]
<DNSサーバアドレス設定方法>で「固定設定」を選択した場合に、主に利用するDNSサーバのIPアドレスを入力します。
→固定設定をしており、サーバーのプライベートIPを指定しています
[ セカンダリDNSサーバアドレス ]
<DNSサーバアドレス設定方法>で「固定設定」を選択した場合に、バックアップのDNSサーバのIPアドレスを入力します。できる限り入力してください。
→固定設定をしており、LAN内サーバーダウンのバックアップ用に、プロバイダーのDNSサーバーのIPアドレスを設定しています
> nslookupとwinsockのgethostbynameは動作が違います。
winsockのgethostbynameというのがよく理解できませんが、nslookupで正しく正引きできていても、アプリ側では正しく正引きできない可能性があるということでしょうか?解決はどうすればよろしいのでしょう?
よろしければ教えていただければ幸いです
> 【環境】
> ・サーバーOS:Vine3.1(IP=192.168.1.100)
> ・公開サービス:httpd(バーチャルにて複数運用)、ssh、postfix(Lan内のみ)、FTP(Lan内のみ)、DNS(内向きのみ)
> ・ルーター(192.168.1.1):Planex BRL-04FMX(中身はBA8000Proと同じらしいです)
> ・DNS:Bind 9(内向きのみ、forwardersでプロバイダーのDNSを指定)
> ・ルーターのDNS設定:1stはサーバーPC指定(192.168.1.100)、2ndはプロバイダのDNS指定→LAN内サーバーのドメインでの参照を可能にし、なおかつ、サーバーが万一ダウンしたばあいでも、クライアントの外部とのネットワーク接続には影響がないようにするためです
> 【症状】
> LAN内にあるWebサーバーを参照すると、グルーバルIPアドレスを探しに行ってしまい、エラーとなる(2日に1回程度)。この間も、外部からのWEBアクセスは正常にできるのでLAN内だけの問題です。
> 解決は
> ・ルーターを再起動
> ・IEのテンポラリーファイルを削除
> を何回か繰り返すと、正常にLAN内のサーバーが見えるようになります。
> (これらを実行してもすぐ直らない場合もあり、時間がたつといつのまにか直っているというケースもあるように感じます・・・あいまい^^;;)
> 【疑問点】
> 1 上記症状が出ている状態で、正常表示できないクライアントPCでDOSプロンプトからnslookupでドメイン(URL)を正引きすると、正しく「LAN内のIPアドレス」が表示され、DNS機能は正常だと思われます。また、サーバー機でnslookupをしても、ルーター・他のLAN内PCは正しくLAN内のIPとして参照されており、DNS自体の問題ではないと断言していいと思います。にもかかわらず、IEからだと「グローバルIPアドレス」を参照しに行ってしまうのはなぜなんでしょう?
> 2 DNSキャッシュが怪しいと思い、怪しそうなソフトはすべて点検したつもりですが、DNSキャッシュを使用してするソフトはないと思います。また、クライアントPCから「ipconifg /flushdns」を実行しても解決されません。
> 3 IEだけでなく、他のブラウザ(Opera,NNなど)でも全く同じなので、IEの問題ではないと思います。
> 4 他のLAN内のクライアントPCからテストしても、全く同じ症状となり、DNSの問題にも思えるんですが、上記のとおり、nslookupでは問題ありません
> 5 実は自宅でも職場でも、同じサーバー環境(Vine3.1+ルーターPlanex BRL-04FMX)でサーバー公開してますが、どちらでも、定期的に同じような症状が発生し、その都度、ルーターの再起動などで解決をしており、ルーターも疑ってます
おやじが考えたシナリオは以下のとおりですが、クライアントのDNS設定がルータのゲートウェイアドレスと同じアドレスしか設定していないで、上記の1〜5までがトラブルがでている状態でのこととすると、nslookupとブラウザで異なる結果になる理由は説明できません。
[理由]:
ルータのDNSリレー怪しく、例えば、サーバを停止していた時やISPのDNSがレスポンスが遅れたような場合、セカンダリに登録されているISPのDNSに滑って永遠もしくはガード時間等がタイムアウトするまで戻ってこないのではないですか?
であれば、2,3,5は説明がつきますが、1と4の後半が説明できません。何か、nslookupとブラウザで結果が異なる原因があるはずですが、これがわかりません。祇園さんが言っているとおり動作は違うという話は聞きますが、dns(この場合はルータがDNSもどき)にアクセスするときの動作はパケットレベルで差異は無いと思います。
なお、dnsキャッシュの影響を避けるため、クライアントのDNSクライアントサービスを停止して試験したほうが間違いありません。
ルータにセカンダリDNSを設定しなければ、恐らく解決する問題と思います。おやじはサーバが問題がでたら、ルータの設定を変更することとして、セカンダリなしでBA8000を動かしてましたが、こういう問題は発生した記憶はありません。なお、DHCPは使用せず、固定でクライアントにルータのアドレスを設定していました。
おやじ様(響きがなんか変ですね^^)、大変丁寧なコメントありがとうございます。
> おやじが考えたシナリオは以下のとおりですが、クライアントのDNS設定がルータのゲートウェイアドレスと同じアドレスしか設定していないで、上記の1〜5までがトラブルがでている状態でのこととすると、nslookupとブラウザで異なる結果になる理由は説明できません。
投稿時、重要情報を書きもれており大変失礼いたしました。
おやじ様が御指摘のとおりクライアントのDNS設定は、ルーターのプライベートIPアドレスのみを指定しております。
> [理由]:
> ルータのDNSリレー怪しく、例えば、サーバを停止していた時やISPのDNSがレスポンスが遅れたような場合、セカンダリに登録されているISPのDNSに滑って永遠もしくはガード時間等がタイムアウトするまで戻ってこないのではないですか?
ルーターを疑ってはいましたが、そこまで具体的には考えられませんでした^^
> であれば、2,3,5は説明がつきますが、1と4の後半が説明できません。何か、nslookupとブラウザで結果が異なる原因があるはずですが、これがわかりません。祇園さんが言っているとおり動作は違うという話は聞きますが、dns(この場合はルータがDNSもどき)にアクセスするときの動作はパケットレベルで差異は無いと思います。
おやじ様でも説明困難な状況だとお聞きして安心しました^^;私のレベルではどう考えても理屈が通らないものですので^^
> なお、dnsキャッシュの影響を避けるため、クライアントのDNSクライアントサービスを停止して試験したほうが間違いありません。
非常に初歩的で申し訳ありません、クライアントのDNSクライアントサービスを停止する方法ってあるのでしょうか?何度も申し訳ありませんがもしよろしければ御教示いただければ幸いです
> ルータにセカンダリDNSを設定しなければ、恐らく解決する問題と思います。
>おやじはサーバが問題がでたら、ルータの設定を変更することとして、セカンダリなしでBA8000を動かしてましたが、こういう問題は発生した記憶はありません。なお、DHCPは使用せず、固定でクライアントにルータのアドレスを設定していました。
確かにそうですね、ルータでのセカンダリDNSの指定をやめることも考えたいと思います。(過去1年半のうちに2度しかありませんが、ちょうど私がおらずサーバーが死んだときに外部とのネット接続ができなくなり大騒ぎになったことがあり、このように事態を複雑にする設定にしてます^^;
PS
最初の投稿時に書き漏れてしまいましたが、サーバー構築・運営にあたり、こちらのサイトには大変にお世話になっており、Vineということで少し環境は異なりますが、情報量の多さ、情報のわかりやすさには、いつも深く感謝しております。今後ともお体に気をつけてますますの御活躍を心からお祈りしてます。
> 非常に初歩的で申し訳ありません、クライアントのDNSクライアントサービスを停止する方法ってあるのでしょうか?何度も申し訳ありませんがもしよろしければ御教示いただければ幸いです
NT系のみですが、コントロールパネル->管理ツール->サービス内にあります。試験の時だけ止めておくといいと思います。
> 確かにそうですね、ルータでのセカンダリDNSの指定をやめることも考えたいと思います。(過去1年半のうちに2度しかありませんが、ちょうど私がおらずサーバーが死んだときに外部とのネット接続ができなくなり大騒ぎになったことがあり、このように事態を複雑にする設定にしてます^^;
オールインワンサーバなら、サーバが死ねばローカル内の名前解決もwebサーバ等のアクセスもできないので、クライアントのセカンダリにISPのDNSを設定してもらう手もありますよね。
> > 確かにそうですね、ルータでのセカンダリDNSの指定をやめることも考えたいと思います。(過去1年半のうちに2度しかありませんが、ちょうど私がおらずサーバーが死んだときに外部とのネット接続ができなくなり大騒ぎになったことがあり、このように事態を複雑にする設定にしてます^^;
>
> オールインワンサーバなら、サーバが死ねばローカル内の名前解決もwebサーバ等のアクセスもできないので、クライアントのセカンダリにISPのDNSを設定してもらう手もありますよね。
この方法もまずいです。まいパパがおっしゃっていることを確認するためクライアントのセカンダリにISPのDNSを入れたままにしていたところ、今朝、クライアント立ち上げ時に同じ現象が発生しました。メールがつながらないのでおかしいと思い、パケットキャプチャしましたら、サーバが死んでいるわけでもないのに、おやじのグローバルにアクセスしていました。
WindowsのDNSは、プライマリが駄目ならセカンダリに迂回するだけじゃないかもしれないですね。何かの条件で、セカンダリに行くことがあるのではないでしょうか?
少しおかしいのは、このときDNSキャッシュにはacorn.zive.netが存在してませんでした。もちろん、セカンダリDNSを消せば、正常にmyサーバにアクセスし、DNSキャッシュにもローカルアドレスが載ってきました。
> > 非常に初歩的で申し訳ありません、クライアントのDNSクライアントサービスを停止する方法ってあるのでしょうか?何度も申し訳ありませんがもしよろしければ御教示いただければ幸いです
>
> NT系のみですが、コントロールパネル->管理ツール->サービス内にあります。試験の時だけ止めておくといいと思います。
これ、今まで知りませんでした^^;;ありがとうございました<m(__)m>
> > > 確かにそうですね、ルータでのセカンダリDNSの指定をやめることも考えたいと思います。(過去1年半のうちに2度しかありませんが、ちょうど私がおらずサーバーが死んだときに外部とのネット接続ができなくなり大騒ぎになったことがあり、このように事態を複雑にする設定にしてます^^;
> >
> > オールインワンサーバなら、サーバが死ねばローカル内の名前解決もwebサーバ等のアクセスもできないので、クライアントのセカンダリにISPのDNSを設定してもらう手もありますよね。
>
> この方法もまずいです。まいパパがおっしゃっていることを確認するためクライアントのセカンダリにISPのDNSを入れたままにしていたところ、今朝、クライアント立ち上げ時に同じ現象が発生しました。メールがつながらないのでおかしいと思い、パケットキャプチャしましたら、サーバが死んでいるわけでもないのに、おやじのグローバルにアクセスしていました。
> WindowsのDNSは、プライマリが駄目ならセカンダリに迂回するだけじゃないかもしれないですね。何かの条件で、セカンダリに行くことがあるのではないでしょうか?
> 少しおかしいのは、このときDNSキャッシュにはacorn.zive.netが存在してませんでした。もちろん、セカンダリDNSを消せば、正常にmyサーバにアクセスし、DNSキャッシュにもローカルアドレスが載ってきました。
私の環境:
ルーター設定のPrimaryDNS=LAN内サーバーのプライベートIP
〃 SecondaryDNS=ISPのDNS
クライアントのPrimaryDNS=LAN内のルーターのプライベートIP
〃 SecondaryDNS=設定なし
〃 (サーバーへのsshアクセスを使用しないクライアントはIPアドレスを含め自動設定)
おやじさんの検証環境:
クライアントのPrimaryDNS=LAN内のサーバのプライベートIP(ですよね?
〃 SecondaryDNS=ISPのDNS
と少し違いますが、いずれにしても最終的に参照されるSecondaryにISPのDNSが設定されていると、原因はすっきりしませんが、グローバルにいってしまう事があるということですね^^;
万一のサーバーダウンの場合には、恐らく外部からのサーバーへのアクセス自体ができないと思われるため、(じっさいにはhttpは死なないケースもあり悩ましいんですが^^;))
・定期的に発生するLAN内からサーバーへのアクセスの不具合は犠牲にし、その都度、ルーターの再起動などで解決し、サーバーダウンの場合でもLAN内からの外部アクセスは確保する(=現在の設定どおり)
・めったにおこらないサーバーダウンの場合、サーバーを直すまでの間、全クライアントPCの外部アクセスが不能になるのを犠牲にして、LAN内部のサーバーアクセスに不具合が発生しないようにする(=ルーターのSecondary設定を削除)
といずれも悩ましいところですが、考えてみたいと思います。
おかげさまで頭の中が整理できました。ありがとうございました。
検証までしていただき、本当にありがとうございました。
いつもBBSを含めて情報の豊富さに、巡回させていただき、私のような駆け出しのサーバー管理者としてはそれだけでもありがたい限りでしたが、今回の件でも、ほとんどマンツーマンで懇切丁寧に解説をしていただき、頭がさがる思いでいっぱいです。
サイト運営、大変だと思いますが、陰ながら応援してます(勝手ながらあてにもさせていただいております^^)ので、今後とも、お体に気をつけてがんばってください。
改めて深く感謝いたします