キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
告知

JTAC-Mid-Career-Recruitment-2021.3

 AMATopBanner2021.4.23.JPG

 2021Apr.TopBanner.JPG

 

CSS:タイムアウト時間を経過してもフローがタイムアウトしない

1805
閲覧回数
0
いいね!
0
コメント

2009年04月21日(初版)

TAC SR Collection
主な問題

CSS が保持するフロー情報にはタイムアウト時間が決められており、無通信状態が一定時間続いた場合、そのフロー情報はタイムアウトし、フローテーブルから spoof-list(internal cache)に移されます。


しかし、この規定のタイムアウト時間を経過しているにも関わらずタイムアウトせず、フローテーブルに残り続けることがあります。たとえば HTTP プロトコルのデフォルトタイムアウト値は8秒と規定されていますが、8秒でタイムアウトしない場合があります。

解決策

フローのタイムアウトに関するタイマーとして、CSS は2つのタイマーを使用しています。1つは、flow-timeout-multiplier 等で変更可能な flow idle timer で、もう1つはトラフィック量やプロトコルに応じて動的に変化する inactivity timer です。


inactivity timer は、フローが新規作成された直後に開始され、このタイマーが切れるまではフローがタイムアウトしないようにするために使われます。inactivity timer が停止した後は、flow idle timer のみを使用して、タイムアウト処理が行われます。


これらのタイマーの値は、以下のコマンドで確認できます。

  • flow idle timer

# show flow-timeout default

TCP/IP Port Application Inactivity Timeout In Seconds
* Default 16
2049 NFS 2
2049 NFS 2
5190-5193 AOL Chat 180
80 HTTP 8
21 FTP Control 600
20 FTP Data 600
23 Telnet 600

# show flow-timeout configured


User Configured Values for Content Rule Flow Timeout
Port Content Rule Timeout


User Configured Values for Source Group Flow Timeout
Port Source Group Timeout

  • inactivity timer

(debug)# flow-agent show stats inactivity


Inactivity State Blocks:
******************************************************************************
Inactivity State: Nominal
Percent In Use - low/high: 0/40 FCB Thresholds low/high: 0/52428
TCP ListTimeout: 120, UDP ListTimeout: 15, Long Lived FCB List LoopCount: 1000
******************************************************************************

試験環境のようにトラフィックが非常に少ない状況においては、inactivity timer の値は120秒となります。この場合、新規作成されたフローは、最初の120秒間はタイムアウトしません。このため、flow idle timer において HTTP のタイムアウト値が8秒であっても、120秒経過するまでタイムアウトしない、という事象が発生します。120秒経過した後は、flow idle timer の設定値に従ってタイムアウト処理が行われます。


inactivity timer の値が120秒の場合、flow-timeout-multiplier コマンドで設定する値を、8以上にしないと、新規フローに関しては、期待通りの時間でタイムアウトしません。flow-timeout-multiplier で設定されるタイムアウト時間は、設定値を16倍した値が使用されるため、設定値が8であれば、8x16=128となり、120秒よりも大きくなるためです。