L4 ipvs ロードバランサーと L7 特使バランサー設定があります。私のL4バランサーの1つが失敗し、別のL4バランサー(BGPのおかげで)によって処理されたトラフィックが一貫したハッシュのために同じL7ノードにプロキシされているとしましょう。
これには何の問題もありません。一般的な設定だと思います。
問題は長い間実行されている接続にあります。新しいL4ノードがトラフィック(データのみ - ACK / PUSHパケット)を受信し、ノードがSYNパケットを受信しない場合、ノードはRSTパケットをクライアントに送信して接続を終了します。下の画像はこれを示しています。
このようなことが起きてはいけません。私の質問は、この問題を引き起こす方法(sysctl設定など)がありますか? RSTパケットを削除するためにiptablesを使用できることを知っていますが、これは正しくないようです。
答え1
net.ipv4.vs.sloppy_tcp
実際には、この特定の問題を解決するsysctl変数があります(https://lore.kernel.org/patchwork/patch/386081/?fbclid=IwAR17t0jEvRSlvZFch1Lz_CDMjYOzUluuNGQmiyKequZK1Vq4kI75vezWEGs) 問題を解決しました。
この問題を解決するのに役立つPatric Shuffに感謝します(このトピックに関する素晴らしい講演 -https://www.usenix.org/conference/lisa16/conference-program/presentation/shuff)。