この記事では、過負荷状態のトラブルシューティング方法について説明します。
Cisco WAASネットワークは、お客様の要件に基づいて特定の数のTCP接続を最適化するように設計されています。WAEのモデルによっては、SSLおよびCIFSアプリケーションアクセラレータに追加の接続制限がある場合があります。全体的な接続制限または特定のアプリケーションアクセラレータ接続制限を超えると、デバイスが過負荷になります。この状況では、デバイスに着信するトラフィックの量が処理できる量を超えており、トラフィックが期待どおりに最適化されない(過負荷のトラフィックは最適化されていないトラフィックを通過する)可能性があります。
WAASアクセラレータデバイスが過負荷になると、通常は次のCentral Managerアラームが表示されます。最大接続(nnn)による過負荷状態に入力します。 number nnnは、最後のリブート以降にWAEが過負荷になった回数です。
また、次のようなsyslogエラーメッセージもログに記録されます。Sysmon: %WAAS-SYSMON-3-445015:検出された障害:TFOアクセラレータが過負荷になっている(接続制限)
CLIでさまざまなshowコマンドを使用して、許可される接続と実際の接続の数を判別し、詳細情報を収集できます。
最初の便利なコマンドshow tfo detailは、デバイスが処理できる最適化されたTFO接続の数を次のように示します。
wae-7341# show tfo detail Policy Engine Config Item Value ------------------------- ----- State Registered Default Action Use Policy Connection Limit 12000 <-----Maximum number of TFO optimized connections Effective Limit 11988 Keepalive timeout 3.0 seconds
[Connection Limit]の値は、このWAASデバイスが12000 TFO最適化接続をサポートできることを示します。
MAPI AOが一部の接続を予約している場合、有効制限は接続制限よりも低くなる場合があります。Connection Limitから予約済み接続を減算して、Effective Limitを取得します。
デバイスのTCPフローを理解するには、show statistics connectionコマンドを使用します(バージョン4.1.1では、show statistics connection allコマンドを使用します)。 このコマンドは、現在処理されているTFO/DRE/LZフロー、パススルーフロー、および特定のアプリケーションアクセラレータによって処理されているフローを表示します。このコマンドの例を次に示します。
wae# show statistics connection Current Active Optimized Flows: 5 Current Active Optimized TCP Plus Flows: 5 Current Active Optimized TCP Only Flows: 0 Current Active Optimized TCP Preposition Flows: 0 Current Active Auto-Discovery Flows: 0 Current Reserved Flows: 12 <---------- Added in 4.1.5 Current Active Pass-Through Flows: 0 Historical Flows: 143 D:DRE,L:LZ,T:TCP Optimization, A:AOIM,C:CIFS,E:EPM,G:GENERIC,H:HTTP,M:MAPI,N:NFS,S:SSL,V:VIDEO ConnID Source IP:Port Dest IP:Port PeerID Accel 92917 10.86.232.131:41197 70.70.7.11:3268 00:1a:64:69:19:fc TDL 92918 10.86.232.131:41198 70.70.7.11:3268 00:1a:64:69:19:fc TDL 92921 10.86.232.131:41216 70.70.7.11:3268 00:1a:64:69:19:fc TDL 94458 10.86.232.131:45354 70.70.7.11:1026 00:1a:64:69:19:fc TDL 36883 10.86.232.136:1857 10.86.232.131:1026 00:1a:64:69:19:fc TDL
出力の最初の行([Current Active Optimized Flows])から、デバイスに現在5つのアクティブ最適化フローがあることがわかります。2番目のカウンタ(Current Active Optimized TCP Plus Flows)からは、これらすべてがTFO/DRE/LZ最適化で処理されていることがわかります(TFO Plusは、TFOに加えてDREまたはLZ最適化が使用されていることを意味します)。 3番目のカウンタ(Current Active Optimized TCP Only Flows)は、TFOのみが最適化するフローを示します。
もう1つの便利なカウンタは、Current Active Auto-discovery Flowsです。このカウンタは、最適化されたフローまたはパススルーフローになるように完全に設定されていないフローを表示します。完全に設定するには、接続でSYN、SYN ACK、ACKハンドシェイクを確認する必要があります。これは、過負荷状態を処理する際に注意するのに役立ちます。Current Active Pass-Through Flowsカウンタは、デバイスがパススルーであると判断した接続、またはデバイスがSYN、SYN ACK、ACKの設定を認識しなかった接続を示します。これらのフローは、最適化されたフローとしてカウントされません。パススルーフローの場合、デバイスは評価される最適化されたフローの最大10倍を処理できる必要があります。
Current Reserved Flowsカウンタは、MAPIアクセラレータ用に予約されている接続数を示します。予約済みMAPI接続とそのデバイス過負荷への影響の詳細については、「MAPIアプリケーションアクセラレータの予約済み接続の過負荷への影響」の項を参照してください。
次の3つのカウンタの合計は、WAEデバイスが接続制限にどの程度近いかを示しています。
この合計が接続制限以上の場合、デバイスは過負荷状態になります。
最適化された5つのフローの詳細が、カウンタの下の表に表示されます。
デバイス上の現在のTFOフローの数を表示するために使用できるもう1つのコマンドは、show statistics tfo detailコマンドです。出力の最も有用なカウンタは「No. of active connections」と、「Policy Engine Statistics」の下の「Active connections」の2つです。
wae# show statistics tfo detail Total number of connections : 22915 No. of active connections : 3 <-----Current optimized connections No. of pending (to be accepted) connections : 0 No. of bypass connections : 113 No. of normal closed conns : 19124 No. of reset connections : 3788 Socket write failure : 2520 Socket read failure : 0 WAN socket close while waiting to write : 1 AO socket close while waiting to write : 86 WAN socket error close while waiting to read : 0 AO socket error close while waiting to read : 80 DRE decode failure : 0 DRE encode failure : 0 Connection init failure : 0 WAN socket unexpected close while waiting to read : 1048 Exceeded maximum number of supported connections : 0 Buffer allocation or manipulation failed : 0 Peer received reset from end host : 53 DRE connection state out of sync : 0 Memory allocation failed for buffer heads : 0 Unoptimized packet received on optimized side : 0 Data buffer usages: Used size: 0 B, B-size: 0 B, B-num: 0 Cloned size: 54584 B, B-size: 73472 B, B-num: 111 Buffer Control: Encode size: 0 B, slow: 0, stop: 0 Decode size: 0 B, slow: 0, stop: 0 AckQ Control: Total: 0, Current: 0 Scheduler: Queue Size: IO: 0, Semi-IO: 0, Non-IO: 0 Total Jobs: IO: 219110, Semi-IO: 186629, Non-IO: 49227 Policy Engine Statistics ------------------------- Session timeouts: 0, Total timeouts: 0 Last keepalive received 00.0 Secs ago Last registration occurred 8:03:54:38.7 Days:Hours:Mins:Secs ago Hits: 52125, Update Released: 17945 Active Connections: 3, Completed Connections: 37257 <-----Active Connections Drops: 0 Rejected Connection Counts Due To: (Total: 12) Not Registered : 12, Keepalive Timeout : 0 No License : 0, Load Level : 0 Connection Limit : 0, Rate Limit : 0 <-----Connection Limit Minimum TFO : 0, Resource Manager : 0 Global Config : 0, Server-Side : 0 DM Deny : 0, No DM Accept : 0 Auto-Discovery Statistics ------------------------- Total Connections queued for accept: 22907 Connections queuing failures: 0 Socket pairs queued for accept: 0 Socket pairs queuing failures: 0 AO discovery successful: 0 AO discovery failure: 0
場合によっては、2つのカウンタが異なり、「No.of active connections」は、TFO、TFO/DRE、TFO/DRE/LZ、およびTFO/DRE/LZとアプリケーションアクセラレータによって最適化されているすべての現在のフローを表示します。ポリシーエンジンの統計情報の下の[Active Connections]には、上記の状態のすべてのフローに加えて、TFOとアプリケーションアクセラレータによってのみ最適化される接続が含まれます。この状況は、TCPフローが着信し、アプリケーションアクセラレータ分類子に一致しましたが、SYN、SYN ACK、ACKハンドシェイクが完了していないことを意味します。
多くのTFOオーバーロードの場合、問題が引き続き発生している場合は、次のコマンドを調べて、最適化されたフローの数が、ハードウェアに対して最適化されたTCP接続の定格数に達しているかどうかを判断できます。フローの詳細を表示し、このトラフィックが正当でデバイスの過負荷であるか、ウイルス、セキュリティスキャナ、またはネットワーク上で発生している他の何かを判断するために、すべてのフローを使い尽くしているものを確認できます。
ポリシーエンジン統計情報の[Connection Limit]カウンタは、WAEが最適化されたTCP接続の定格数を超えたために拒否および通過した接続の数を報告します。このカウンタが高い場合は、WAEが頻繁に処理できる接続数を超えていることを意味します。
最適化された接続の数が最適化されたTCP接続の定格数に近くなくて、過負荷アラームが発生している場合は、show statistics connectionコマンドかshow statistics tfo detailコマンドのPolicy Engine Statisticsの下の「アクティブな接続」を参照してください。場合によっては、最適化済み接続の数は非常に少ない場合もありますが、[Policy Engine Statistics]の[Active Connections]は、ハードウェアに対して最適化されたフローの定格数とほぼ等しくなります。この状況は、分類子に一致するフローが多数ありますが、完全に確立されていないことを意味します。TCP SYNが分類子と一致すると、最適化された接続が予約されます。この接続は、TCPハンドシェイクが終了して最適化が開始されるまで、最適化されたTCP接続カウントに表示されません。デバイスがフローを最適化すべきでないと判断した場合、そのフローは[Policy Engine Statistics]のアクティブな接続数から削除されます。
TFOオーバーロードが発生し、Policy Engine Statistics Active Connectionsがデバイス上で最適化されたすべてのTCP接続を使い切っているように見える場合のトラブルシューティングをさらに行うには、show statistics accelerator detailコマンドを使用します。このコマンドの出力で、各アプリケーションアクセラレータの[Policy Engine Statistics]の下の[Active Connections]を調べて、完全に確立されていない接続を受信しているアプリケーションアクセラレータを判別します。次に、show statistics filteringコマンドを使用して、これらのフローの状態を調べます。このコマンドは、デバイス上のフィルタリングタプルの数を示します。次に例を示します。
wae# show statistics filtering Number of filtering tuples: 18 Number of filtering tuple collisions: 0 Packets dropped due to filtering tuple collisions: 0 Number of transparent packets locally delivered: 965106 Number of transparent packets dropped: 0 Packets dropped due to ttl expiry: 0 Packets dropped due to bad route: 10 Syn packets dropped with our own id in the options: 0 Syn-Ack packets dropped with our own id in the options: 0 Internal client syn packets dropped: 0 Syn packets received and dropped on estab. conn: 0 Syn-Ack packets received and dropped on estab. conn: 0 Syn packets dropped due to peer connection alive: 525 Syn-Ack packets dropped due to peer connection alive: 0 Packets recvd on in progress conn. and not handled: 0 Packets dropped due to peer connection alive: 1614 Packets dropped due to invalid TCP flags: 0 Packets dropped by FB packet input notifier: 0 Packets dropped by FB packet output notifier: 0 Number of errors by FB tuple create notifier: 0 Number of errors by FB tuple delete notifier: 0 Dropped WCCP GRE packets due to invalid WCCP service: 0 Dropped WCCP L2 packets due to invalid WCCP service: 0 Number of deleted tuple refresh events: 0 Number of times valid tuples found on refresh list: 0
フィルタリングタプルの数は、最適化されたデバイス上のフローの数、パススルー、FIN WAIT状態、セットアップ状態などです。確立された各フローは2つのタプルとして表示されます。フローの各側に1つずつ表示されるため、この出力に表示される数値は、他のコマンドで表示されているフローの数よりもはるかに大きい場合があります。
フィルタリングリストのフローの詳細を取得するには、次のようにshow filtering listコマンドを使用します。
wae# show filtering list E: Established, S: Syn, A: Ack, F: Fin, R: Reset s: sent, r: received, O: Options, P: Passthrough B: Bypass, L: Last Ack, W: Time Wait, D: Done T: Timedout, C: Closed Local-IP:Port Remote-IP:Port Tuple(Mate) State 10.86.232.82:23 10.86.232.134:41784 0xbc1ae980(0x0 ) E 10.86.232.131:58775 70.70.7.11:3268 0x570b2900(0x570b2b80) EW 70.70.7.11:3268 10.86.232.131:58775 0x570b2b80(0x570b2900) EDL 70.70.7.11:3268 10.86.232.131:57920 0x570b2d80(0x570b2800) E 10.86.232.131:57920 70.70.7.11:3268 0x570b2800(0x570b2d80) E 10.86.232.82:23 161.44.67.102:4752 0xbc1aee00(0x0 ) E 10.86.232.131:58787 70.70.7.11:1026 0x570b2080(0x570b2e80) EW 70.70.7.11:1026 10.86.232.131:58787 0x570b2e80(0x570b2080) EDL 10.86.232.131:48698 70.70.7.11:1026 0x570b2f00(0x570b2880) PE 10.86.232.131:58774 70.70.7.11:389 0x570b2300(0x570b2180) EW 70.70.7.11:389 10.86.232.131:58774 0x570b2180(0x570b2300) EDL 10.86.232.131:58728 70.70.7.11:1026 0x570b2380(0x570b2a00) E 10.86.232.131:58784 70.70.7.11:1026 0x570b2e00(0x570b2980) EW 70.70.7.11:1026 10.86.232.131:58784 0x570b2980(0x570b2e00) EDL 70.70.7.11:1026 10.86.232.131:48698 0x570b2880(0x570b2f00) PE 10.86.232.131:58790 70.70.7.11:3268 0x570b2100(0x570b2c80) EW 70.70.7.11:3268 10.86.232.131:58790 0x570b2c80(0x570b2100) EDL
show statistics accelerator allコマンドで、最適化されたすべてのTFO接続を使い切っているアプリケーションアクセラレータが表示される場合は、そのポートまたはトラフィックをフィルタリングできます。たとえば、ポート80のトラフィックをフィルタリングする場合は、show filtering list | I :80コマンド。
[状態]列の凡例を確認します。フローがSYN状態の場合、S状態のフローが多数表示されることがあります。WAEがオプションが設定されたSYN ACKを返信した場合、状態SAsOが表示されることがあります。この表示は、フローの状態を判別するのに役立つ可能性があり、そこから、ルーティングの問題、ウイルス、またはWAEが接続を解放しない問題があるかどうかを判別できます。フローに何が起きているかを正確に判断するためにトレースが必要な場合がありますが、上記のコマンドを使用すると、何を探すべきかを把握できます。
多くの場合、TFOオーバーロードはMAPIアプリケーションアクセラレータによって予約された接続が原因で発生するため、MAPIアプリケーションアクセラレータが接続を予約する方法のプロセスを理解するのに役立ちます。
MAPIアプリケーションアクセラレータは、TFO接続を予約し、クライアントがExchangeサーバに対して行うすべての現在および将来の接続を高速化するために、TFOに十分な接続を確保します。MAPIクライアントが複数の接続を行うのは正常です。クライアントがMAPIアプリケーションアクセラレータを介して最初の接続を行い、その後の接続がMAPIアプリケーションアクセラレータで失敗した場合、クライアントの接続が失敗する可能性があります。
このような接続障害を回避するために、MAPIアプリケーションアクセラレータは次のように接続リソースを予約します。
これらの予約済み接続はすべて、パフォーマンスを向上させ、MAPIアプリケーションアクセラレータを使用して追加の接続を確立できないため、クライアント接続が失敗する可能性を減らすために設計されています。
[Current Active Optimized Flows] + [Current Active Auto-Discovery Flows] + [Current Reserved Flows]がデバイスの固定接続制限を超えると、過負荷が発生します。一般に、新しい接続が通過します。ただし、一部の新しいMAPI接続は最適化される可能性があります。デバイスが過負荷ポイントにある場合、クライアントがすでに接続しているMAPIサーバに追加要求を行うと、予約された接続が使用されます。ただし、予約された接続が十分でない場合(クライアントが同じMAPIサーバに4番目の接続を行い、WAEがすでに過負荷状態になっている場合など)は、接続解除状態が発生し、クライアントが同じ単一のメールメッセージの重複コピーを多数受信するなど、誤動作します。
システムがMAPIアプリケーションアクセラレータに接続を転送しなかった場合は、接続にアクティビティがあるかどうかに応じて、「PT Rjct Resources」または「PT in progress」と表示されます。接続がMAPIアプリケーションアクセラレータに転送され、予約が失敗した場合、接続は「M」ではなくアクセラレータの「G」でマークされます(show statistics connection optimized mapiコマンドの出力)。 このコマンドの例については、「MAPI AOのトラブルシューティング」を参照してください。
過負荷状態が頻繁に発生している場合は、Outlookクライアントが接続を行っている方法(Exchangeサーバへの接続数)を理解することが重要です。 クライアントでOutlookを実行している状態で、Ctrlキーを押しながら、タスクバーのシステムトレイにあるOutlookアイコンを右クリックします。[Connection Status] を選択して、Outlookクライアントが接続しているサーバのリストを表示します。そこから、クライアントが行っている接続の数と、異なるExchangeサーバの数がわかります。クライアントが複数の異なるサーバに接続している場合、ユーザが単一のExchangeサーバへのMAPI接続のみを開き、そのサーバへの複数の接続を使用できるように、メールを統合する方法を調査すると便利です。
また、MAPI接続を行っている可能性のある他のアプリケーションがあるかどうかを調べることもできます。
最適化された接続が正当であるかどうかを確認します。多くの場合、ネットワークでサービス拒否(DoS)攻撃が発生すると、WAEが接続の最適化を試みる原因になる可能性があります。その場合、ネットワークでDoS保護メカニズムを使用して、接続をプロアクティブに閉じます。
接続が正当な場合、その場所に導入されているWAEのサイズが小さく、アップグレードが必要になる場合があります。または、追加のWAEを導入してそのサイト内の拡張性を高めることができます。