内容

はじめに

前提条件

要件

使用するコンポーネント

背景説明

症状

パケットトレース機能

基本的なパケットトレース設定

NATゲートキーパーとは何ですか

NATゲートキーパーの確認

回避策と修正

解決策 1

解決策 2

要約

関連情報

はじめに

このドキュメントでは、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つのパラメータを監視して、問題が解決されたことを確認することをお勧めします。

1. QFP使用率が低下したことを確認します。

2. ミスの数が増加し続けていないことを確認します。

要約

NATゲートキーパー機能を使用すると、NATが適用されていないフローがNATが適用されたインターフェイス上にある場合に、ルータのパフォーマンスを向上させることができます。これは通常、非NAT対象のフローが同じインターフェイスを同時に通過するときに、NATがNAT対象のフローを変換するときに発生します。ほとんどの環境では、NAT ゲートキーパー機能はルータに影響を与えません。ただし、副作用を避けるために、必要に応じてこの機能を慎重に調整することが重要です。

関連情報

- ASR1K NATが一部のパケットの変換に失敗することがある

- Cisco IOS XEデータパスパケットトレース機能によるトラブルシューティング

- シスコのテクニカルサポートとダウンロード