はじめに
このドキュメントでは、NATトラフィックと非NATトラフィックの混在が原因で発生する、ルーティングプラットフォーム上のHigh Quantum Flow Processor(QFP)使用率を特定し、解決する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Cisco IOS® XEパケット転送アーキテクチャに関する基礎知識
- パケットトレース機能の基本的な経験
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。ASR1000、ISR4000、ISR1000、Cat8000、またはCat8000vなどの物理/仮想化QFPを使用するルーティングCisco IOS XEプラットフォームに適用されます。
このドキュメントは、自律モードのCisco IOS XEデバイスに基づいており、SDWAN(コントローラ)またはSDルーティングも同様のロジックに従うことができますが、詳細は異なる場合があります。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
Cisco Quantum Flow Processor(QFP)の高使用率と高パフォーマンスの問題は、同じインターフェイス上にNAT処理されたトラフィックフローと非NATトラフィックフローが混在している場合に、Ciscoルータで発生する可能性があります。また、インターフェイスエラーや速度低下など、他のパフォーマンスの問題が発生する可能性もあります。
注:QFPはエンベデッドサービスプロセッサ(ESP)上にあり、すべての着信および発信トラフィックフローのデータプレーンとパケット処理を担当します。これは、プラットフォームに応じて物理または仮想化のいずれかです。
症状
この動作を特定するには、ルータからの次の症状を検証して確認することが重要です。
1. HIGH QFP Loadアラート。これらのアラートは、負荷がしきい値の80 %を超えると表示されます。
Feb 8 08:02:25.147 mst: %IOSXE_QFP-2-LOAD_EXCEED: Slot: 0, QFP:0, Load 81% exceeds the setting threshold.
Feb 8 08:04:15.149 mst: %IOSXE_QFP-2-LOAD_RECOVER: Slot: 0, QFP:0, Load 59% recovered.
注:QFPへの負荷とトラフィックレートを明らかにするために、show platform hardware qfp active datapath utilization summaryコマンドを実行することもできます。
Router# show platform hardware qfp active datapath utilization summary
CPP 0: Subdev 0 5 secs 1 min 5 min 60 min
Input: Priority (pps) 0 0 0 0
(bps) 96 32 32 32
Non-Priority (pps) 327503 526605 552898 594269
(bps) 1225600520 2664222472 2867573720 2960588728
Total (pps) 327503 526605 552898 594269
(bps) 1225600616 2664222504 2867573752 2960588760
Output: Priority (pps) 6 7 7 7
(bps) 8576 9992 9320 9344
Non-Priority (pps) 327715 526839 553128 594506
(bps) 1257522072 2714335584 2920005904 3016943800
Total (pps) 327721 526846 553135 594513
(bps) 1257530648 2714345576 2920015224 3016953144
Processing: Load (pct) 99 72 34 19
2. インターフェイスエラー。QFP使用率が高い場合、バックプレッシャが原因でパケットが廃棄される可能性があります。このような場合、オーバーランと入力ドロップは通常、インターフェイスで発生します。この情報を表示するには、show interfacesコマンドを実行します。
Router# show interface gigabitEthernet 0/0/1
GigabitEthernet0/0/1 is up, line protocol is up
Hardware is ISR4351-3x1GE, address is e41f.7b59.cba1 (bia e41f.7b59.cba1)
Description: ### LAN Interface ###
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 2/255
Encapsulation 802.1Q Virtual LAN, Vlan ID 1., loopback not set
Keepalive not supported
Full Duplex, 1000Mbps, link type is force-up, media type is LX
output flow-control is on, input flow-control is on
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:00:02, output 00:06:47, output hang never
Last clearing of "show interface" counters never
Input queue: 0/375/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
30 second input rate 9390000 bits/sec, 2551 packets/sec
30 second output rate 1402000 bits/sec, 1323 packets/sec
368345166434 packets input, 199203081647360 bytes, 0 no buffer
Received 159964 broadcasts (0 IP multicasts)
0 runts, 0 giants, 0 throttles
2884115457 input errors, 0 CRC, 0 frame, 2884115457 overrun, 0 ignored
0 watchdog, 3691484 multicast, 0 pause input
220286824008 packets output, 32398293188401 bytes, 0 underruns
0 output errors, 0 collisions, 4 interface resets
3682606 unknown protocol drops
0 babbles, 0 late collision, 0 deferred
21 lost carrier, 0 no carrier, 0 pause output
0 output buffer failures, 0 output buffers swapped out
3. 一部のシナリオでは、ユーザがネットワークの速度低下を訴える可能性があります。
パケットトレース機能
- パケットトレースは、Cisco IOS XEプラットフォームでデータパケットが処理される方法に関する詳細情報を提供するツールです。
- アカウンティング、サマリー、およびデータパスの3つのレベルのインスペクションがあります。 インスペクションレベルは、デバッグプラットフォームの状態に基づきます。
- 次のような情報を取得できます。
-
入出力インターフェイス
-
パケットの状態
-
タイムスタンプ
-
パケットトレース
注:データパスの設定は、より多くのパケット処理リソースを消費します。これは、フィルタ条件に一致するパケットにのみ反映されます。
パケットトレースの詳細については、「Cisco IOS XEデータパスパケットトレース機能によるトラブルシューティング」を参照してください。
基本的なパケットトレース設定
これは、データパスレベルのインスペクションを使用した基本的なパケットトレース設定の例です。8192個のパケットを循環的に収集し(古いパケットを上書きします)、到達したレイヤ3から各パケットのコピーを作成し、インターフェイスGigabitEthernet 0/0/1を残します。
Router# debug platform packet-trace packet 8192 circular fia-trace data-size 2048
Router# debug platform packet-trace copy packet both L3 size 64
Router# debug platform condition interface gigabitEthernet 0/0/1 both
Router# debug platform condition start
Router# debug platform condition stop
パケットトレースの結果は、次のコマンドで確認できます。
Router# show platform packet-trace summary
Router# show platform packet-trace packet all
パケットトレースキャプチャから、NAT機能が予想よりも多くのリソースを消費していることがわかります。次の例では、IPV4_NAT_INPUT_FIA機能の経過時間が、他の機能の経過時間よりも著しく長いことを確認できます。この動作は通常、QFPがこの機能を処理するのにより多くの時間がかかり、その結果、NATにはQFPからより多くのリソースが使用されることを示します。
Packet: 161 CBUG ID: 161
Summary
Input : GigabitEthernet0/0/1
Output : GigabitEthernet0/0/2.1730
State : FWD
Timestamp
Start : 25136781447706429 ns (02/10/2024 00:25:49.584050 UTC)
Stop : 25136781447993237 ns (02/10/2024 00:25:49.584337 UTC)
Feature: IPV4_NAT_INPUT_FIA <<<<<<<<<<<<
Entry : Input - 0x700162ac
Input : GigabitEthernet0/0/1
Output :
Lapsed time : 1873376 ns <<<<<<<<<<<<
Feature: IPV4_INPUT_IPOPTIONS_PROCESS
Entry : Input - 0x70016344
Input : GigabitEthernet0/0/1
Output : GigabitEthernet0/0/2.1730
Lapsed time : 64 ns
NATゲートキーパーとは何ですか
Cisco IOS XEルーティングプラットフォームでは、ネットワークアドレス変換(NAT)ゲートキーパー機能はデフォルトで有効になっています。NATゲートキーパーは、元々、非NAT対象フローが過剰な処理リソースを使用してNAT変換を作成することを防ぐために作成されました。NATゲートキーパーは、内部から外部への方向と、送信元アドレスに基づくその他の方向に対して2つの小さなキャッシュを作成します。各キャッシュエントリは、送信元アドレス、Virtual Routing and Forwarding(VRF)ID、タイマー値(エントリの無効化に使用)、およびフレームカウンタで構成されます。
NAT対象インターフェイス上の非NAT対象トラフィックの量が多いと、大量のリソースが消費され、QFP使用率が急激に上昇する原因になります。 可能な限り、同じインターフェイス上にNAT処理されたフローとNAT処理されていないフローを混在させないことを推奨します。
NATゲートキーパーの確認
NATゲートキーパーの統計情報は、show platform hardware qfp active feature nat datapath { gatein | gateout }activityコマンドを使用して確認できます。これは、キャッシュのサイズ、ヒット数、ミス数、エージング済み、追加されたエントリ、およびキャッシュ内のアクティブなエントリを示します。通常、ミス数が多く、この数が短期間で急速に増加した場合、大量のNot-Natフローがキャッシュに追加されていないことを示します。この動作により、これらのフローはNATワークフロー内でQFPによって処理され、QFP使用率が高くなる可能性があります。
Router# show platform hardware qfp active feature nat datapath gatein activity
Gatekeeper on
def mode Size 8192, Hits 191540578459, Miss 3196566091, Aged 1365537 Added 9 Active 7
Router# show platform hardware qfp active feature nat datapath gateout activity
Gatekeeper on
def mode Size 8192, Hits 448492109001, Miss 53295038401, Aged 149941327 Added 603614728 Active 1899
回避策と修正
ほとんどの環境では、NATゲートキーパー機能は正常に動作し、問題は発生しません。ただし、この問題が発生した場合は、いくつかの解決方法があります。
解決策 1
この種の問題については、NAT対象トラフィックと非NAT対象トラフィックを同じインターフェイスから分離することを推奨します。異なるインターフェイスまたはネットワークデバイスで使用できます。
解決策 2
ゲートキーパーからのミス数を減らすために、NATゲートキーパー機能のキャッシュサイズを大きくします。
次の例は、Ciscoルータでゲートキーパーを調整する方法を示しています。この値は2の累乗で表す必要があることに注意してください。それ以外の場合、値は自動的に次に小さいサイズに設定されます。
Router(config)# ip nat service gatekeeper
Router(config)# ip nat settings gatekeeper-size 65536
注:キャッシュサイズを調整すると、QFP内のexmemメモリのコストが発生する可能性があるため、使用を最適化します。この値を徐々に調整し、デフォルト設定に最も近い値から始めます。
上記のいずれかの解決策を実行した後、次の2つのパラメータを監視して、問題が解決されたことを確認することをお勧めします。
- QFP使用率が低下したことを確認します。
- ミスの数が増加し続けていないことを確認します。
要約
NATゲートキーパー機能を使用すると、NATが適用されていないフローがNATが適用されたインターフェイス上にある場合に、ルータのパフォーマンスを向上させることができます。これは通常、非NAT対象のフローが同じインターフェイスを同時に通過するときに、NATがNAT対象のフローを変換するときに発生します。ほとんどの環境では、NAT ゲートキーパー機能はルータに影響を与えません。ただし、副作用を避けるために、必要に応じてこの機能を慎重に調整することが重要です。
関連情報