
一般的に、特に Solaris 10 マシンでは...
ご覧のとおり、ネットワークに問題が発生しています。私は、ロード バランサーの背後にある Solaris 10 サーバーでリバース プロキシ インスタンスをいくつか処理していますが、一部のユーザーは NAT ファイアウォール経由でこれにアクセスしており、いずれにしても、2 日前のある時点ですべてがクラッシュし、機能しなくなりました。
何時間もパケットをキャプチャして分析した結果、内部クライアントの 1 つがサイトにアクセスしようとすると、ある時点で (具体的には、Server Hello SSL メッセージを送信しているときなど)、LB が ICMP Fragmentation Needed メッセージを送り返し、MTU が 508 バイトであること、またパケットが Solaris のデフォルトである Dont Fragment ビットで設定されていることが分かりました...
はい、すべて順調です。しかし、その後に起こることは、ACK が受信されていないため (パケットがクライアントによって受信されていないため)、Solaris マシンが同じサイズ、同じ DF ビットのパケットを再度送信するだけです。
当然、これでは通信が不可能になってしまいます。
Solaris OS は、この ICPM メッセージを受信すると、それらのパケットの DF ビットを設定解除するか、接続 MSS をメッセージが伝える MTU より小さくなるように調整するべきではないでしょうか。これは、どこかで有効/無効に設定できるものなのでしょうか。それとも、そうなるはずのものなのでしょうか。
Solaris 10 でパス MTU 検出がどのように行われるかは正確にはわかりませんが、このメッセージを考慮しない場合、MSS はどのように調整されるのでしょうか?
どこを見ればよいかについてのアドバイスや助言、あるいはアイデアなどがあれば、ぜひ教えてください :)