- PR -

WWWサーバーに接続できる環境とできない環境がある

1
投稿者投稿内容
たさか
会議室デビュー日: 2004/09/20
投稿数: 4
投稿日時: 2006-09-22 17:58
インターネットに公開しているWWWサーバーがあります
これに、ある環境からは接続でき、ある環境からは接続できない、という現象が発生していて困っています
原因に思い当たることがありましたらご教授ください

調査のためサーバー側とクライアント側両方でパケットキャプチャをしたところ
サーバー側から送信するIPパケットサイズが1500だとクライアント側に届いていないようなのです

不思議なのは全てのクライアントが接続できないのならともかく
極稀に接続できない環境が存在する、ということです
接続できない環境からはIPパケットサイズが1500だと必ずパケットロストします

原因に思い当たることはないでしょうか?
またこの先どう調査をするべきでしょうか?

[ メッセージ編集済み 編集者: たさか 編集日時 2006-09-22 18:20 ]
ひさ
常連さん
会議室デビュー日: 2005/05/10
投稿数: 46
投稿日時: 2006-09-22 18:36
DFビットが立ってる状態で送信されているんじゃないでしょうか。
接続できない環境までの経路の途中に、MTUの小さいネットワークがあって、
そこでパケット破棄されてるんでしょうね。
パケットキャプチャをされてるなら、IPのフラグを確認しましょう。

Pingを、パケットサイズ1500バイトでDFビットを立てて実行した場合に、
「Packet needs to be fragmented but DF set.」ってなエラーが返って
きたならそういうことです。

Windowsなら、こんな感じですね。

> ping -l 1500 -f 192.168.1.1

Pinging 192.168.1.1 with 1500 bytes of data:

Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

解決方法は、MTUサイズを小さくして出すようにするか、DFフラグを立てないかでしょうね。



[ メッセージ編集済み 編集者: ひさ 編集日時 2006-09-22 22:46 ]
たさか
会議室デビュー日: 2004/09/20
投稿数: 4
投稿日時: 2006-09-22 19:25
どうもありがとうございます
確かにDFフラグは1です
ちょっと話が変わりますが0にする方法が分からなくて色々検索していたところ
PMTUDブラックホール問題という存在を知りました
サーバー側の回線はBフレッツでPPPoEです
なんとなくこれかなーという気がしてきました
調査してみます
ひさ
常連さん
会議室デビュー日: 2005/05/10
投稿数: 46
投稿日時: 2006-09-22 19:41
DFフラグを0にするより、MTUサイズを少し小さくすればいいかと。
Bフレッツなら1454がお勧めのようです。

サーバがWindowsならいろいろツールがありますし、Linuxならifconfigコマンドで変更できますね。


[ メッセージ編集済み 編集者: ひさ 編集日時 2006-09-22 19:44 ]
たさか
会議室デビュー日: 2004/09/20
投稿数: 4
投稿日時: 2006-09-22 22:02
どうもありがとうございます
MTUは次にマシンを止められるときに試します

と、お客さんのネットワーク担当者から返事が来て「ICMPパケットはF/Wで止めてます」とのことですムキャー


[ メッセージ編集済み 編集者: たさか 編集日時 2006-09-22 22:18 ]
たさか
会議室デビュー日: 2004/09/20
投稿数: 4
投稿日時: 2006-10-13 16:27
ようやく解決しました…
Windowsのレジストリを変更してMTUを1454にしたところ、障害が発生していたユーザーから全てアクセスできるようになりました
しかし教えていただいたpingコマンドを、WEBサーバーからユーザーのGWへ投げてみたところ、「Packet needs to be fragmented but DF set.」と返ってきたのでICMPはブロックされていないと思われました?
ともあれ、どうもありがとうございました
1

スキルアップ/キャリアアップ(JOB@IT)