ネットワークに関しての質問です。


ハンドシェイク時にsyn/ackのやり取りが終了してからデータのやり取りが始まりますが、以下の2番目で接続自体が拒否されています。
1.SYN
2.SYN-ACK
3.ACK
2番でリセットされてしまい、コネクションそのものが出来ません。
構成は
FW <=> バランサー <=> WEBサーバ
となっておりFW <=> バランサー間で時々発生します。
考えられる原因としましてはSYNflood対策などが考えられるのですが、バランサー側でそういった事はしていないようで、拒否される原因が他に思いつきません。

ハンドシェーク時に拒否される理由や原因で思いつくものがあれば識者の方のアドバイスをいただきたいと思います。

回答の条件
  • URL必須
  • 1人5回まで
  • 13歳以上
  • 登録:2011/11/04 10:56:34
  • 終了:2011/11/11 11:00:05

回答(1件)

id:yamadattt No.1

yamadattt回答回数2ベストアンサー獲得回数02011/11/04 16:35:40

ポイント100pt

パッと思いついたものを。

その1 バランサーの処理能力を超えている

httpsの通信だとSSLの暗号化・復号化を行っていると思います。

性能を超えた通信にはRSTを返却する仕様のロードバランサーがあります。

また、セッション数の上限を超えた通信はRSTを返却する場合もあります。

その2 httpsの通信において暗号化スイートが合わない

暗号化スイートがクライアントとサーバ間で合わないとか。

その3 webサーバの処理能力を超えている

webサーバの処理能力が超えている、apache等のwebサーバで定義した以上の通信が来るとRSTを返却する仕様のロードバランサがあります。

どのような製品を使用しているか、どのような状態で発生することが多いのか(高負荷時、特定の処理の時)、どんな通信(httpなのかhttpsなのか、別の通信なのか)なのかがあれば、さらにアドバイスをもらいやすくなるかと思います。

http://q.hatena.ne.jp/1320371793

他1件のコメントを見る
id:yamadattt

処理能力やSSLが原因ではなさそうですね。

パケットキャプチャではSYNに対してのRSTになってますでしょうか?

(シーケンス番号が対応づけられていますでしょうか?)

ロードバランサー(LBと呼びますね)の管理しているセッションがタイムアウトになると、RSTを返却したりします。

ログアウトボタンを押してブラウザを閉じて欲しいのに、×ボタンを押されたとかだとこのような事象が発生します。

ただ、この場合はSYNの要求に対してRSTを返却するわけではないので、パケットキャプチャは確認いただければと思います。

また、思いつくのは、http以外の通信でRSTが返却されているとか。

分散ルールがhttpしか定義していないのに、httpsやftpの通信が来るのでRSTを返却しているとか。ヘルスチェック系の通信をFWが出しているとか。

詳細な構成、パケットキャプチャを見ると原因がわかるかもしれませんが、パッと思いつくのはこんな感じです。

WEBサーバが返却したFIN等をLBでRSTに変換してクライアントに返却するという設定もあったと思います。

FW <=> バランサー間だけでなく、クライアント <=> FWの間、LB <=> webサーバ間のキャプチャすると原因が特定できるかもしれません。

2011/11/04 17:51:17
id:quocard

再度確認しました。

RSTに関してはSYNに対してのRSTとなっておりました。

シーケンス番号についても対応づけられておりました。

プロトコルに関しては、こちらで定期的にコンテンツを取得するものをHTTPオンリーで走らせて見ましたが、それでも症状は時折みられました。

LB <=> WEB間についても色々と見てみる必要があるかと思いますが、Wiresharkによるやり取りとしては3wayハンドシェーク時のSYN-ACKがRSTになっているのでWEBとのやり取り以前のセッション確立時に切られているという認識です。

WEBサーバ側のFINをLBでRSTに変換する機能はまったく知りませんでしたのでこちらも確認できるようであれば確認してみます。

2011/11/07 10:04:24
  • id:hirokeeper
    LB は何をお使いですか。
    http://qiita.com/kuni-nakaji/items/c07004c7d9e5bb683bc2
    が参考になりませんか

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません