- ベストアンサー
不思議な現象なのですが…
自宅でLinuxを利用したWebサーバを立てて外部公開しており、外部のネットワークからは問題なく参照できるのですが、自宅LAN内のPC(3台中3台)から自宅サーバのWebページを参照する事ができません。 (以下、状況を箇条書きします) (1)自宅PCから自宅用にプロバイダから取得したドメイン(URL)を入力すると参照不可× (2)自宅外のPCから自宅サーバのドメインを指定すると問題なく参照可能○ (3)自宅PCからでも、外部のProxyを設定すれば問題なく参照可能○ (4)自宅PCからサーバのLAN側のIPを指定すれば問題なく参照可能○ ちなみに回線はADSLでモデムはNTTのNV3です。 自宅へのポート80番での問合せはNV3の静的IPマスカレードを使い、仮想DMZに設定してある自宅サーバへ問い合わせる様にしています。 サーバのOSはCentOSで、wwwサーバはapache2.0です。 外部公開は出来ているので別段問題ないのですが、自宅でのメンテ時にわざわざ外部Proxyを当てなければいけないので面倒です。 どなたか心当たりのある方、助言をお願い致します。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
DNS による名前解決と http のアクセスは分けてパケットの流れを考える 必要があると思いますよ。(これが専門じゃないんで、あくまで参考程度で 聞いて下さいね) 補足に書かれた(1)(2)は 名前解決の部分で外のDNSに対してですから、内から 外に問い合わせのパケットが流れ、レスポンスが返ってきてという感じで完結します。 (3)の http アクセスはローカルPCがルータのWAN側IPに対してリクエストパケットを 出しますので、ルータの中でNATの処理が入り、さらにIPマスカレード処理になります。 NAT処理の段階で送信側がローカルIPからグローバルIPに置換されますので 送信、受信共に同じグローバルIPがセットされ、IPマスカレードの前処理で 異常パケットと判断され、落とされているんじゃないかと... あと、#6さんが書かれているようにルータの設定画面が出る場合もあったような... (随分昔の記憶なんで、はっきりしません。すみません) 但し、以前どこかの掲示板で一部のルータ(業務用に近い最高級品)はちゃんと 処理出来るという書き込みを読んだことがありますが、殆どの一般民生品は ダメみたいです。 私は自宅サーバに携帯電話でもアクセス出来る掲示板を置いているんで それで手っ取り早く確認しています。
その他の回答 (7)
- umasikajiro
- ベストアンサー率67% (545/803)
>内向きにDNSを立てても外部のPROXY経由で外部からドメインでアクセス出来るかどうかの確認は可能です 突っ込まれるんじゃないかなとは、思っていたんですが 可能かどうかじゃなくて、紛らわしいとかって話です PROXY指定したつもりが、つい外したまま確認して 外部からアクセスOKと、思ったはずが内部からしかドメインでアクセス出来なかったりとか? いや、そういうウッカリはおいらだけって話ですか?それならごめんなさいです(^^;) うちでは自宅サーバー機とは別にfedora5でDNS立てて 他のPCからもDNSサーバとして、指定してますが自宅サーバーのドメインだけは、わざと設定していません ↑のような事でウッカリ者だと自覚してますので
お礼
ひとまずは私も内部DNSを立てたいと思います。 回答ありがとうございました。
- pipipi523
- ベストアンサー率40% (148/365)
解決してよかったですね >こうなるだろうと考えた動き ローカルアドレス以外のアドレスへのパケットはすべてゲートウェイに設定したルーターに投げます グローバルIPはルータで取得していますのでルーターは恐らく内側からのポート80へのアクセスとして処理しHTMLの設定画面になると思われます。 ちなみに内向きにDNSを立てても外部のPROXY経由で外部からドメインでアクセス出来るかどうかの確認は可能です 速度を考えたら内向きにDNSをたてるべきでしょう (ちなみにうちは内向きDNSどころかメインPCにしかhostsの設定をしていなかったり・・)
お礼
回答ありがとうございます。 >グローバルIPはルータで取得していますのでルーターは恐らく内側からのポート80へのアクセスとして処理しHTMLの設定画面になると思われます。 どうもそうではない様です。ブラウザでは一定時間後に「ページを表示できません」と表示されていました(同一PCでルータの内側のIPを指定した際は設定画面は表示されます)。 ひとまずは勉強も兼ねて、内側にDNS立ててみようと思います。ありがとうございました。
- umasikajiro
- ベストアンサー率67% (545/803)
#4さんの言われるとおり、これで正常ですが 私の場合は 1.サーバーのメンテ、fileの更新など =>ローカルIPアドレスでアクセス 2.DNSのチェック =>PROXYサーバー経由して自宅のドメインでアクセス としています。 内向きにDNS立てても良いのですが、 それでLAN内からドメインでアクセス出来ても 外部からドメインでアクセス出来るかどうかの確認にはなりませんので、、、 PROXY経由なら外部からの確認できますからね
- fukurou56
- ベストアンサー率45% (59/131)
別に不思議では無く、そういう風な動きになります。 その現象を回避する為に、内向き(LAN 内向け) に DNS を立てるというのが 通常のやり方だと思います。家のサーバも Web と DNS 動いています。
補足
回答ありがとうございます。 下の回答でも書いたとおり、自宅PC的には自宅ドメイン名と自宅グローバルIPは解決されています。 そもそも私がこうなるだろうと考えた動きとしましては、 (1)ローカルPCのブラウザで自宅ドメインを指定 (2)ISPのDNSへ問合せて、自宅グローバルIPを引いてくる (3)自宅グローバルIPに対して外側から80番で問い合わせる (4)ルータがサーバに対して80番で問合せて、その結果を自宅PCに返す →上記理由により、内部DNSは必要ない というものだったのですが、これが根本的に間違っていたのでしょうか…見当違いの事を言っていたらすみません。
- 久保 泰臣(@omi3_)
- ベストアンサー率24% (254/1030)
DNSサーバーの指定の問題だとおもいますが。
補足
回答ありがとうございます。 DNSはプライマリ、セカンダリ共にISPの物を指定しており、利用しているダイナミックDNSサービスもISPが提供しているものです。 自宅PCからISPから提供して貰っているドメインに対してPINGを打つと、ちゃんとルータの外側に振られているグローバルIPに対して送信される為、名前解決もされているようです。 まずは他回答者の方から頂いたhosts編集の手でサーバのローカルIPとドメイン名を関連付けて一次対応としましたが、やはり根本的な解決方法を再度模索したいと思います。
- pipipi523
- ベストアンサー率40% (148/365)
内部からプロバイダから取得したドメイン(URL)を入力するとルーターへアクセスしに行くと思われます 内部PCのhostsというファイルに ローカルのLinuxサーバーIPアドレス 取得したドメイン名 例: 192.168.0.100 www.hogehoge.net と記述すると http://www.hogehoge.net/ で 192.168.0.100 にアクセス出来ます hostsファイルに関してはこちらを参考にしてみてください http://www.higaitaisaku.com/search.html
お礼
回答ありがとうございます。 確かにローカルPCのhostsに追記する事で解決しました。 取りあえずこの方法を一次対応とし、今後の対策として内部向きのDNSサーバを立てる等の手を考えたいと思います。 ありがとうございました。
- FoggyMountain
- ベストアンサー率21% (79/372)
まずログを見て原因を絞ってください。
補足
回答ありがとうございます。 ログについては自宅PCのeventvwr、httpdのアクセスとエラーログ、NV3のログを見ましたが、何も載っていない状態でした。 他に見るログは何かありますでしょうか…?
お礼
>DNS による名前解決と http のアクセスは分けてパケットの流れを考える必要があると思いますよ >NAT処理の段階で送信側がローカルIPからグローバルIPに置換されますので送信、受信共に同じグローバルIPがセットされ、IPマスカレードの前処理で異常パケットと判断され、落とされているんじゃないかと... 確かに言われてみればそんな気がします。ルータも庶民向け品ですしw 対策の参考にしたいと思います。ありがとうございました。