パスMTU問題
sorry Japanese only
最終更新日 2005/02/11
page size = Mbyte

今まで問題無く運用していた linux firewallルーターですが、2005年2月になってから、
急に見れないサイトが出てきてしまいました。
確認できた所で、以下のサイトが見れなかったです。
http://www.infoseek.co.jp
http://www.itmedia.co.jp
http://www.naver.co.jp
(もしかしたらもっと前から見られなかったかもしれません)

現象としては
pppoe接続している linuxルーターからは見ることが出来る。
linuxルーターへ接続している Win PCからだと見ることが出来ない。
IE,Firefox,wgetコマンドなど、どれもダメ。
応答を待っています... から先に進みません。
但し proxyの設定をして経路を変えると linuxルーター経由でも見ることが出来る。
linuxルーターでなく、市販のルーターへ Win PCを接続すれば問題無く見れる。

linuxルーターが悪そうだけど、何のこっちゃ?って現象です。

なぜ急に 2005年2月になったら見れないサイトが出てきだしたかは分からないのですが、
色々調べていったら 『パスMTU問題』と言うのが原因のようでした。
経路途中にある数多くのルーターが、どれぐらいの MTU値を受け付けられるか?
受け付けられない場合、パケットの分割をするはず。
しかし、分割禁止のヘッダーが付いていると分割できない。
分割できず大きいままのパケットだと受け付けられない。
よって、パケット不達となってしまう。
って事なのかな?

結局、iptablesのルールに以下の行を追加したら解消しました。

iptables -A FORWARD -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu


ちなみに、linuxルーターへ接続した win2000の PCより wgetコマンドを debugモード、serverレスポンス表示にて
実行した結果は以下の通りでした。

表示できないとき
H:\>wget -S -d http://www.naver.co.jp
DEBUG output created by Wget 1.9.1 on Windows.

set_sleep_mode(): mode 0x80000001, rc 0x80000000
--21:42:01--  http://www.naver.co.jp/
           => `index.html.15'
Resolving www.naver.co.jp... seconds 0.00, 203.192.145.130
Caching www.naver.co.jp => 203.192.145.130
Connecting to www.naver.co.jp[203.192.145.130]:80... seconds 0.00, connected.
Created socket 720.
Releasing 00894958 (new refcount 1).
---request begin---
GET / HTTP/1.0
User-Agent: Wget/1.9.1
Host: www.naver.co.jp
Accept: */*
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response...   <==いくらまっても返事が返ってこない
Read error (No such file or directory) in headers.
Closing fd 720
Retrying.

--21:42:06--  http://www.naver.co.jp/
  (try: 2) => `index.html.15'
Found www.naver.co.jp in host_name_addresses_map (00894958)
set_sleep_mode(): mode 0x80000000, rc 0x80000000
^C
H:\>
リクエストを送っても、返事が返ってこないようでした。

対応取った後
H:\>wget -S -d http://www.naver.co.jp
DEBUG output created by Wget 1.9.1 on Windows.

set_sleep_mode(): mode 0x80000001, rc 0x80000000
--01:53:30--  http://www.naver.co.jp/
           => `index.html.18'
Resolving www.naver.co.jp... seconds 0.00, 203.192.145.130
Caching www.naver.co.jp => 203.192.145.130
Connecting to www.naver.co.jp[203.192.145.130]:80... seconds 0.00, connected.
Created socket 720.
Releasing 00894958 (new refcount 1).
---request begin---
GET / HTTP/1.0
User-Agent: Wget/1.9.1
Host: www.naver.co.jp
Accept: */*
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response... HTTP/1.1 200 OK
Date: Fri, 11 Feb 2005 16:53:29 GMT

 2 Date: Fri, 11 Feb 2005 16:53:29 GMTServer: Orange/3

 3 Server: Orange/3X-Powered-By: PHP/4.3.4

 4 X-Powered-By: PHP/4.3.4Connection: close

 5 Connection: closeContent-Type: text/html

 6 Content-Type: text/html


    [ <=>                                 ] 23,108        --.--K/s

Closing fd 720
01:53:30 (322.38 KB/s) - `index.html.18' saved [23108]
H:\>
あっという間にコマンド終了。

15346
戻る