このドキュメントでは、Cisco Catalyst 3750 シリーズ スイッチでの CPU 高使用率の原因について説明しています。 シスコ製ルータと同様に、CPU 高使用率の原因を特定するためにスイッチで CPU 使用率を表示するには、show processes cpu コマンドを使用します。 ただし、Cisco ルータと Cisco スイッチではアーキテクチャおよび転送メカニズムが異なるため、show processes cpu コマンドの一般的な出力も大幅に異なります。 このドキュメントでは、Catalyst 3750 シリーズ スイッチでの CPU 高使用率の原因となる一般的な症状についても説明しています。
このドキュメントに関する固有の要件はありません。
このドキュメントの情報は、Catalyst 3750 スイッチに基づくものです。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
CPU のパケット処理アーキテクチャと CPU の使用率が高くなる問題のトラブルシューティングについて考える前に、ハードウェア ベースの転送を行うスイッチと Cisco IOS® ソフトウェア ベースのルータでは CPU の使用方法が異なっていることを理解しておく必要があります。 CPU の使用率が高くなる現象は、デバイス上のリソースの枯渇や、クラッシュの危険を示すものと誤解されていることが多いようです。 容量の問題は、Cisco IOS ルータで CPU 使用率が高くなった場合に発生する症状の 1 つです。 ところが、ハードウェアベースの転送を行うスイッチでは、容量の問題が CPU 高使用率の症状となることはほとんどありません。
CPU 高使用率のトラブルシューティングを行うための最初のステップは、使用している Catalyst 3750 スイッチの Cisco IOS バージョンのリリース ノートを調べて、可能性のある既知の IOS の不具合を探すことです。 この方法で、トラブルシューティングのステップから IOS の不具合を排除できます。 Catalyst 3750 スイッチのリリース ノートの一覧は、『Cisco Catalyst 3750 シリーズ スイッチのリリース ノート』を参照してください。
このセクションでは、Catalyst 3750 スイッチで CPU 使用率が高くなる一般的な問題について説明します。
高 CPU 使用率の一般的な原因の 1 つは、過剰な Internet Group Management Protocol(IGMP; インターネット グループ管理プロトコル)脱退メッセージの処理によって Catalyst 3750 の CPU がビジー状態になることです。 Cisco IOS ソフトウェア リリース 12.1(14)EA1a が稼働する Catalyst 3750 スイッチのスタックが、CatOS が稼働する Cat6500 のような、IP オプションで MAC ベースの IGMP エントリを生成する他のスイッチに接続されている場合、3750 では IGMPSN(スヌーピング)プロセスで CPU 使用率が高くなる状態が発生します。 これは、そのスタック内での MAC ベースのクエリ パケットのループによる結果です。 HRPC hl2mm request プロセスでも CPU の使用率が高くなる状態が発生します。 Cisco IOS ソフトウェア リリース 12.1(14)EA1a が稼働する Catalyst 3750 のスタックで EtherChannel が設定してあると、過剰な IGMP リーブ メッセージが作成される可能性があります。
Catalyst 3750 では大量の IGMP クエリを受信します。 これにより、IGMP クエリ カウンタが毎秒数百件も増加し始めます。 このため、Catalyst 3750 スイッチで CPU 使用率が高くなります。 Cisco Bug ID CSCeg55298(登録ユーザ専用)を参照してください。 この不具合は、Cisco IOS ソフトウェア リリース 12.1(14)EA1a で確認されており、Cisco IOS ソフトウェア リリース 12.2(25)SEA 以降で解決されています。 永続性のあるソリューションは Cisco IOSバージョンへアップグレードすることです。 一時的な回避策には、Catalyst 3750 スタックで IGMP スヌーピングを無効にする、あるいは、3750 のスタックに接続されたスイッチで MAC ベースのクエリを無効にするなどの方法があります。
show ip traffic コマンドによる出力例を次に示します。ここでは、誤ったオプションの IP パケットと急速に増加するアラートが示されています。
Switch#show ip traffic Rcvd: 48195018 total, 25628739 local destination 0 format errors, 0 checksum errors, 10231692 bad hop count 0 unknown protocol, 9310320 not a gateway 0 security failures, 10231 bad options, 2640539 with options Opts: 2640493 end, 206 nop, 0 basic security, 2640523 loose source route 0 timestamp, 0 extended security, 16 record route 0 stream ID, 0 strict source route, 10231 alert, 0 cipso, 0 ump 0 other Frags: 16 reassembled, 0 timeouts, 0 couldn't reassemble 32 fragmented, 0 couldn't fragment Bcast: 308 received, 0 sent Mcast: 4221007 received, 4048770 sent Sent: 25342014 generated, 20710669 forwarded Drop: 617267 encapsulation failed, 0 unresolved, 0 no adjacency 0 no route, 0 unicast RPF, 0 forced drop 0 options denied, 0 source IP address zero !--- Output suppressed.
show processes cpu コマンドは、スイッチ内のアクティブなプロセス、およびそれに対応する CPU 使用率の統計情報を表示します。 CPU 使用率が平常な場合の show processes cpu コマンドの出力例を次に示します。
switch#show processes cpu CPU utilization for five seconds: 8%/4%; one minute: 6%; five minutes: 5% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process 1 384 32789 11 0.00% 0.00% 0.00% 0 Load Meter 2 2752 1179 2334 0.73% 1.06% 0.29% 0 Exec 3 318592 5273 60419 0.00% 0.15% 0.17% 0 Check heaps 4 4 1 4000 0.00% 0.00% 0.00% 0 Pool Manager 5 6472 6568 985 0.00% 0.00% 0.00% 0 ARP Input 6 10892 9461 1151 0.00% 0.00% 0.00% 0 IGMPSN !--- CPU utilization at normal condition. 7 67388 53244 1265 0.16% 0.04% 0.02% 0 CDP Protocol 8 145520 166455 874 0.40% 0.29% 0.29% 0 IP Background 9 3356 1568 2140 0.08% 0.00% 0.00% 0 BOOTP Server 10 32 5469 5 0.00% 0.00% 0.00% 0 Net Background 11 42256 163623 258 0.16% 0.02% 0.00% 0 Per-Second Jobs 12 189936 163623 1160 0.00% 0.04% 0.05% 0 Net Periodic 13 3248 6351 511 0.00% 0.00% 0.00% 0 Net Input 14 168 32790 5 0.00% 0.00% 0.00% 0 Compute load avgs 15 152408 2731 55806 0.98% 0.12% 0.07% 0 Per-minute Jobs 16 0 1 0 0.00% 0.00% 0.00% 0 HRPC hI2mm reque !--- Output suppressed.
IGMP スヌーピング プロセスにより CPU 使用率が高くなっている場合の show processes cpu コマンドの出力例を次に示します。
switch#show processes cpu CPU utilization for five seconds: 8%/4%; one minute: 6%; five minutes: 5% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process 1 384 32789 11 0.00% 0.00% 0.00% 0 Load Meter 2 2752 1179 2334 0.73% 1.06% 0.29% 0 Exec 3 318592 5273 60419 0.00% 0.15% 0.17% 0 Check heaps 4 4 1 4000 0.00% 0.00% 0.00% 0 Pool Manager 5 6472 6568 985 0.00% 0.00% 0.00% 0 ARP Input 6 10892 9461 1151 100 100 100 0 IGMPSN !--- Due to high CPU utilization. 7 67388 53244 1265 0.16% 0.04% 0.02% 0 CDP Protocol 8 145520 166455 874 0.40% 0.29% 0.29% 0 IP Background 9 3356 1568 2140 0.08% 0.00% 0.00% 0 BOOTP Server 10 32 5469 5 0.00% 0.00% 0.00% 0 Net Background 11 42256 163623 258 0.16% 0.02% 0.00% 0 Per-Second Jobs 12 189936 163623 1160 0.00% 0.04% 0.05% 0 Net Periodic 13 3248 6351 511 0.00% 0.00% 0.00% 0 Net Input 14 168 32790 5 0.00% 0.00% 0.00% 0 Compute load avgs 15 152408 2731 55806 0.98% 0.12% 0.07% 0 Per-minute Jobs 16 0 2874 0 100 100 100 0 HRPC hI2mm reque !--- Output suppressed.
General Routing Encapsulation(GRE; 総称ルーティング カプセル化)トンネルは、Cisco Catalyst 3750 シリーズ スイッチではサポートされていません。 CLI ではこの機能を設定できますが、パケットはハードウェアでもソフトウェアでもスイッチングできず、CPU の使用率が上昇します。
注: Catalyst 3750 では、マルチキャスト ルーティング用の Distance Vector Multicast Routing Protocol(DVMRP)トンネル インターフェイスだけがサポートされています。 それでも、ハードウェアでのパケットのスイッチングはできません。 このトンネルでルーティングされるパケットは、ソフトウェアでスイッチングする必要があります。 このトンネルで大量のパケットが転送されると、CPU 使用率が上昇します。
この問題の回避策はありません。 これは、Catalyst 3750 シリーズ スイッチでのハードウェアの制限です。
複数の Catalyst 3750 スイッチがスタック内で接続されている場合に、1 台のスイッチに設定変更があると、hulc running config プロセスが起動して、実行コンフィギュレーションの新規コピーを作成します。 次に、スタック内のすべてのスイッチに送信します。 新規の実行コンフィギュレーションは、CPU の負荷が高くなります。 したがって、新規の実行コンフィギュレーション プロセスを構築する際、および、この新規コンフィギュレーションを他のスイッチに転送する際に、CPU 使用率が高くなります。 ところが、この CPU 高使用率が持続するのは、show running-configuration コマンドのコンフィギュレーション ビルド ステップの実行に要する時間数と同じである必要があります。
この問題の回避策は不要です。 通常、これらの状況では CPU 使用率は高くなります。
hulc runningg プロセスにより CPU 使用率が高くなっている場合の show processes cpu コマンドの出力例を次に示します。
switch#show processes cpu CPU utilization for five seconds: 63%/0%; one minute: 27%; five minutes: 23% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process 1 384 32789 11 0.00% 0.00% 0.00% 0 Load Meter 2 2752 1179 2334 0.73% 1.06% 0.29% 0 Exec 3 318592 5273 60419 0.00% 0.15% 0.17% 0 Check heaps 4 4 1 4000 0.00% 0.00% 0.00% 0 Pool Manager 5 6472 6568 985 0.00% 0.00% 0.00% 0 ARP Input 6 10892 9461 1151 0.00% 0.00% 0.00% 0 IGMPSN 7 67388 53244 1265 0.16% 0.04% 0.02% 0 CDP Protocol 8 145520 166455 874 0.40% 0.29% 0.29% 0 IP Background 9 3356 1568 2140 0.08% 0.00% 0.00% 0 BOOTP Server 10 32 5469 5 0.00% 0.00% 0.00% 0 Net Background 11 42256 163623 258 0.16% 0.02% 0.00% 0 Per-Second Jobs 12 189936 163623 1160 0.00% 0.04% 0.05% 0 Net Periodic 13 3248 6351 511 0.00% 0.00% 0.00% 0 Net Input 14 168 32790 5 0.00% 0.00% 0.00% 0 Compute load avgs 15 152408 2731 55806 0.98% 0.12% 0.07% 0 Per-minute Jobs 16 0 1 0 0.00% 0.00% 0.00% 0 HRPC h12mm reque 17 85964 426 201793 55.72% 12.05% 5.36% 0 hulc running !--- Output suppressed.
過度に多数の ARP 要求をルータから発信する必要がある場合には、Address Resolution Protocol(ARP)入力プロセスで CPU 使用率が高くなります。 同じ IP アドレスに対する ARP 要求は、2 秒ごとに 1 つの要求までにレート制限されています。 したがって、過度に多数の ARP 要求が発信されるのは、異なる IP アドレスに対してです。 この現象は、ブロードキャスト インターフェイスをポイントするように IP ルートを設定した場合に発生する可能性があります。 明白な例として、次のようなデフォルト ルートが挙げられます。
ip route 0.0.0.0 0.0.0.0 Fastethernet0/0
この場合、より具体的なルートで到達できない各 IP アドレスに対する ARP 要求がルータで生成されます。つまり、インターネット上のほとんどすべてのアドレスに対する ARP 要求がルータで生成されることになります。 スタティック ルーティング用のネクストホップ IP アドレスの設定方法の詳細は、『スタティック ルートのためのネクスト ホップ IP アドレス指定』を参照してください。
別の可能性としては、ローカルに接続されたサブネットをスキャンする悪意のあるトラフィック ストリームが、過度に多数の ARP 要求を発生させる場合があります。 悪意のあるストリームの兆候は、非常に多数の不完全な ARP エントリが ARP テーブルにあることです。 ARP 要求を引き起こす着信 IP パケットには処理が必要なので、この問題のトラブルシューティングは、基本的に IP Input プロセスで CPU 使用率が高くなる場合のトラブルシューティングと同じです。
Catalyst 3750 用 Cisco IOS の最新バージョンでは、Simple Network Management Protocol(SNMP; 簡易ネットワーク管理プロトコル)要求は SNMP ENGINE によって処理されます。 この SNMP ENGINE プロセスによって CPU 使用率が高くなるのは正常です。 SNMP プロセスの優先順位は低く、スイッチの他の機能に影響を与えることはないはずです。
SNMP ENGINE プロセスによって発生する CPU の高使用率の詳細は、『IP の簡易ネットワーク管理プロトコル(SNMP)によって生じる CPU の高使用率』を参照してください。
Catalyst 3750 シリーズ スイッチの Switch Database Management(SDM; スイッチ データベース管理)は、Ternary Content Addressable Memory(TCAM; 三値連想メモリ)に保持されるレイヤ 2 およびレイヤ 3 のスイッチング情報を管理します。 SDM テンプレートは、特定の機能のサポートを最適化することを目的として、スイッチ内のシステム リソースを設定するために使用されます。これは、ネットワークでのスイッチの使用方法に依存します。 SDM テンプレートを選択して一部の機能に対するシステムの使用率を最大にすることも、デフォルトのテンプレートを使用してリソースのバランスを取ることもできます。 テンプレートは、次の種類のリソースのサポートを最適化するために、システム リソースに優先順位を設定します。
ルーティング:ルーティング テンプレートは、ユニキャスト ルーティング用のシステム リソースを最大にします。通常は、ネットワークの中心にあるルータまたはアグリゲータに必要です。
VLAN:VLAN テンプレートは、ルーティングを無効にして、最大数のユニキャスト MAC アドレスをサポートします。 通常は、レイヤ 2 スイッチに対して選択されます。
アクセス:アクセス テンプレートは、Access Control List(ACL; アクセス コントロール リスト)用のシステム リソースを最大限にして、多数の ACL に対応します。
デフォルト:デフォルト テンプレートは、すべての機能のバランスを取ります。
各テンプレートには、 デスクトップ テンプレートとアグリゲータ テンプレートの 2 つのバージョンがあります。
注: デスクトップ スイッチのデフォルト テンプレートは、デフォルト デスクトップ テンプレートです。 Catalyst 3750-12S 用のデフォルト テンプレートは、デフォルト アグリゲータ テンプレートです。
使用されている機能のシステム使用率を最大にする適切な SDM テンプレートを選択します。 不適切な SDM テンプレートを選択すると CPU が過負荷になり、スイッチのパフォーマンスが大きく低下する可能性があります。
TCAM の現在の使用率と利用可能量を確認するには、show platform tcam utilization コマンドを発行します。
Switch#show platform tcam utilization CAM Utilization for ASIC# 0 Max Used Masks/Values Masks/values Unicast mac addresses: 784/6272 12/26 IPv4 IGMP groups + multicast routes: 144/1152 6/26 IPv4 unicast directly-connected routes: 784/6272 12/26 IPv4 unicast indirectly-connected routes: 272/2176 8/44 IPv4 policy based routing aces: 0/0 0/0 IPv4 qos aces: 528/528 18/18 IPv4 security aces: 1024/1024 27/27 Note: Allocation of TCAM entries per feature uses a complex algorithm. The above information is meant to provide an abstract view of the current TCAM utilization
TCAM の使用率がいずれかのパラメータの最大値に近づいている場合は、他のいずれかのテンプレート機能でそのパラメータに対しての最適化ができないかチェックします。
show sdm prefer access | default | dual-ipv4-and-ipv6 | routing | vlan
Switch# show sdm prefer routing "desktop routing" template: The selected template optimizes the resources in the switch to support this level of features for 8 routed interfaces and 1024 VLANs. number of unicast mac addresses: 3K number of igmp groups + multicast routes: 1K number of unicast routes: 11K number of directly connected hosts: 3K number of indirect routes: 8K number of policy based routing aces: 512 number of qos aces: 512 number of security aces: 1K
スイッチで使用する SDM テンプレートを指定するには、sdm prefer グローバル設定コマンドを発行します。
注: 新しい SDM テンプレートを使用するには、スイッチのリロードが必要です。
Cisco Catalyst 3750 スイッチでの Policy Based Routing(PBR; ポリシー ベース ルーティング)の実装には、いくつかの制限があります。 これらの制限に従わないと、CPU の使用率が高くなる場合があります。
PBR は、ルーティングされるポートまたは SVI で有効にできます。
スイッチは、PBR に対する route-map deny 文をサポートしません。
マルチキャスト トラフィックは、ポリシー ルーティングされません。 PBR はユニキャスト トラフィックにのみ適用されます。
ローカル アドレス宛のパケットを許可する ACL と照合しないでください。 PBR はこれらのパケットを転送するため、ping や Telnet の障害またはルート プロトコル フラッピングが発生する可能性があります。
ACL と deny ACE を照合しないでください。 deny ACE と一致するパケットは CPU に送信されるため、CPU の使用率が高くなる可能性があります。
PBR を使用するには、最初に、sdm prefer routing グローバル設定コマンドを使用してルーティング テンプレートを有効にする必要があります。 PBR は、VLAN またはデフォルト テンプレートではサポートされません。
詳細なリストについては、『PBR 設定ガイドライン』を参照してください。
送信元 IP が 1 つのサブネット上にあり、宛先 IP が別のサブネット上にあり、ネクストホップが同一の VLAN またはレイヤ 3 セグメント上にあるパケットを、1 つの VLAN(または任意のレイヤ 3 ポート)が受信したときには、ICMP が廃棄したリダイレクトを取得できます。
次に例を示します。
次のメッセージが show log に示されます。
51w2d: ICMP-Q:Dropped redirect disabled on L3 IF: Local Port Fwding L3If:Vlan7 L2If:GigabitEthernet2/0/13 DI:0xB4, LT:7, Vlan:7 SrcGPN:65, SrcGID:65, ACLLogIdx:0x0, MacDA:001a.a279.61c1, MacSA: 0002.5547.3bf0 IP_SA:64.253.128.3 IP_DA:208.118.132.9 IP_Proto:47 TPFFD:EDC10041_02C602C6_00B0056A-000000B4_EBF6001B_0D8A3746
これは、パケットが送信元 IP 64.253.128.3 の VLAN 7 で受信され、宛先 IP 208.118.132.9 に到達しようとしているところで発生します。 スイッチで設定されているネクストホップ(この場合、64.253.128.41)も同一の VLAN 7 上にあります。