- - PR -
プロバイダによって、HP閲覧可能/不可能
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-09-13 09:29
おはようございます。
自宅にapache2.0を利用しwebサーバを立てまして、 HPを公開しています。 (OSはredhat9) プロバイダはybbです。 プロバイダの対抗先がybbの場合、 インターネットを通してHPの閲覧が可能なのですが、 ybb以外のプロバイダの場合、 HPを閲覧できるプロバイダもあれば、 閲覧できないプロバイダもあります。 最初、apacheの問題かと思い、 configの設定等を見直したのですが、 特にそのような制限は設けていなかったため、 原因は特定できませんでした。 当時は、緊急性もないのでそのまま放っておいたのですが、 先日oracleのisqlplusを使用したところ、 isqlplusの使用ポート:5500でも同現象 (webブラウザよりhttp://***.***.***.***:5500/isqlplus/にてアクセスします。) プロバイダによって、接続できたり接続できなかったりする。 が発生している状況を知るに至りました。 これで、原因がapacheではないと特定されたのですが、 なぜ?プロバイダによってアクセスできたり、 できなかったりするのかの判断がつきません。 自宅のルータ(corega bar4p pro)側のセキュリティはすべて外しております。 原因等おわかりになられる方おりましたら、 教えてください。 よろしくお願いします。 | ||||||||
|
投稿日時: 2005-09-13 09:56
とりあえず思いついたことを・・・。
以下の部分の確認をしてください。 1.閲覧できない時はどんなログが出ますか? (access_logやerror_logなど) 2.TCPdumpなどでキャプチャーしパケットが届いているのか 3.サーバに変なルーティングがされていませんか? | ||||||||
|
投稿日時: 2005-09-13 10:12
こんにちは。
閲覧できない場合はブラウザにエラーなどが出るのでしょうか。 それとも、中途半端に表示されて「完全な」閲覧ができないのでしょうか。 具体的な症状を書いてもらえると、他の方にも何が起きているのか判りやすいと思いますよ。 また、tryさんも書いてますがサーバ側のログには何か残ってますでしょうか。 これらがある程度把握できれば、例えば 1.サーバにはアクセスした形跡があるが、クライアントでは エラーが出て見れない 2.サーバにはアクセスした形跡があるが、クライアントでは 中途半端に表示される(テキストのみ表示され、画像が表示されないなど) 3.サーバにもアクセスした形跡がない などというように、具体的に何処で引っかかってるのかある程度の 切り分けができると思います。 さて、見れたり見れなかったりする場合で私がすぐに思いつくのは Path MTU Discovery関連ですかね。 これがどういうものなのかや、該当する場合の対処法などは検索するとすぐに 出てくると思いますので、まずは試してみてはいかがでしょうか。 [ メッセージ編集済み 編集者: 綾瀬 編集日時 2005-09-13 10:24 ] | ||||||||
|
投稿日時: 2005-09-14 16:10
綾瀬さんに教えて頂きました、
Path MTU Discovery Black Holeが原因でした。 現在私の使用しているルーター「Corega BAR SW-4P Pro」のMTU値は、 MAXの1500に設定されているのですが、 OCNのMTU値が1454であるため、ルータ側で設定されている MTUの値(1500)未満の判別が認識できず、 データが届かなかったという次第です。 ルータ側にてこのMTUの値を1454に変更したところ、 問題なく、HPを閲覧することができるようになりました。 どうもありがとうございました。 | ||||||||
|
投稿日時: 2005-09-16 20:22
現在修行中のものです。
非常に関心のある話題ですので、 便乗で質問させていただいてよろしいでしょうか? まず1点目。 crahadollさんの選択された、Corega BAR SW-4P ProのMTUを1454にするよりも サーバーの稼動しているマシンのMTUを、そうしたほうがいいように思いますが、 いかがでしょうか?(ルーターで分割するのは効率が悪く思えます) 2点目ですが、この通信の一連の流れを ・クライアントよりTCPコネクション要求 ・セットされたMSSにより、サーバーとの間でMTU1500にてコネクション確立 ・サーバー側からのIPヘッダにはDFビットが立っている ・Corega BAR SW-4P ProもMTU1500なのでそのまま通過 ・経路上のどこか(おそらくPPPoE終端ルータ)で破棄される ・しかしブラックホールでICMPパケット分割要求メッセージが帰ってこず、通信が切断 ・そこでCorega BAR SW-4P ProのMTUを1454にセットしなおす ・クライアントとサーバー間でMTU1500でTCPコネクションが確立する(DFビットON)が ・Corega BAR SW-4P Proがサーバー機に対してICMPパケット分割要求メッセージを送信 ・サーバー側がこのコネクションのDFビットをオフにすることで通信が可能になる ・・・という理解でよろしいのでしょうか? それともDFビットって、途中のNATルーターやフィルタ機などで書き換えられているんでしょうか? (WEBサーバーでDFビットが立つ設定のメリットも想像できないんですが・・・) | ||||||||
|
投稿日時: 2005-09-17 01:57
同じく修行中の者です。
サーバのMTUが1500とかだと、無駄な処理が発生しますね。 多分パケットにDFがセットされていて、ICMPエラーが返ってきて、 パケットサイズを小さくして送りなおす、となると思います。 # Linuxでは /proc/sys/net/ipv4/ip_no_pmtu_disc で設定できるみたいです # デフォルトは0(Path MTU Discovery を無効にしない = 使う)らしいです サーバマシンへのIPアドレスの割り当てが固定なのかDHCPなのかが書かれてないですが、 DHCPだとオプションでMTUを通知できるらしいので、もしかするとサーバマシンのMTUも1454になっているかもしれません。 また、プロバイダがybbなのでサーバ側はMTUが1500でも大丈夫なはずです。 MTUの問題なら、クライアント側の設定が間違っている可能性が高いと思います。 でも、ネットワークの末端(PPPoE等)ではない部分でMTUが小さくなっている場合は どうするのが良いんでしょうかね。 ただ、利用者に知識が無くて、MTUの設定をしてもらえない場合は 大手の接続サービスで最もMTUサイズの小さいと思われるフレッツ・シリーズの MTUサイズの1454等にサーバ側を設定してしまうのもありかもしれませんね。 # ダイヤルアップだとかなり小さかったかな # でも正しいMTUの値が通知されて自動的にセットされるはず・・・ 2点目の質問は@ITさんの「ネットワークの設定は正しいか?」をどうぞ。
DFビットをオンに書き換えると、ICMPのエラーが返ってきた場合の処理が大変なのでやらないと思います。 DFビットをオフに書き換えると、送信元が Path MTU Discovery に対応しているのに、 わざわざ途中のルータで分割させたりすることになり、非効率なのでやらないと思います。 Webサーバ上でDFビットをオンにする理由はやはり転送の効率アップだと思います。 IPパケットの分割はそのルータの負荷が増えますし、そこから先のルータでも処理するパケットの数が増えるので負荷が増えます。 また、あて先のマシンでIPパケットの再構築が必要なのでそこでも負荷が増えます。 それにIPパケットが分割された場合、途中のFWやパケットフィルタ、PFW等で廃棄される可能性もあります。 確か(昔の?)ノートン・インターネット・セキュリティのデフォルト設定はそうでした。 |
1