質問

iptablesを有効にして、2.6.16カーネルでDebianを実行しています。システムは、カスタムメイドのHTTPプロキシを実行していますが、これにはわずかな負荷がかかります(他のサイトの同じ負荷で正常に動作します)。システムは、4つのサーバーで構成され、その前に仮想IPを備えたロードバランサーがあり、その前に4つのISA 2004マシンの配列があるため、基本的なトポロジは次のとおりです。

クライアント-> ISA [1-4]->ロードバランサー->プロキシ[1-4]->インターネット

ISAは、SYNパケットを送信することがありますが、SYN-ACKは送信されません。 3秒後に再試行し、さらに6秒後に3回試行します。その後、プロキシがダウンしたことを報告し、直接接続に切り替えます。この間、つまり、これら3つのSYNの前、間、および後、つまり同じISAからの他のSYNが来て、正常に応答されます。

非常によく似た問題が他の人から報告されています(ただし、解決策はありません):

すべてはCentOSと呼ばれるLinuxのフレーバーから来ています。デフォルトではiptablesが有効になっているのが特徴です。

http://www.linuxhelpforum.com/showthread.php?t = 931912& mode = linear http://www.centos.org/modules/newbb/viewtopic。 php?topic_id = 16147

ほぼ同じ:ただし、少し異なります: http: //www.linuxquestions.org/questions/linux-networking-3/tcp-handshake-fails-synack-ignored-by-system.-637171/

も関連があるようです: http://groups.google.com/group/ comp.os.linux.networking / browse_thread / thread / b1c000e2d65e0034

iptablesが原因であると思われますが、追加のフィードバックを歓迎します。

役に立ちましたか?

解決

最初に投稿したリンクで述べたように、listen呼び出しの2番目のパラメーターを見てください。保留中の(まだ受け入れられていない)接続の最大数です。 listen(2)のマニュアルページによると、プロトコルが再送信をサポートしている場合(TCPは)、キューがいっぱいになると接続要求はドロップされます(キューに十分なスペースがある場合、接続を作成する再送信が予想されます) )。

他のヒント

実際には、iptablesは不正なパケットであり、無効なパケットをドロップするルールであることが判明しました。これらのSYNが無効であるとiptablesが判断した理由はまだ不明です(ドロップの少なくとも30分前に同じ送信元ポートを持つトラフィックがなかったため、TIME_WAITはありません)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top