المقدمة
تأتي واجهة التحكم في الوصول (ACI) بعد التحويل المباشر الذي يعني أن الحزمة تمت إعادة توجيهها بالفعل قبل أن يمكن حساب وحدة التحكم في الوصول إلى الإطارات (CRC). يتم غلف هذه الحزم بشكل نموذجي وإعادة توجيهها كأخطاء إخراج. لأن قائمة التحكم في الوصول (ACI) لا تسقط هذه الحزم، فإن نفس إجتياز الحزمة تتزايد على المسار عدادات CRC الخاصة بالمنفذ. وهذا لا يعني أن جميع الواجهات التي ترى إتفاقية حقوق الطفل معيبة. لذلك، هناك حاجة إلى الفرز المناسب لعزل المنفذ/SFP/الألياف الإشكالية. تتم عملية الفرز الآن مؤتمتة من خلال البرامج النصية ل Python مما يؤدي إلى أستكشاف الأخطاء وإصلاحها بشكل أكثر سهولة وتجنب المهام اليدوية. يهدف نطاق هذا المستند إلى شرح كيفية إستخدام برامج التشغيل التلقائي النصية المراد إستخدامها (انظر المرفق).
المتطلبات الأساسية لتشغيل البرنامج النصي يدويا
يحتاج جهاز العميل الذي سيتم تنفيذ البرنامج النصي منه إلى الوفاء بالمتطلبات التالية
أ. يجب تثبيت Python3
ب. وصول الشبكة إلى مجال ACI
c. ACI_CRC_requirements.txt (المرفق) المطلوب تثبيته. هذا الملف موجود هنا.
تنزيل الملف (ACI_CRC_requirements.txt) إلى جهاز العميل
افتح الوحدة الطرفية وقم بتشغيل الأمر- تثبيت PIP3 -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
المتطلبات الأساسية لتشغيل البرنامج النصي من الحاوية
يتم إعداد الحاوية باستخدام حزم Python الواردة أعلاه المثبتة مسبقا.
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
خطوات تنفيذ النصوص التنفيذية
يرجى ملاحظة أن هناك نصي بيثون (ACI_CRC_Poller.py و ACI_CRC_Parser.py). تتوفر هذه البرامج النصية للتنزيل من تبادل رموز Cisco DevNet باستخدام عنوان URL التالي.
https://developer.cisco.com/codeexchange/github/repo/CiscoDevNet/ACI-CRC-FCS-Checker
قم بتنزيل كلا النصين على الجهاز/الكمبيوتر، حيث تريد تنفيذ البرامج النصية من.
في هذا المستند، يشير السيناريو -1 إلى ACI_CRC_Poller.py و script-2 إلى ACI_CRC_Parser.py.
1. تقوم ACI_CRC_Poller.py بجمع بيانات أخطاء CRC و FCS في الملفات كل خمس دقائق لمدة أقصاها سبعة أيام.
تشغيل البرنامج النصي 1 (ACI_CRC_Poller.py) من الوحدة الطرفية. الرجاء إدخال عنوان IP غير المصرح به لأحد APICs في نظام مجموعة محددة وبيانات اعتماده.
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. يطلب البرنامج النصي 1 الإعدادات المحلية/المسار الموجود على الجهاز/الكمبيوتر المحلي، حيث سيتم تخزين السجلات. الرجاء إدخال مسار صالح، وإلا فلن يتم تشغيل البرنامج النصي.
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. وسيطلب النص الآن وقت انتهاء التنفيذ.
الرجاء إدخال الوقت بالتنسيق yyyy-mm-dd:mm (لكل منطقة زمنية محلية من البنية) والحد الأدنى لمدة 5 دقائق والحد الأقصى الذي يصل إلى 7 أيام.
في هذا الوقت، يبدأ SCRIPT-1 في تجميع أخطاء FCS/CRC من النسيج كل خمس دقائق (حتى النهاية التي يحددها المستخدم سابقا) ويحفظ البيانات إلى الملفات على المسار المحدد في المدخلات السابقة.
----------------------------------------------------------------
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. عند التنفيذ الناجح للنصوص النصية الأولى، سيتم تخزين ملفات البيانات الأولية في الموقع، المحدد من قبل المستخدم في الخطوة-2.
تحقق من نفس الإجراء كما هو موضح في المثال التالي.
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. الآن حان الوقت لتنفيذ النص الثاني ( aci_crc_parser.py) .
سيستخدم SCRIPT-2 تلك الملفات التي تم إنشائها باستخدام SCRIPT-1 وسيعمل أكثر.
الرجاء إدخال عنوان IP غير المصرح به لأحد APICs في نظام مجموعة محدد وبيانات اعتماده.
أيضا، قم بإدخال نفس مكان الملف، الذي قمت بإدخاله في الخطوة-2 أثناء تنفيذ البرنامج النصي الأول.
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. سيقوم البرنامج النصي -2 بطباعة البيانات بتنسيق جدولي كما هو موضح في المثال التالي.
في المقام الأول، سيقوم بسرد واجهات العقد التي تحتوي على أخطاء CRC و FCS غير صفرية، بالإضافة إلى الفرق في عدادات CRC/FCS الخاصة بها، أثناء الفاصل الزمني الذي يحدده المستخدم. وباستخدام بروتوكول LLDP، سيقوم البرنامج النصي أيضا بتحديد الجهاز المجاور المتصل بواجهات محددة، والأهم من ذلك، أنه سيشير إلى العقدة/الواجهة التي هي مصدر الأخطاء من وجهة نظر البنية وأي واجهات العقد ترى فقط CRCs بسبب Stomp.
من منظور أستكشاف المشكلات وحلها في تسلسل التحقق من الإطارات (FCS)، يكون العنصر الذي تم إبرازه في "الأحمر" وتم تمييزه على أنه "محلي" هو المكان الذي يجب التركيز فيه على أستكشاف الأخطاء وإصلاحها.
هذا هو على الأرجح القارن (الواجهات)، حيث تدخل الحزم التالفة/السيئة في البنية من مسببة إغراق حزم CRCs في البنية.
+--------+---------+--------------------+-----------+-----------+---------------+---------------+---------------+---------------+-------------------------------------------------------------------------------------+--------------+
| 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. علاوة على ذلك، سيقوم البرنامج النصي بتوفير الخيارات التالية للمستخدمين لفرز وعرض البيانات متعددة المستويات، ما تم تجميعه في البرنامج النصي 1 و 2.
قد يختار المستخدم خيارا بين الرقم 1-3 كإدخال. انظر المثال التالي.
1.Sort the data further
2.View the granular data of an interface
3.Exit
Input the number:
في المثال التالي، سنتجه للخيار 2 الذي يساعدنا على عرض البيانات متعددة المستويات لأي واجهة معينة.
سيحث البرنامج النصي المستخدم على إدخال رقم POD ومعرف العقدة ومعرف الواجهة الخاصين به من الجدول المطبوع أعلاه (الخطوة 6).
هنا في هذا المثال، نستخدم 1-302-eth1/44، حيث معرف POD هو 1، ومعرف العقدة هو 302 ومعرف الواجهة ETH1/44. هذه هي الواجهة
حيث تم الإبلاغ عن FCS المحلي بواسطة البرنامج النصي، كما هو موضح في الخطوة 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)):
في المثال، جمعنا البيانات لدقائق قليلة فقط من اليوم، وبالتالي نرى فقط خيارا واحدا بتاريخ 27 سبتمبر.
وبذلك، سيكون مدخلنا هو "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$