Ce document explique pourquoi votre routeur signale des messages de journal liés à IPC et comment résoudre ce problème. Ce document comprend également un examen de la terminologie de la CIB.
Les lecteurs de ce document devraient avoir connaissance des sujets suivants :
Administration des routeurs Cisco
IPC et sa terminologie
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
Toutes les versions du logiciel Cisco IOS® qui prennent en charge les routeurs des gammes Cisco 12000, 10000, 7600 et 7500.
Routeurs des gammes Cisco 12000, 10000, 7600 et 7500.
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. If your network is live, make sure that you understand the potential impact of any command.
Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.
Le module IPC (Inter-Process Communication) du logiciel Cisco IOS fournit une infrastructure de communication par laquelle les processus d'un système distribué peuvent interagir les uns avec les autres. Il assure également une communication transparente entre les plans de travail, les réseaux et la mémoire partagée.
Les services IPC servent de moyen par lequel les cartes de ligne (LC) et le processeur de routage central (RP) d’un système distribué communiquent entre eux par un échange de messages IPC envoyés du RP aux LC, ainsi qu’entre les RP actifs et de secours. Ces messages incluent des commandes de configuration et des réponses à ces commandes, ainsi que des « événements » qui doivent être signalés par un LC au RP.
Les gammes Cisco 12000, Cisco 10000, Cisco 7600 et Cisco 7500 utilisent une architecture distribuée basée sur les messages IPC. Dans de rares conditions, ces routeurs peuvent signaler ces messages de journal liés à IPC :
Gamme Cisco 12000 - %IPC-3-NOBUFF : Le cache d'en-tête principal du message IPC a été vidé
Gamme Cisco 7500 - %IPC_RSP_CBUS-3-NOBUF : Plus de mémoires tampon de mémoire IPC pour transmettre le message IPC
Remarque : IPC est également utilisé sur les gammes Cisco 6400 et Cisco 7304.
Les terminologies IPC les plus courantes sont les suivantes :
IPC - Communication interprocessus.
Adresse IPC : mot de 32 bits composé d'un ID de siège de 16 bits et d'un ID de port de 16 bits.
Client IPC - Module logiciel qui utilise les services IPC.
Port IPC : point de terminaison de communication au sein de IPC utilisé comme source et destination de toute communication.
Siège IPC - Un siège IPC est un élément de calcul, tel qu'un processeur, qui peut être communiqué à l'aide de IPC. Un siège IPC est l’emplacement des ports et des clients IPC.
Session IPC - Une session IPC est un canal de communication simple actif entre deux ports IPC.
Toute communication qui utilise IPC se produit entre les ports IPC. Un port est un point de terminaison de communication dans IPC. Chaque port IPC est associé à une adresse logique appelée adresse IPC. IPC utilise l'adresse IPC d'un port IPC comme adresse de retour lorsqu'il envoie des messages IPC, ou une adresse de destination lorsqu'il reçoit des messages IPC.
Les adresses IPC sont attribuées aux ports IPC par le responsable local des sièges IPC. Un siège est le processeur sur lequel le protocole IPC est en cours d'exécution. Un gestionnaire de postes est un processus qui tient à jour une liste de ports IPC locaux et un service de noms locaux, et qui tient également à jour des sessions de communication IPC ouvertes.
Lorsqu'un port IPC est créé, le client IPC attribue un nom de port au port IPC. D'autres clients IPC peuvent ensuite utiliser un nom de port lorsqu'ils font référence au nouveau port IPC créé. Un nom de port est une chaîne de caractères constituée d'un nom de siège et d'une fonction ou d'une description de port.
Cisco IPC présente trois niveaux de fiabilité différents lors de la livraison à un port ; ceci est défini lors de l'ouverture du port.
Fiable : La remise du message est garantie. En cas d'échec, la livraison sera tentée à nouveau.
Non fiable : La livraison est une tentative au mieux. Il n'y a aucune indication si la livraison échoue.
Non fiable avec notification : La remise du message n'est pas garantie. Cependant, l'expéditeur reçoit une notification d'échec.
La commande show ipc node affiche les sièges IPC présents dans un domaine appelé domaine IPC.
Router#show ipc nodes There are 3 nodes in this IPC realm. ID Type Name Last Last Sent Heard 10000 Local IPC Master 0 0 1030000 RSP-CY RSP IPC card slot 3 7 7 1000000 RSP-CY RSP IPC card slot 0 10 10
Lorsqu'un RP esclave est présent, la commande show ipc noeuds répertorie l'adresse RP esclave, comme indiqué dans cet exemple de sortie d'un routeur de la gamme Cisco 10000 :
10k-2#show ipc nodes There are 5 nodes in this IPC realm. ID Type Name Last Last Sent Heard 10000 Local IPC Master 0 0 20000 UDP C10K Line Card slot 2/0 3 3 30000 UDP C10K Line Card slot 3/0 3 3 40000 UDP C10K Line Card slot 1/0 3 3 50000 Ethernet Slave 18 45
Après avoir créé un port IPC, un client IPC peut alors enregistrer son nom de port avec le service de noms global contrôlé par IPC Master.
Un ensemble de sièges IPC, qui communiquent entre eux, est appelé zone. Pour chaque zone de la CIB, un seul siège de la CIB est désigné comme gestionnaire de zone de la CIB ou maître, ou maître de la CIB pour une courte durée. Logiquement, toutes les connexions de siège IPC dans le protocole IPC sont des connexions point à point. En règle générale, toutes les communications de siège IPC se font entre le RP actif et une carte de ligne, ou RP de secours. Il est possible de communiquer entre les cartes de ligne.
Un périphérique doit créer des ports locaux et localiser les ports de destination avant d'échanger des messages IPC. Bien qu'un périphérique crée des ports locaux, ces ports ne sont pas considérés comme des ports sources, car la communication IPC est simple. Lorsque le RP veut communiquer avec un LC, il ouvre d’abord un port sur le LC (le LC doit avoir créé le port et l’avoir enregistré avec le CIB Master - RP). Lorsque l'ouverture réussit, le trafic normal des messages IPC peut démarrer.
Dans les gammes Cisco 12000 et 7500, le processeur de routage, soit un processeur de routage Gigabit (GRP), soit un processeur de commutation de routage (RSP), et les cartes de ligne intelligentes font office de points de terminaison IPC. Un « maître IPC » contrôle un groupe de processeurs. Au fur et à mesure que le routeur s’initialise, le maître IPC découvre les points de terminaison IPC présents sur les cartes de ligne du système. Pour ce faire, le maître IPC analyse tous les logements, identifie le type de contrôleur et détermine si le contrôleur dispose de capacités IPC.
Utilisez la commande show ipc ports pour afficher ces ports. Sur un esclave IPC, cette commande répertorie les ports qui ont été créés sur ce siège IPC particulier. Lorsqu'elle est exécutée sur le maître IPC, cette commande affiche les ports qui ont été créés sur le maître, ainsi que les ports qui ont été enregistrés par les esclaves IPC (LC). En outre, la commande show ipc ports open répertorie les ports ouverts depuis ce siège IPC. Voici un exemple de résultat :
router#show ipc ports There are 87 ports defined. Port ID Type Name 10000.1 unicast IPC Master:Zone 10000.2 unicast IPC Master:Echo 10000.3 unicast IPC Master:Control 10000.4 unicast IPC Master:Init port_index = 0 seat_id = 0x1020000 last sent = 0 last heard = 1 port_index = 1 seat_id = 0x1010000 last sent = 0 last heard = 1 port_index = 2 seat_id = 0x1040000 last sent = 0 last heard = 1 port_index = 3 seat_id = 0x1050000 last sent = 0 last heard = 1 port_index = 4 seat_id = 0x1060000 last sent = 0 last heard = 1 port_index = 5 seat_id = 0x1070000 last sent = 0 last heard = 1 port_index = 6 seat_id = 0x1080000 last sent = 0 last heard = 1 port_index = 7 seat_id = 0x1090000 last sent = 0 last heard = 1 port_index = 8 seat_id = 0x10A0000 last sent = 0 last heard = 1 port_index = 9 seat_id = 0x10B0000 last sent = 0 last heard = 1 port_index = 10 seat_id = 0x1030000 last sent = 0 last heard = 1 10000.5 unicast Remote TTY Server Port port_index = 0 seat_id = 0x1070000 last sent = 0 last heard = 2 port_index = 1 seat_id = 0x1010000 last sent = 0 last heard = 2 port_index = 3 seat_id = 0x1040000 last sent = 0 last heard = 2 port_index = 4 seat_id = 0x1050000 last sent = 0 last heard = 2 Port ID Type Name port_index = 5 seat_id = 0x1060000 last sent = 0 last heard = 3 port_index = 6 seat_id = 0x1080000 last sent = 0 last heard = 2 port_index = 7 seat_id = 0x1090000 last sent = 0 last heard = 2 port_index = 8 seat_id = 0x10A0000 last sent = 0 last heard = 2 port_index = 9 seat_id = 0x10B0000 last sent = 0 last heard = 2 [output omitted]
Le champ port_index est l'ID de session utilisé par l'IPC de destination lors du traitement des messages entrants. Lorsqu'un RP esclave est présent, la commande show ipc ports affiche les informations de port de secours, comme illustré dans cet exemple de sortie :
10k-2#show ipc ports There are 16 ports defined. Port ID Type Name 10000.1 Unicast IPC Master:Zone 10000.2 Unicast IPC Master:Echo 10000.3 Unicast IPC Master:Control 10000.4 Unicast Microcode Server 10000.5 Unicast RFS Server Port 10000.6 Unicast Remote File System Server Port 10000.7 Unicast Master : TTY Server Port port_index = 0 seat_id = 0x50000 last sent = 0 last heard = 0 10000.8 Unicast C10K Line Card API port_index = 0 seat_id = 0x20000 last sent = 0 last heard = 58521 port_index = 1 seat_id = 0x30000 last sent = 0 last heard = 64235 port_index = 2 seat_id = 0x40000 last sent = 0 last heard = 13486 50000.3 Unicast Slave IPC:Control 50000.9 Unicast Secondary RFS Server Port 50000.A Unicast Secondary Old RFS Server Port 50000.8 Unicast Slave : TTY Client Port 50000.7 Unicast Secondary Services Port 50000.B Unicast IF-con server port 50000.C Unicast RF : Standby 50000.D Unicast CF : Standby
Les messages IPC sont l’unité de communication de base échangée entre les clients IPC. En fonctionnement normal, le RP et les cartes de ligne interagissent fréquemment par le biais de messages IPC. Un message inclut un en-tête, des informations d'adressage source et de destination, ainsi que les données de message.
Dans l’en-tête IPC, IPC définit plusieurs indicateurs de message différents qui modifient le traitement de réception d’un message IPC. Parmi les indicateurs définis, quatre sont liés au type de communication utilisé (non fiable, non fiable avec notification, fiable), quatre autres sont liés à la messagerie RPC (Remote Procedure Call) ou au traitement du contrôle interne, et deux ne sont pas utilisés du tout.
Voici quelques clients IPC :
Commandes envoyées par le RP pour demander aux cartes de ligne des informations telles que la version, les quantités de mémoire, les statistiques d'interface, les modifications de l'état de l'interface et les données de configuration.
Réponses aux commandes du RP, qui sont envoyées de la carte de ligne au RP. Parmi les informations contenues dans les messages IPC, on peut citer les mises à jour de statistiques chronométrées et les messages windows qui indiquent le nombre de messages IPC supplémentaires que la carte de ligne peut mettre en file d’attente.
Événements ou messages générés de manière asynchrone. Par exemple, les erreurs de reporting telles que les erreurs d'entrée, les trames d'exécution et les géants, ainsi que les statistiques de reporting et d'autres informations de comptabilité, telles que le nombre d'octets et de paquets.
Messages entre un RP actif et un RP de secours pour le bon fonctionnement du point de contrôle.
Certains processus du logiciel Cisco IOS doivent échanger des informations entre les cartes de ligne et le processeur de routage. Ces processus sont considérés comme des demandes de CIP. Par exemple, Cisco Express Forwarding (CEF) et les systèmes de fichiers distants échangent des images entre les processeurs de routage de la gamme Cisco 12000.
Le tableau 1 répertorie les couches de la pile de protocoles IPC :
Tableau 1 - Couches de la pile de protocoles IPCPile de protocoles IPC |
---|
Applications IPC |
Mécanisme IPC lui-même |
Structure de commutation (gamme 12000) ou couche de données CBUS (gamme 7500) |
Les routeurs des gammes 7500 et 12000 allouent un ensemble spécial de tampons pour stocker les messages IPC mis en file d'attente pour transmission et en attente d'accusé de réception depuis le port IPC de destination.
La gamme 7500 utilise un ensemble spécial de mémoires tampon dans la mémoire système par paquets (MEMD). Pour plus d'informations sur MEMD et l'architecture 7500, consultez What Causes a "%RSP-3-RESTART : cbus complex » et Comprendre le processeur VIP fonctionnant à 99 % et la mise en mémoire tampon côté Rx.
Sur la gamme 7500, les files d'attente IPC se trouvent dans la mémoire du processeur. Dans certaines versions de Cisco IOS (voir l'exemple de sortie ci-dessous), l'espace tampon IPC agrégé dans la mémoire du processeur peut être réglé par la commande ipc cache size. Le MEMD contient des tampons limités qui ne peuvent pas être réglés. Lorsqu'un message IPC mis en file d'attente dans la mémoire du processeur est envoyé et qu'il y a un espace libre dans le MEMD, les messages IPC sont « déplacés » de la mémoire du processeur vers le MEMD avant d'être envoyés au LC.
Utilisez la commande show ipc queue pour afficher l'état des files d'attente IPC.
Router#show ipc queue There are 0 IPC messages waiting for acknowledgment in the transmit queue. There are 0 IPC messages waiting for a response. There are 0 IPC messages waiting for additional fragments. There are 0 IPC messages currently on the IPC inbound. There are 0 messages currently in use by the system.
Remarque : ces files d'attente sont des files d'attente logicielles gérées par IPC et ne doivent pas être confondues avec les files d'attente matérielles ASIC QA de la gamme 7500.
Sur la gamme 12000, le protocole GRP envoie des messages IPC sur la matrice de commutation. Au démarrage, l'algorithme de découpage de mémoire tampon crée deux ensembles de pools dans la mémoire appelée tofab (côté réception) et frfab (côté émission). Comme le montre l'exemple de sortie de la commande show controller tofab queues (voir ci-dessous), les deux ensembles sont Non-IPC Free Queues et IPC Queues. Pour obtenir des conseils sur l'interprétation du résultat, consultez Routeur Internet de la gamme Cisco 12000 : Forum aux questions.
Sur la gamme Cisco 12000, le protocole GRP alloue un certain nombre d'en-têtes de message lors de l'initialisation. Plusieurs modifications ont été apportées pour améliorer l'allocation de mémoire pour ces en-têtes.
Le logiciel Cisco IOS Version 12.0(18)S/ST a augmenté le nombre par défaut d'en-têtes de message créés lors de l'initialisation de 1000 à 5000 sur le GRP et les LC (voir le résultat ci-dessous). Depuis la version 12.0(23)S et les versions ultérieures, le cache d'en-tête IPC peut se développer dynamiquement. Par conséquent, il n'est plus nécessaire de l'ajuster manuellement.
Les LC gèrent les en-têtes de message IPC dans la mémoire DRAM (Dynamic RAM). En outre, les LC réservent 100 tampons dans le tofab et dans la mémoire de formfab pour les messages IPC. Pour chaque message IPC transmis, le LC doit demander un en-tête de message IPC à partir du cache, puis envoyer une demande à l'ASIC de gestion de tampon de trame (BMA) pour qu'un tampon de message IPC soit utilisé pour envoyer le message au GRP sur le fabric.
LC-Slot1#show controllers tofab queues Carve information for ToFab buffers SDRAM size: 33554432 bytes, address: 30000000, carve base: 30029100 33386240 bytes carve size, 4 SDRAM bank(s), 8192 bytes SDRAM pagesize, 2 carve(s) max buffer data size 9248 bytes, min buffer data size 80 bytes 40606/40606 buffers specified/carved 33249088/33249088 bytes sum buffer sizes specified/carved Qnum Head Tail #Qelem LenThresh ---- ---- ---- ------ --------- 5 non-IPC free queues: 20254/20254 (buffers specified/carved), 49.87%, 80 byte data size 1 17297 17296 20254 65535 12152/12152 (buffers specified/carved), 29.92%, 608 byte data size 2 20548 20547 12152 65535 6076/6076 (buffers specified/carved), 14.96%, 1568 byte data size 3 32507 38582 6076 65535 1215/1215 (buffers specified/carved), 2.99%, 4544 byte data size 4 38583 39797 1215 65535 809/809 (buffers specified/carved), 1.99%, 9248 byte data size 5 39798 40606 809 65535 IPC Queue: 100/100 (buffers specified/carved), 0.24%, 4112 byte data size 30 72 71 100 65535 Raw Queue: 31 0 17302 0 65535 [output omitted]
Remarque : Reportez-vous au tableau 2 pour obtenir la liste des versions d'IOS présentant les améliorations répertoriées dans cette section.
Dans de rares conditions (par exemple, lorsqu’une grande quantité d’informations doit être échangée entre les clients de la CIB), le cache de mémoire tampon de la CIB peut être épuisé. Le logiciel Cisco IOS utilise ces messages de journal pour signaler cette condition :
Oct 7 03:36:49: %RSP-3-RESTART: interface Serial0/0/4:1, not transmitting Oct 7 03:39:51: %IPC_RSP_CBUS-3-NOBUF: No more IPC memd buffers to transmit IPC message Oct 7 03:40:09: %RSP-3-RESTART: interface Serial0/0/2:1, not transmitting Oct 7 03:40:19: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1/0, changed state to down Oct 7 03:40:19: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1/1, changed state to down Oct 7 03:40:19: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1/2, changed state to down Oct 7 03:40:19: %LINEPROTO-5-UPDOWN: Line protocol on InterfaceSerial0/1/3, changed state to down Oct 7 03:40:21: %IPC_RSP_CBUS-3-NOBUF: No more IPC memd buffers to transmit IPC message Oct 7 03:40:26: %FIB-3-FIBDISABLE: Fatal error, slot 0: IPC failure Oct 7 03:40:26: %FIB-3-FIBDISABLE: Fatal error, slot 1: IPC failure Oct 7 03:40:26: %FIB-3-FIBDISABLE: Fatal error, slot 4: IPC failure Oct 7 03:40:26: %FIB-3-FIBDISABLE: Fatal error, slot 5: IPC failure Oct 7 03:40:29: %LINEPROTO-5-UPDOWN: Line protocol on Interface
Comme le montre le résultat ci-dessus, le RP désactive CEF sur toutes les cartes de ligne dans cette condition, car il ne pourra plus mettre à jour les tables CEF sur les cartes de ligne à l'aide de IPC. Ainsi, les messages FIBDISABLE sont signalés sur toutes les cartes de ligne.
Pour résoudre ce type de pannes, il peut être nécessaire d'augmenter le cache IPC sur le RP et la mémoire IPC sur les cartes de ligne. Avant de le faire, utilisez la commande show ipc status pour déterminer si le RP ou le LC ou les deux sont à court de tampons IPC. Prenez ce résultat et examinez-le à la fois à partir du RP et du LC.
À l'origine, le nombre par défaut de tampons alloués à tous les systèmes à l'aide d'IPC était de 1 000 en-têtes de message mis en cache, partagés entre les messages entrants et sortants. Selon la version du logiciel Cisco IOS installée, le nombre d'en-têtes de message mis en cache par IPC est statique, dynamique ou peut être ajusté.
Voici la sortie de la commande show ipc status à partir d'un routeur avec les en-têtes de message 1000 par défaut.
Remarque : les versions 12.2T et 12.2S du logiciel Cisco IOS apportent des modifications au résultat de cette commande.
router#show ipc status IPC System Status: This processor is the IPC master server. 1000 IPC message headers in cache 4049362 messages in, 92615 out, 4048932 delivered to local port, 352 acknowledgments received, 386 sent, 0 NACKS received, 0 sent, 15326 messages dropped on input, 154 messages dropped on output 0 no local port, 110 destination unknown, 0 no transport 0 missing callback or queue, 34 duplicate ACKs, 0 retries, 0 message timeouts. 0 ipc_output failures, 0 mtu failures, 7707 msg alloc failed, 0 emer MSG alloc failed, 0 no origs for RPC replies 0 pak alloc failed, 0 memd alloc failed 0 no hwq, 0 failed opens, 0 hardware errors
La quantité de mémoire requise à allouer dépend du type de carte (RP ou LC, RSP ou VIP) sur la plate-forme, et de l'activité des applications qui ont besoin d'IPC (CEF distribué, par exemple).
À partir du logiciel Cisco IOS Version 12.0(23)S, 12.2(18)S et du nouveau logiciel IOS trains 12.3 et 12.3T, le cache de messages IPC est géré de manière dynamique plutôt que statique. La solution proposée au problème d'épuisement du cache de messages IPC en raison d'un trafic IPC dense en rafale a été de développer et de réduire dynamiquement le cache de messages. Lors de l'initialisation, le système alloue un nombre de messages par défaut spécifié par la plate-forme. Lorsque le nombre de messages libres est inférieur au nombre de mémoires tampon « minimum », il avertit le processus d'arrière-plan critique pour développer le cache. Cela permet à IPC de continuer à développer le cache pour répondre aux besoins de ses clients. Si les mémoires tampon récemment allouées ne sont jamais utilisées par IPC pour une période donnée, ce processus commence à diminuer. Le cache s'arrête pour se rétrécir lorsqu'il atteint la taille par défaut. Cette amélioration des performances a été introduite dans CSCdv57496. Avec l'implémentation de CSCdv57496, la commande ipc cache <size> ne fonctionne plus automatiquement. Ceci est valable sur toutes les plates-formes IPC.
Remarque importante : Depuis la version 12.3(5.5)T du logiciel Cisco IOS, la possibilité de régler manuellement le cache IPC a été supprimée. Voir CSCec17505 (clients enregistrés uniquement) pour plus d'informations.
Lorsque vous vérifiez le résultat de la commande show ipc queue, voici ce que vous devez voir :
c7500#show ipc queue Message waiting for acknowledgement in Tx queue : 0 Maximum acknowledgement msg usage in Tx queue : 0 Message waiting for additional Fragments : 0 Maximum message fragment usage : 0 There are 0 IPC messages waiting for a response. There are 0 IPC messages currently on the IPC inboundQ. Messages currently in use : 0 Message cache size : 1000 Maximum message cache usage : 1344 0 times message cache crossed 5000 [max] Emergency messages currently in use : 0 Inbound message queue depth 0 Zone inbound message queue depth 0
Si le routeur exécute une version du logiciel Cisco IOS qui n'inclut pas les mémoires tampon de cache IPC gérées dynamiquement, c'est-à-dire les images antérieures à 12.0(23)S, 12.2(18)S, 12.3 et 12.3T, le cache IPC sur le RP et la mémoire IPC sur les cartes de ligne peuvent être augmentés manuellement. Avant de le faire, utilisez la commande show ipc status pour déterminer si le RP, LC ou les deux sont à court de mémoires tampon IPC. Prenez ce résultat et examinez-le à la fois à partir du RP et du LC.
Si nécessaire, vous pouvez utiliser ces commandes pour régler les souvenirs :
La commande de configuration ipc cache 5000 pour augmenter le cache d'en-tête IPC sur le RP.
Le cache ipc <size> [slot {slot_num | all}] pour augmenter le cache sur le contrôleur de réseau local Cisco 12000.
Remarque : lorsque vous allouez plus de mémoire pour les messages IPC, moins de mémoire est disponible pour les autres processus. La taille d'un seul message IPC varie en fait selon les branches du logiciel Cisco IOS. Utilisez la commande show memory summary pour vérifier s'il y a suffisamment de mémoire libre dans le pool de processeurs.
Remarque : Reportez-vous au tableau 2 pour obtenir la liste des versions d'IOS présentant les améliorations répertoriées dans cette section.
Dans certaines situations, vous pouvez également régler le débit de IPC entre RP et LC. C'est particulièrement le cas lorsque le RP doit télécharger une grande table CEF sur le LC. Par exemple, cela peut se produire pendant le démarrage du routeur, lorsqu'il reçoit une grande quantité d'informations de routage d'un homologue BGP. Vous pouvez configurer la mise en mémoire tampon IPC supplémentaire sur le LC avec la commande ip cef linecard ipc memory xxxxx pour augmenter la bande passante du IPC. Cette commande a été introduite par CSCds89515 (clients enregistrés uniquement). La valeur de cette mémoire a été définie sur une valeur par défaut acceptable avec CSCdu54205 (clients enregistrés uniquement) et CSCuk27162 (clients enregistrés uniquement).
Voici les commandes qui indiquent le résultat lorsque vous modifiez ce paramètre :
Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#ip cef line ipc mem 20000 Router(config)#^Z Router#show cef state ... RP state: Expanded LC ipc memory: 20000 Kbytes ... or, alternatively: Router#show cef line Slot MsgSent XDRSent Window LowQ MedQ HighQ Flags 0 12515 21687 505 0 0 0 up 1 12515 21675 505 0 0 0 up 3 12515 21701 505 0 0 0 up 5 12515 21700 505 0 0 0 up 2 12518 22008 505 0 0 0 up Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#ip cef line ipc mem 20000 Router(config)#^Z Router#show cef line Slot MsgSent XDRSent Window LowQ MedQ HighQ Flags 0 12538 22097 4966 0 0 0 up 1 12538 22081 4966 0 0 0 up 3 12538 22115 4966 0 0 0 up 5 12538 22114 4966 0 0 0 up 2 12541 22418 4966 0 0 0 up
Le tableau 2 présente les améliorations apportées au logiciel Cisco IOS pour régler manuellement et dynamiquement la mémoire IPC sur différentes plates-formes.
Tableau 2 - Améliorations du logiciel Cisco IOSID de débogage Cisco | Fixe | Enhancement (amélioration) |
---|---|---|
CSCdk75315 (clients enregistrés uniquement) | 12.0(5)S 12.0(5) 12.0(5)T 11.3(10)AA | Introduit une taille de cache IPC qui peut être configurée à l'aide de la commande ipc cache <size>. |
CSCds89515 (clients enregistrés uniquement) | 12.2(4)B 12.1(9)E 12.1(8a)E 12.2(3)T 12.2(2)S 12.1(9) 12.0(14)ST1 12.2(2) 12.2(1)T 12.0(15)S3 12.0 (16)ST 12.0(16)S | Sur un routeur Internet de la gamme Cisco 12000, Cisco Express Forwarding distribué (dCEF) peut être désactivé en raison d'une mémoire insuffisante lors d'une mise à jour de routage importante (par exemple, lors du démarrage). Comme solution de contournement, réduisez le chemin maximal dans le protocole BGP (Border Gateway Protocol) pour réduire la quantité d'informations propagées par CEF sur les cartes de ligne. Vous pouvez également réduire la taille de la fenêtre TCP pour réduire la vitesse des mises à jour BGP entrantes. Reportez-vous à la section Obtenir un routage optimal et réduire la consommation de mémoire BGP. Vous pouvez également entrer la commande de configuration d'interface ip cef linecard ipc memory 0-128000. La quantité de processeur de carte de ligne ou de mémoire principale est limitée à 50 % de la mémoire totale. Cette commande vous permet d'allouer une plus grande quantité de mémoire processeur de carte de ligne à la file d'attente du routage CEF pour mettre à jour les messages. Il permet au RP de libérer des mises à jour CEF plus rapidement pour libérer de la mémoire, et il empêche l'occurrence de condition de faible mémoire sur le RP. En fonction du nombre de processeurs VIP (Versatile Interface Processors), dCEF a besoin d'une grande quantité de mémoire temporaire sur le RSP pour mettre en mémoire tampon les messages IPC liés au VIP, en particulier dans les cas où de grands pairs BGP apparaissent ou lorsque la base d'informations de transfert (FIB) est propagée au VIP après un complexe CBUS ou un crash VIP (ou lorsque la commande clear cef line est émise ). |
CSCdu21591 (clients enregistrés uniquement) | 12.0(17)ST4 12.0(18)ST 12.0(18)S | Augmente la taille du cache d'en-tête de message IPC par défaut de 1 000 à 5 000 sur les routeurs de la gamme 12 000. Auparavant, l'analyseur acceptait tout nombre compris entre les valeurs codées en dur de 1000 et 15000. Aujourd'hui, l'analyseur n'accepte que les nombres compris entre la taille minimale et maximale du cache définie par la plate-forme. En outre, à l'origine, il n'était pas possible d'effacer la commande ipc cache de la configuration même si vous avez exécuté la commande no ipc cache dans la configuration pour supprimer une valeur de cache IPC personnalisée. Au lieu de cela, il a inséré une commande ipc cache x, où x est la taille de cache par défaut actuellement définie. Aujourd'hui, la commande no ipc cache a le comportement attendu. Il supprime complètement la commande ipc cache de la configuration. |
CSCdu12540 | 12.0(19)ST 12.0(19)S | Uniquement applicable à la gamme Cisco 12000 : À l'origine, la commande ipc cache <size> fonctionnait uniquement pour le cache IPC RP. Maintenant, la commande ipc cache peut être utilisée sur les LC comme suit : ipc cache <size> [slot {slot_num | all}]Les options slot_num et toutes ne s'excluent pas mutuellement. Par exemple, ces commandes sont valides : ipc cache 4000 slot all ipc cache 3000 slot 5 Ces commandes augmentent la taille du cache dans slot 5 à 3000 et à 4000 pour tous les autres slots. Si vous voulez utiliser l'option all pour remplacer les instructions de configuration de la taille du cache précédentes pour les LC, assurez-vous que vous utilisez également « NOPREFIX » pour supprimer les commandes précédentes dans la mémoire vive non volatile (NVRAM), et implémentez les résultats corrects. En mode noprefix, utilisez le logement no ipc cache {slot_num | all} pour réinitialiser la taille du cache à sa valeur par défaut. |
CSCdu54205 | 12.0(19)ST 12.0(19)S | Uniquement applicable à la gamme Cisco 12000 : Cette amélioration a modifié la valeur par défaut de l'allocation de mémoire de mise à jour CEF de la carte de ligne en 512 messages. Il n'est plus nécessaire d'utiliser la commande ip cef linecard ipc memory xxxxx, sauf si le problème est observé. |
CSCuk27162 (clients enregistrés uniquement) | 12.2(9)T 12.2(9)S 12.2(9) 12.0(21)ST 12.0(22)S | Cette amélioration logicielle modifie le nombre par défaut de tampons ipc de carte de ligne alloués au démarrage. Il augmente également la mémoire IPC de la carte de ligne par défaut RSP de 25 à 128 messages IPC. Solution de contournement: Utilisez la commande de configuration globale ip cef linecard ipc memory xxxxx pour augmenter le nombre de tampons sur les cartes de ligne. |
CSCdv57496 | 12.0(23)S | Gérez le cache des messages IPC dynamiquement au lieu de l'allocation statique du cache IPC. Avec l'implémentation de CSCdv57496, la commande ipc cache <size> n'est plus valide car elle est exécutée automatiquement. Ceci est valable sur toutes les plates-formes IPC. |
CSCdz77490 | 12.2(19.7)S 12.0(26.2)S 12.3(1)B 12.3(1) | Avec l'implémentation de CSCdz77490, l'interface de ligne de commande ipc cache <size> est supprimée des versions 12.3 et 12.3T du logiciel Cisco IOS. Dans le train Cisco IOS 12.3, cette commande est masquée, mais si elle est configurée à partir du terminal, elle imprime un message à l'utilisateur. Dans la prochaine version principale 12.4, cette commande sera supprimée. |
CSCec17505 (clients enregistrés uniquement) | À déterminer | Symptômes : La taille du cache ipc ne change pas lorsque vous utilisez la commande ipc cache <size> CLI pour modifier la taille du cache. Conditions : Cette condition résulte de changements architecturaux avec IPC. Solution de contournement: La fonctionnalité de cache IPC est désormais automatique et ne peut pas être modifiée par l'utilisateur sur l'interface de ligne de commande. Cette amélioration supprime la commande CLI ipc cache <size> dans les versions du logiciel Cisco IOS qui ne permettent plus à l'utilisateur de modifier manuellement le cache IPC. Il ne doit pas y avoir de problème de rétrocompatibilité, car l'interface de ligne de commande (CLI) existe toujours dans les versions où l'utilisateur peut modifier manuellement le cache IPC à l'aide de la commande ipc cache <size> CLI. |
Lors de l'exécution de Catalyst OS, la gamme Catalyst 6000 / Cisco 7600 utilise un Supervisor Engine avec une carte de routeur en option appelée carte MSFC (Multilayer Switch Feature Card). Le processeur sur le superviseur et le processeur sur la carte MSFC communiquent via des messages IPC via un bus de gestion hors bande Ethernet. Lors de l'exécution du logiciel système Cisco IOS, le processeur de routage et le processeur de commutation (SP) communiquent également par le biais de messages IPC. À l'origine, 3 000 mémoires tampon ont été créées pour les messages IPC. Dans de rares cas, le système est à court de mémoires tampon IPC et signale ces messages d'erreur :
01:52:13: %ICC-2-NOMEM: No memory available for unregistering card Card2 02:42:08: %IPC-3-NOBUFF: The main IPC message header cache has emptied -Traceback= 4026779C 40268350 4025F930 40223D34 40221C40 40221EA4 401EAB10
Note : ICC signifie InterCard Communications.
À partir des versions 12.1(08a)E01 et 12.1(10)E du logiciel Cisco IOS, la gamme Cisco 7600 crée désormais 6000 mémoires tampon de messages IPC par défaut. En outre, les modifications apportées aux versions 12.1(08a)E et 12.1(09)EC permettent d’éviter une épuisement des en-têtes de la CIB résultant d’un grand nombre de mises à jour liées au réseau local virtuel (VLAN). Chaque message ICC annonce un groupe de modifications d’état de liens VLAN, plutôt qu’un VLAN à la fois.
Les nouvelles cartes de ligne de la gamme Cisco 7600 prennent en charge une carte fille de fonction distribuée (DFC) pour des débits de traitement de paquets à haut débit. Les cartes de ligne compatibles DFC gèrent les tables de contiguïté et de transfert Cisco Express locales et communiquent avec le superviseur à l'aide de messages IPC.
Certains messages IPC sont supérieurs à l'unité de transmission maximale (MTU) du bus de commutation Catalyst 6000 (par exemple, les messages IPC utilisés pour signaler les statistiques d'interface SONET dans des messages de plus de 1 500 octets). Ces messages doivent être fragmentés. Dans de rares conditions, le cache d'en-tête de fragment IPC est épuisé et le système signale ce message d'erreur :
%IPC-DFC6-3-NOBUFF: The fragment IPC message header cache has emptied
Les modifications apportées aux versions 12.1(08a)E et 12.1(09.05)EC du logiciel Cisco IOS font passer le nombre d'en-têtes de tampon de fragment de la CIB de 32 à 128.
Ce message peut apparaître dans la sortie de débogage si des accusés de réception en double sont reçus par le client IPC.
IPC : Message d'origine introuvable pour ACK HDR :
Les accusés de réception en double sont généralement dus à des problèmes de support qui provoquent la perte des messages d'accusé de réception. Afin de résoudre cette perte d'accusé de réception, réinsérez ou remplacez correctement la carte de ligne dans les logements pour éviter les problèmes de support.
Si vous avez toujours besoin d'assistance après avoir suivi les étapes de dépannage ci-dessus et que vous souhaitez créer une demande de service auprès du TAC Cisco, veillez à inclure les informations suivantes pour le dépannage des messages d'erreur liés à IPC-3-NOBUFF : |
---|
Remarque : Ne rechargez pas manuellement le routeur ou ne le mettez pas hors tension avant de collecter les informations ci-dessus, sauf si nécessaire pour résoudre une exception IPC-3-NOBUFF, car cela peut entraîner la perte d'informations importantes nécessaires pour déterminer la cause première du problème. |