うちのネットワークで, ときどき見えないWebサイトが存在することが分かった.
例えば, www.microsoft.comや, www.infoseek.co.jpなど.
非常に悩んだが, 最終的にはMSSの問題だということが分かった.
うちでは, fletsをカーネルモードrp-pppoeで使用しているので,
iptablesの設定に
-A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
を付け足すことで, 対応した.
多くのサイトは見えているが, いくつかのサイトが見えない.
同じような構成のシステムがもう一つあるため, そちらで再現を
試みてみたが, 再現できない.
両方のシステムで, パケットキャプチャを行った結果でも, それほど
大きな違いはない.
ルータ兼FWのLinux機からはちゃんとWebページが見える.
片方のシステムの内部LANから, NAT越しでのサーフィンが失敗する.
NAT(iptablesのMASQUERADE)されたパケットが相手方Webサーバで
DROPされているのか????とも考えた.
解決の糸口はetherealの吐いた"TCP Previous segment lost".
これでググったら, いいのに出会った.
何がおきていたかというと...
ブラウザ サーバ
SYN(MSS=1452)→→→→→→→→
←←←←←←←←←←←←←SYN,ACK(MSS=1460)
ACK→→→→→→→→→→→→→
に続いて, ブラウザが"GET / HTTP/1.0"を送出するまでは
良かったのだが, その応答から, 途中のルータなどにより
ドロップされていた.
なぜドロップされるのかというと, MTUのサイズが大きすぎるため,
適切に転送できないから.
なぜ, 片方のシステムでは, 症状が発生し, 他方では発生しなかったのか
は, 確実には分からないが, Linux機の内部LAN側についているHUBが
関係しているのかもしれない.
なお, rp-pppoeをカーネルモードで動かした場合, pppoe.conf内の
CLAMPMSSの設定が無視されるので要注意.
MSS値を変更するには, iptablesのルールに
-A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
や
-A FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1415: -j TCPMSS --set-mss 1412
などを加えることで対策を行う.
-
3月からWindows Updateがうまく行かない。かなり以前の職場でWSUSといろいろと格闘したので、Windows Updateの扱いはよく知っているつもりではあるが、簡単には治らなかった。 次の累積パッチで治るかなと思って放置していたが、4月分もあたっていないし、最悪再イ...
-
AndroidスマホとカーナビをBluetooth接続をしている。 Google Play Musicではカーナビに楽曲情報が表示されるが、YouTube Musicでは表示されない。曲の頭出しや停止・再生はカーナビ側から操作ができる。 結論から言うと、AVRCPのバージョン...
-
iPadを落としたら、イヤホンジャックが抜けずに途中からポキっと行ってしまった。 仕方がないので修理をすることに。 使っているヘッドセットはlogicoolのH151 STEREO HEADSET。
-
QEMU上でWindows10の仮想PCを動かしていたが、そろそろWindows11に対応冴えておく必要があると思い、アップグレードしようとした。 結論的には、Win10はBIOSで動いていたのに対し、Win11はUEFIセキュアブートにしなければならなく、HDDイメージにEFI...
-
HKU\.DEFAULT(HKEY_USERS\.DEFAULT)は、あちこちで間違った認識をされている。HKU\.DEFAULT(HKEY_USERS\.DEFAULT)は、デフォルトユーザとかテンプレートユーザと呼ばれるアカウント(=今後作成されるユーザアカウントの初期設定)...
登録:
コメントの投稿 (Atom)
0 件のコメント:
新しいコメントは書き込めません。