Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
L'ACI suit la commutation cut-through, ce qui signifie que le paquet est déjà transféré avant que le CRC puisse être calculé. Ces paquets sont généralement estompés et transférés en tant qu'erreurs de sortie. Comme l'ACI n'abandonne pas ces paquets, le même paquet traverse le paquet et les compteurs CRC stomp sont incrémentés sur le chemin. Cela ne signifie pas que toutes les interfaces qui voient le CRC sont défectueuses. Par conséquent, un triage approprié est nécessaire pour isoler le port/SFP/Fibre problématique. Le processus de triage est désormais automatisé par le biais de scripts Python, ce qui facilite le dépannage et évite les tâches manuelles. Ce document explique comment utiliser les scripts d'automatisation (voir ci-joint).
La machine cliente à partir de laquelle le script sera exécuté doit répondre aux exigences suivantes :
a. Python3 doit être installé
b. Accès réseau au domaine ACI
c. ACI_CRC_Requirements.txt (joint) à installer. Ce fichier se trouve ici.
Télécharger le fichier (ACI_CRC_Requirements.txt) sur la machine cliente
Ouvrez Terminal et exécutez la commande- pip3 install -r ACI_CRC_Requirements.txt
ABCD-M-G24X:downloads abcd$ pip3 install -r ACI_CRC_requirements.txt
Collecting bcrypt==3.2.0 (from -r ACI_CRC_requirements.txt (line 1))
Downloading https://files.pythonhosted.org/packages/bf/6a/0afb1e04aebd4c3ceae630a87a55fbfbbd94dea4eaf01e53d36743c85f02/bcrypt-3.2.0-cp36-abi3-macosx_10_9_x86_64.whl
Collecting cffi==1.14.6 (from -r ACI_CRC_requirements.txt (line 2))
Downloading https://files.pythonhosted.org/packages/ca/e1/015e2ae23230d9de8597e9ad8c0b81d5ac181f08f2e6e75774b7f5301677/cffi-1.14.6-cp38-cp38-macosx_10_9_x86_64.whl (176kB)
|████████████████████████████████| 184kB 1.4MB/s
**snip**
Successfully installed DateTime-4.3 Pillow-8.3.2 bcrypt-3.2.0 cffi-1.14.6 cryptography-3.4.8 cycler-0.10.0 kiwisolver-1.3.2
matplotlib-3.4.3 numpy-1.21.2 pandas-1.3.2 paramiko-2.7.2 pyparsing-2.4.7 python-dateutil-2.8.2 pytz-2021.1 six-1.16.0
stdiomask-0.0.5 tabulate-0.8.9 termcolor-1.1.0 zope.interface-5.4.0
Un conteneur est préparé avec les paquets Python ci-dessus préinstallés.
docker login docker.io
docker pull aci-stomper
docker run -d --name
-p
:80 aci-stomper (on your browser http://ContainerIP:someport) docker ps docker exec -it
/bin/bash root@6df99d5dbbad:/# cd /home/scripts/ root@6df99d5dbbad:/home/scripts# ls ACI_CRC_Parser.py ACI_CRC_Poller.py
Veuillez noter qu'il existe au total deux scripts python (ACI_CRC_Poller.py et ACI_CRC_Parser.py). Ces scripts peuvent être téléchargés à partir de Cisco DevNet Code Exchange à l'aide de l'URL ci-dessous.
https://developer.cisco.com/codeexchange/github/repo/CiscoDevNet/ACI-CRC-FCS-Checker
Téléchargez les deux sur l'ordinateur ou l'ordinateur à partir duquel vous voulez exécuter ces scripts.
Dans ce document, le script-1 fait référence à ACI_CRC_Poller.py et le script-2 fait référence à ACI_CRC_Parser.py.
1. ACI_CRC_Poller.py collecte les données d'erreur CRC et FCS dans des fichiers toutes les cinq minutes pendant une durée maximale de sept jours.
Exécutez le script-1 (ACI_CRC_Poller.py) à partir du terminal. Saisissez l'adresse IP OOB de l'un des APIC du cluster donné et ses informations d'identification.
ABCD-M-G24X:downloads abcd$ python3 ACI_CRC_Poller.py
Enter the IP address or DNS Name of APIC: 10.197.204.184
__________________________________________________________
Enter the username: admin
___________________________________________________________
Enter the password: **********
Trying to connect to APIC
Connection established to the APIC
___________________________________________________________
2. Script-1 demande l'emplacement/le chemin sur l'ordinateur/l'ordinateur local, où il stockera les enregistrements. Entrez un chemin valide, sinon le script ne s'exécutera pas.
Please enter the folder where files have to be stored
_____________________________________________________________
VALID folder format:
EXAMPLE:
Windows-> C:\Users\Admin\Desktop\ACI\
MAC -> /User/admin/Desktop/ACI/
---------------------------------------------------------------------------------------------------
PLEASE NOTE that data collection and script execution might get impacted if folder format is not as below
--------------------------------------------------------------------------------------------------------
Enter the absolute path of the folder where the files have to be stored:/Users/abcd/Downloads/FCS_Checker/ <<<<<<<<<<<<<<
3. Le script va maintenant demander l'heure de fin de l'exécution.
Veuillez entrer l'heure au format aaaa-mm-jj hh:mm (par fuseau horaire local du tissu), minimum 5 minutes et maximum 7 jours.
À ce stade, le script-1 commence à collecter les erreurs FCS/CRC du fabric toutes les cinq minutes (jusqu'à l'heure de fin spécifiée précédemment par l'utilisateur) et enregistre les données dans les fichiers au chemin spécifié dans l'entrée précédente.
----------------------------------------------------------------
Enter the End Time until which the script runs(in the format of yyyy-mm-dd hh:mm, current time:2021-09-27 11:27.... maximum upto 2021-10-04 11:27): 2021-09-27 11:32 <<<<<
___________________________________________________________
The script is executing ........................
The script is executing ........................
ABCD-M-G24X:downloads abcd$
4. Une fois le premier script exécuté, il stocke les fichiers de données brutes à l'emplacement spécifié par l'utilisateur à l'étape 2.
Vérifiez la même chose que dans l'exemple ci-dessous.
ABCD-M-G24X:FCS_Checker kbosu$ pwd
/Users/abcd/Downloads/FCS_Checker
ls -l
total 16
-rw-r--r--@ 1 kbosu staff 1419 Sep 27 11:28 CRC_FCS_20210927_1128.txt
-rw-r--r--@ 1 kbosu staff 1419 Sep 27 11:33 CRC_FCS_20210927_1133.txt
ABCD-M-G24X:FCS_Checker abcd$
5. Il est maintenant temps d'exécuter le deuxième script (ACI_CRC_Parser.py).
Script-2 va utiliser les fichiers créés par script-1 et travailler plus loin.
Entrez l'adresse IP OOB de l'un des APIC du cluster donné et ses informations d'identification.
Saisissez également le même emplacement de fichier que celui que vous avez entré à l'étape 2 lors de l'exécution du premier script.
ABCD-M-G24X:downloads abcd$ python3 ACI_CRC_Parser.py
Enter the IP address or DNS Name of APIC: 10.197.204.184
__________________________________________________________
Enter the username: admin
___________________________________________________________
Enter the password: **********
Trying to connect to APIC
Connection established to the APIC
_____________________________________________________________
Please enter the folder where files are stored
Please make sure we have at least two files exists in the directory where you have saved data
_____________________________________________________________
--------------------------------------------------------------------------------------------------------
Enter the absolute path of the folder where the files are stored:/Users/abcd/Downloads/FCS_Checker/
___________________________________________________________
You have CRC and FCS for the below date range
1.2021-09-27
Fetching first and last file of the same date 20210927
CRC_FCS_20210927_1128.txt
CRC_FCS_20210927_1133.txt
__________________________________________________________
The script is executing.....
__________________________________________________________
The script execution has completed
6. Script-2 va imprimer les données dans un format tabulaire comme illustré ci-dessous.
Il va principalement répertorier les interfaces de noeud avec des erreurs CRC et FCS non nulles, ainsi que la différence dans leurs compteurs CRC/FCS, au cours de l'intervalle de temps spécifié par l'utilisateur. En utilisant LLDP, le script va également déterminer le périphérique voisin connecté à des interfaces données et, plus important encore, il va indiquer quel noeud/interface est la source des erreurs du point de vue du fabric et quelles interfaces de noeud ne voient que des CRC en raison de Stomp.
Du point de vue du dépannage FCS, celui mis en évidence en rouge et marqué en local est celui sur lequel le dépannage doit être axé.
Il s'agit probablement de la ou des interfaces, où des paquets défectueux ou endommagés pénètrent dans le fabric à partir de la structure et provoquent l'inondation des CRC dans le fabric.
+--------+---------+--------------------+-----------+-----------+---------------+---------------+---------------+---------------+-------------------------------------------------------------------------------------+--------------+
| POD_ID | NODE_ID | NODE_NAME | NODE_ROLE | INTERFACE | 20210927_1128 | 20210927_1133 | 20210927_1128 | 20210927_1133 | NEIGHBOR | ERROR SOURCE |
+--------+---------+--------------------+-----------+-----------+-----CRC-------+----CRC Diff---+----FCS--------+---FCS Diff----+-------------------------------------------------------------------------------------+--------------+
| 1 | 302 | bgl-aci06-t2-leaf2 | leaf | eth1/44 | 5002806823759 | 127841888 | 5002806823759 | 127841888 | No LLDP /CDP neighbours found please check physically where this interface connects | Local |
| 1 | 101 | bgl-aci06-spine1 | spine | eth1/1 | 2981200154 | 132103050 | 0 | 0 | System:bgl-aci06-t1-leaf1.cisco.com,Interface:Eth1/49 | Stomp |
| 1 | 101 | bgl-aci06-spine1 | spine | eth1/2 | 968286 | 0 | 0 | 0 | | Historic |
| 1 | 201 | bgl-aci06-t1-leaf1 | leaf | eth1/1 | 12 | 0 | 0 | 0 | | Historic |
| 1 | 201 | bgl-aci06-t1-leaf1 | leaf | eth1/51 | 4999243774529 | 0 | 0 | 0 | | Historic |
| 1 | 201 | bgl-aci06-t1-leaf1 | leaf | eth1/52 | 5002807353809 | 127841212 | 0 | 0 | System:bgl-aci06-t2-leaf2.cisco.com,Interface:Eth1/49 | Stomp |
| 1 | 202 | bgl-aci06-t1-leaf2 | leaf | eth1/51 | 968286 | 0 | 0 | 0 | | Historic |
| 1 | 301 | bgl-aci06-t2-leaf1 | leaf | eth1/44 | 4999245287405 | 0 | 4999245287405 | 0 | | Historic |
| 1 | 301 | bgl-aci06-t2-leaf1 | leaf | eth1/49 | 4999823953891 | 0 | 0 | 0 | | Historic |
| 1 | 302 | bgl-aci06-t2-leaf2 | leaf | eth1/49 | 4999243774529 | 0 | 0 | 0 | | Historic |
+--------+---------+--------------------+-----------+-----------+---------------+---------------+---------------+---------------+-------------------------------------------------------------------------------------+--------------+
7. En outre, le script va fournir les options suivantes aux utilisateurs pour trier et afficher des données granulaires, ce qui a été collecté par les scripts 1 et 2.
L'utilisateur peut choisir une option entre le nombre 1 et le nombre 3 comme entrée. Reportez-vous à l'exemple ci-dessous.
1.Sort the data further
2.View the granular data of an interface
3.Exit
Input the number:
Dans l'exemple ci-dessous, nous allons vers l'option 2 qui nous aide à visualiser des données granulaires pour n'importe quelle interface donnée.
Le script invite l'utilisateur à saisir le numéro de POD, l'ID de noeud et l'ID d'interface respectifs dans le tableau imprimé ci-dessus (étape 6).
Dans cet exemple, nous utilisons 1-302-eth1/44, où ID POD est 1, ID de noeud 302 et ID d'interface eth1/44. Il s’agit de l’interface
où la séquence de contrôle de trame locale a été signalée par le script, comme indiqué à l'étape-6.
Input the number:2
---------------------------------------------------------------------------
Enter an interface for which you need granular data(POD_ID-NODE_ID-INTERFACE Example:1-101-eth1/5): 1-302-eth1/44
----------------------------------------------------------------------
You have CRC and FCS data in the below date range
1.2021-09-27
Enter the date for which you need granular data(any number from the above list range(1-1)):
Dans notre exemple, nous avons recueilli les données seulement quelques minutes par jour, donc nous ne voyons qu'une seule option pour le 27 septembre.
Ainsi, notre contribution sera « 1 ».
Enter the date for which you need granular data(any number from the above list range(1-1)): 1
+-------+---------------+---------------+
| Time | CRC | FCS |
+-------+---------------+---------------+
| 11:28 | 5002806823759 | 5002806823759 |
| 11:33 | 5002934665647 | 5002934665647 |
+-------+---------------+---------------+
----------------------------------------------------------------
Do you want to continue viewing the granular data(0/1), 1-yes, 0-no:0
--------------------------------------------------------------------------------
Please select any number below to sort the data further or to view granular data of an interface
1.Sort the data further
2.View the granular data of an interface
3.Exit
Input the number:3
ABCD-M-G24X:downloads abcd$
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
23-Nov-2021 |
Première publication |