Introduction
Ce document décrit comment identifier et résoudre l'utilisation de High Quantum Flow Processor (QFP) sur les plates-formes de routage causée par la combinaison de trafic NATed et non NATed.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Connaissance de base de l'architecture de transfert de paquets Cisco IOS® XE
- Expérience de base avec la fonctionnalité Packet Trace
Composants utilisés
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques. Il s'applique à toute plate-forme de routage Cisco IOS XE avec QFP physique/virtualisé comme ASR1000, ISR4000, ISR1000, Cat8000 ou Cat8000v.
Ce document est basé sur les périphériques Cisco IOS XE en mode autonome, SDWAN (contrôleur) ou le routage SD peut suivre une logique similaire, mais les détails peuvent être différents.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Informations générales
Des problèmes d'utilisation et de performances élevés sur le processeur Cisco Quantum Flow Processor (QFP) peuvent être observés sur un routeur Cisco lorsqu'une combinaison de flux de trafic NAT et non NAT est présente sur la même interface. Cela peut également entraîner d'autres problèmes de performances, tels que des erreurs d'interface ou de la lenteur.
Remarque : Le QFP est situé sur le processeur de services intégrés (ESP) et il est chargé du plan de données et du traitement des paquets pour tous les flux de trafic entrant et sortant, qui peuvent être physiques ou virtualisés selon la plate-forme.
Symptômes
Il est important de valider et de confirmer ces symptômes à partir du routeur afin d'identifier ce comportement :
1. Alertes de chargement QFP élevé. Ces alertes apparaissent lorsque la charge dépasse le seuil de 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.
Remarque : Vous pouvez également exécuter la commande show platform hardware qfp active datapath use summary afin de révéler la charge sur le QFP et les débits de trafic.
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. Erreurs d’interface. Les paquets peuvent être abandonnés en raison d'une contre-pression si l'utilisation du QFP est élevée. Dans ce cas, les dépassements et les pertes en entrée sont généralement observés sur les interfaces. Pour afficher ces informations, vous pouvez exécuter la commande 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. Dans certains scénarios, les utilisateurs peuvent se plaindre de la lenteur du réseau.
Fonctionnalité Packet Trace
- Packet Trace est un outil qui fournit des informations détaillées sur la manière dont les paquets de données sont traités par les plates-formes Cisco IOS XE.
- Il comporte 3 niveaux d'inspection : comptabilité, résumé et chemin d'accès aux données. Le niveau d'inspection est basé sur l'état de la condition de la plate-forme de débogage.
- Vous pouvez obtenir des informations telles que :
Remarque : La configuration du chemin de données consomme davantage de ressources de traitement de paquets, ce qui n'est reflété que sur les paquets qui correspondent à la condition de filtre.
Plus de détails sur Packet Trace dans Dépannage avec la fonctionnalité Packet Trace de chemin de données de Cisco IOS XE
Configuration de base de Packet Trace
Voici un exemple de configuration de base de Packet Trace avec inspection du niveau du chemin de données. Il collecte 8192 paquets de manière circulaire (remplace les anciens paquets), crée une copie de chaque paquet de la couche 3 qui arrive et quitte l'interface 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
Vous pouvez vérifier les résultats de Packet Trace avec ces commandes.
Router# show platform packet-trace summary
Router# show platform packet-trace packet all
À partir de la capture Packet Trace, vous pouvez observer que la fonctionnalité NAT consomme plus de ressources que prévu. Dans l'exemple suivant, vous pouvez voir que le temps écoulé pour la fonctionnalité IPV4_NAT_INPUT_FIA est beaucoup plus long que le temps écoulé pour les autres fonctionnalités. Ce comportement indique généralement que le QFP prend plus de temps pour traiter cette fonctionnalité et, par conséquent, que davantage de ressources du QFP sont utilisées pour la NAT.
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
Qu'est-ce que NAT Gatekeeper ?
Dans les plates-formes de routage Cisco IOS XE, la fonctionnalité de contrôleur d'accès NAT (Network Address Translation) est activée par défaut. Le contrôleur d'accès NAT a été créé à l'origine pour empêcher les flux non-NAT d'utiliser des ressources de traitement excessives pour créer une traduction NAT. NAT Gatekeeper crée deux petits caches pour la direction interne vers externe et pour l'autre direction en fonction de l'adresse source. Chaque entrée de cache se compose d'une adresse source, d'un ID de routage et de transfert virtuel (VRF), d'une valeur de minuteur (utilisée pour invalider l'entrée) et d'un compteur de trames.
Un volume élevé de trafic non-NATed sur une interface NATed consomme une grande quantité de ressources et provoque des pics d'utilisation QFP. Cisco recommande que les clients ne doivent pas avoir de flux NAT-ed et non-NAT-ed sur la même interface chaque fois que possible.
Vérifiez le contrôleur d'accès NAT
Les statistiques du portier NAT peuvent être vérifiées avec les commandes show platform hardware qfp active feature nat datapath { gatein | gateout }activité. Indique la taille du cache, le nombre d'occurrences, d'échecs, d'entrées obsolètes, ajoutées et actives dans le cache.Généralement, si le nombre d'échecs est élevé et que ce nombre augmente rapidement en un court laps de temps, cela indique qu'un grand nombre de flux Non-Natted n'est pas ajouté au cache. Ce comportement entraîne le traitement de ces flux par le QFP dans le workflow NAT, ce qui peut augmenter dans une utilisation QFP élevée.
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
Solution/Correction
Dans la plupart des environnements, la fonctionnalité NAT gatekeeper fonctionne correctement et ne pose aucun problème. Cependant, si vous rencontrez ce problème, il existe plusieurs façons de le résoudre.
Solution 1
Pour ce type de problèmes, Cisco recommande de séparer le trafic NATed et non NATed de la même interface. Il peut être utilisé dans différentes interfaces ou sur différents périphériques réseau.
Solution 2
Augmentez la taille du cache sur la fonctionnalité NAT Gatekeeper afin de réduire le nombre d'échecs du gatekeeper.
L'exemple suivant montre comment régler le contrôleur d'accès sur un routeur Cisco. Veuillez noter que cette valeur doit être représentée par des puissances de 2. Sinon, la valeur est automatiquement définie sur la taille inférieure suivante.
Router(config)# ip nat service gatekeeper
Router(config)# ip nat settings gatekeeper-size 65536
Remarque : Le réglage de la taille du cache peut coûter cher en mémoire exemplaire dans le QFP, donc optimiser son utilisation. Essayez d'ajuster cette valeur progressivement et commencez par la valeur la plus proche possible du paramètre par défaut.
Après avoir appliqué l'une des solutions décrites, il est recommandé de surveiller ces deux paramètres afin de confirmer que le problème a été résolu :
- Vérifiez que l'utilisation du QFP a diminué.
- Vérifiez que le nombre d'échecs ne continue pas à augmenter.
Résumé
La fonctionnalité NAT Gatekeeper peut améliorer les performances du routeur quand il y a des flux non-NATed sur une interface NATed. Cela se produit généralement lorsque NAT traduit certains flux NATed lorsque, en même temps, des flux non NATed passent par la même interface. Dans la plupart des environnements, la fonctionnalité NAT Gatekeeper n'a aucun impact sur le routeur. Cependant, il est important d'ajuster cette fonction si nécessaire, avec précaution afin d'éviter les effets secondaires.
Informations connexes