المقدمة
يصف هذا وثيقة ال steps يستعمل in order to أدرتELAM (المنطق المدمج ANAlyzer Module) على سلسلة من وحدات ASIC من Cisco Nexus 9000 CloudScale، وتغطي أكثر المخرجات صلة، وتصف كيفية تفسير النتائج.
تلميح: ارجع إلى وثيقة نظرة عامة على ELAM للحصول على نظرة عامة على ELAM.
الأجهزة القابلة للتطبيق
ينطبق الإجراء الوارد في هذا المستند على الأجهزة التالية فقط:
N9K-C93180YC-EX |
N9K-C92304QC |
N9K-X9736C-EX |
N9K-C92300YC |
N9K-C93108TC-EX |
N9K-X9788TC-FX |
N9K-X9732C-EX |
N9K-X97284YC-FX |
N9K-X97160YC-EX |
N9K-C93180YC-FX |
N9K-C93180LC-EX |
N9K-C93108TC-FX |
N9K-C92160YC-X |
N9K-C9348GC-FXP |
N9K-C9272Q |
N9K-X9732C-FX |
N9K-C9236C |
N9K-C9336C-FX2 |
N9K-C93240YC-FX2
|
N9K-C93300YC-FX2 |
N9K-C9364C |
N9K-C9332C |
|
|
إجراء Nexus Tahoe ASIC ELAM
المخطط
الخطوة 1 - التحقق من ASIC والشريحة ومعرف SrcId الخاص بالمنفذ
N9K-C92160YC-X-2# show hardware internal tah interface e1/49
IfIndex: 436232192
DstIndex: 5952
IfType: 26
Asic: 0 <<<<<<<<< Asic: 0
AsicPort: 56
SrcId: 48 <<<<<<<< Slice: 1 <<<<<<<<< PortOnSlice: 24
تحذير: يجب إستخدام ELAM فقط على نافذة طرفية واحدة بينما تحتفظ بمحتوى عالمي لكل شريحة، LU-A2D، وما إلى ذلك.
على سبيل المثال، قناة المنفذ (PO) قد يكون لها ربطين، ETH 1/53 الذي يماثل الشريحة 0 و ETH 1/54 التي ترادف الشريحة 1. لن يساعد إعداد ELAM على نافذتين طرفيتين منفصلتين في وقت واحد للشرائح المختلفة حيث أن الشريحة الأخيرة (لنقل الشريحة 1) ستكتب فوق الأولى (الشريحة 0)، وينتهي الأمر بالحصول على نفس النتيجة على كلا نافذتي الطرفية.
يمكنك التحقق من هذه المعلومات مرتين من خلال:
N9K-C92160YC-X-2# show system internal ethpm info interface e1/49 | i i src
IF_STATIC_INFO: port_name=Ethernet1/49,if_index:0x1a006000,ltl=5952,slot=0, nxos_port=192,dmod=1,dpid=56,
unit=0,queue=65535,xbar_unitbmp=0x0,ns_pid=255,slice_num=1,port_on_slice=24,src_id=48
الخطوة 2 - إلحاق بالوحدة النمطية
N9K-C92160YC-X-2# attach mod 1
الخطوة 3 - أدخل وضع تكوين ELAM وحدد ASIC المناسب من الخطوة 1
module-1# debug platform internal tah elam asic 0
الخطوة 4 - تكوين مشغل ELAM
ملاحظة: هناك كثير خيار أنت يستطيع عينت هنا طبقا على الربط/التدفق أن يكون التقط
module-1(TAH-elam)# trigger init asic 0 slice 1 lu-a2d 1 in-select 6 out-select 0 use-src-id 48
تلميح:
- إذا كانت منافذ الدخول والخروج على شرائح مختلفة على نفس ASIC، فإن ELAM على شريحة الخروج لن يلتقط الحزمة الصادرة لأن الحزمة لن تمر عبر كتل LUX على شريحة الخروج وبالتالي سوف تتجاوز ELAM.
- يتم إستخدام lu-A2d 0 ل ELAM العكسية حيث يعتمد الزناد على النتيجة، ويتم إستخدام lu-a2d 1 ل ELAM حيث يعتمد الزناد على سمات الحزمة
- أستخدم دائما 6 للتحديد الداخلي و 0 للتحديد الخارجي
تحذير: لا تستخدم 0 بعد lu-a2d لأن هذا قد يؤدي إلى تعطيل المحول - راجع CSCvd64106 للحصول على مزيد من التفاصيل
الخطوة 5 - تعيين مشغلات ELAM باستخدام SRC و IP
في هذا المثال، IP المصدر الخاص بنا هو 192.0.2.2 و IP الوجهة هو 192.0.2.1 كما هو موضح أدناه:
module-1(TAH-elam-insel6)# reset
module-1(TAH-elam-insel6)# set outer ipv4 dst_ip 192.0.2.1 src_ip 192.0.2.2
ملاحظة: تأكد من أن "إعادة ضبط" كأمر "set" سيسود خلال ELAMs ويمكن أن يتسبب في عدم تشغيلها أو تشغيلها على حقول غير متوقعة.
الخطوة 6 - بدء تشغيل ELAM
module-1(TAH-elam-insel6)# start
GBL_C++: [MSG] tahusd_elam_wrapper_init:36:asic type 5 inst 0 slice 1 a_to_d 1 insel 6 outsel 0
GBL_C++: [MSG] Inside tahusd_elam_wrapper_init
GBL_C++: [MSG] tahusd_elam_wrapper_enable:7e:asic type 5 inst 0 slice 1 a_to_d 1
GBL_C++: [MSG] - writing data=0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001FD901C4E2A0000000000000000000002000000000000000000000000000000000000000000000000000000030001
GBL_C++: [MSG] - writing mask=0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001FFFFFFFFFFFE00000000000000000000038000000000000000000000000000000000000000000000000000001FF001
الخطوة 7 - تأكد مما إذا كان ELAM الخاص بك قد تم تشغيله ثم راجع النتائج
ملاحظة: بدءا من NX-OS 7.0(3)I5(2) وما بعده، هناك نسخة مختصرة من تقرير ELAM كما هو موضح أدناه. إذا كنت تقوم بتشغيل pre-7.0(3)I5(2)، فاستمر في قسم "عرض نتائج ELAM...".
module-1(TAH-elam-insel6)# report
SUGARBOWL ELAM REPORT SUMMARY
slot - 1, asic - 1, slice - 1
============================
Incoming Interface: Eth1/49
Src Idx : 0xd, Src BD : 10
Outgoing Interface Info: dmod 1, dpid 14
Dst Idx : 0x602, Dst BD : 10
Packet Type: IPv4
Dst MAC address: CC:46:D6:6E:28:DB Src MAC address: 00:FE:C8:0E:27:15
.1q Tag0 VLAN: 10, cos = 0x0
Dst IPv4 address: 192.0.2.1 Src IPv4 address: 192.0.2.2
Ver = 4, DSCP = 0, Don't Fragment = 0
Proto = 1, TTL = 64, More Fragments = 0
Hdr len = 20, Pkt len = 84, Checksum = 0x667f
L4 Protocol : 1
ICMP type : 0
ICMP code : 0
Drop Info:
----------
LUA:
LUB:
LUC:
LUD:
Final Drops:
- ستوفر لك واجهة سطر الأوامر (CLI) تفاصيل التقرير" نتيجة أكثر تفصيلا موصوفة في القسم اللاحق. هذا أيضا هو المخرج الافتراضي على الإصدارات الأقدم.
- DST IDX هو NIV_idx الخاص بواجهة الخروج. يمكن التحقق من هذا و/أو الإشارة إليه باستخدام واجهة توصيل داخلية show hardware ex/y | آي نيف"
- ال dmod و dpid يماثل إلى المخرج قارن. يمكن التحقق من هذا باستخدام إظهار معلومات الوحدة النمطية الداخلية للنظام على شكل EX/Y | نقطة في البوصة"
- وبالإضافة إلى ذلك، يمكن إستخدام show interface hardware mapping" للتحقق من صحة dmod/dpid.
ملاحظات:
1. عندما يتعلق الأمر بتأكيد ما إذا كانت الحزمة يتم إسقاطها بالفعل، فإن حقل "الإسقاط النهائي" هو الحقل الوحيد الذي يجب أخذه بعين الاعتبار. بمعنى آخر، بينما قد ترى إستثناءات مرمية في حقول أخرى مثل LUA/B/C/D، فإن ذلك لا يعني بالضرورة أنه يتم إسقاط الحزمة. يرجى مراجعة هذا الإخراج بعناية (ناقش مع TAC حسب الحاجة).
2. ستتوفر لحركة المرور التي يتم انتقاؤها إلى وحدة المعالجة المركزية (CPU) مجموعة علامات sup_hit (تفاصيل التقرير | GREP sup_hit).
- يمكنك فك ترميز السبب باستخدام show system internal access-list sup-redirect-stats all" ومطابقة فهرس SUP
- تأكد من تكوين وضع توجيه النظام الصحيح (show system routing mode)
- وفقا للمبادئ التوجيهية والقيود الموثقة في اعتبارات نشر شبكات VXLAN
-
لا ينطبق "وضع توجيه النظام: template-vxlan-scale" على الإصدار 7.0(3)I5(2) من Cisco NX-OS والإصدارات الأحدث.
-
عند إستخدام شبكة VXLAN BGP EVPN بالاقتران مع الإصدار 7.0(3)I4(x) أو NX-OS الإصدار 7.0(3)I5(1) من Cisco، يلزم وجود "وضع توجيه النظام: template-vxlan-scale" على منصات الأجهزة التالية:
-
يتطلب تغيير "وضع توجيه النظام" إعادة تحميل المحول.
مثال على حركة المرور التي تواجه تأثير وحدة المعالجة المركزية:
module-1(TAH-elam-insel6)# report
SUGARBOWL ELAM REPORT SUMMARY
=============================
Incoming Interface: Eth1/3
Src Idx : 0x9, Src BD : 23
Outgoing Interface Info: dmod 1, dpid 72
Dst Idx : 0x601, Dst BD : 802
Packet Type: IPv4
Dst MAC address: B0:8B:CF:A3:D0:4B
Src MAC address: 00:10:DB:FF:10:00
.1q Tag0 VLAN: 23, cos = 0x0
Dst IPv4 address: 192.0.2.1
Src IPv4 address: 192.0.2.2
Ver = 4, DSCP = 2, Don't Fragment = 1
Proto = 6, TTL = 49, More Fragments = 0
Hdr len = 20, Pkt len = 60, Checksum = 0x63c3
L4 Protocol : 6
TCP Dst Port : 80
TCP Src Port : 46340
Sup hit: 1, Sup Idx : 2720 <<---- CPU punt, use below CLI to resolve the meaning of Sup Idx
Drop Info:
----------
LUA:
LUB:
LUC:
LUD:
Final Drops:
# show system internal access-list sup-redirect-stats all | grep 2720 2720 copp-system-p-acl-http 63
عرض نتائج ELAM لإصدارات NX-OS ما قبل 7.0(3)I5(2)
+ هل يحتوي هذا على رأس dot1q؟
module-1(TAH-elam-insel6)# report | grep pr_lu_vec_l2v.qtag0 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_vld: 0x1 << dot1q yes? 0x1 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_cos: 0x0 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_de: 0x0 GBL_C++: [MSG] pr_lu_vec_l2v.qtag0_vlan: 0xA << VL 10
+ فحص شبكة VLAN:
module-1(TAH-elam-insel6)# report | grep -1 fpx_lookup_vec.lkup.macsakey.key.fid
GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.vld: 0x1
GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.fid_type: 0x0
GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.fid_vld: 0x0
GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.fid: 0xA << dec 0xa = VL 10
GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715
+ فحص SRC MAC (يمكنك بالفعل رؤية هذا في الخطوة السابقة كذلك):
module-1(TAH-elam-insel6)# report | grep -i fpx_lookup_vec.lkup.macsakey.key.mac
GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715 << 00fe.c80e.2715
GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715
GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715
GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715
GBL_C++: [MSG] fpx_lookup_vec.lkup.macsakey.key.mac: 0xFEC80E2715
+ هل هذا تعلم جديد؟
module-1(TAH-elam-insel6)# report | grep -1 fpx_lookup_vec.sa_notify_info
GBL_C++: [MSG] fpx_lookup_vec.lkup.ptvec.misc1.tcp_flags: 0x0
GBL_C++: [MSG] fpx_lookup_vec.sa_notify_info: 0x5200000C060
GBL_C++: [MSG] fpx_lookup_vec.sa_notify_info.enable: 0x0 << This will be set to 0x1 for learning to happen
GBL_C++: [MSG] fpx_lookup_vec.sa_notify_info.conv_learn_only: 0x0
+ التحقق من SRC و DST IP:
module-1(TAH-elam-insel6)# report | grep vec_l3v.ip.*a
GBL_C++: [MSG] pr_lu_vec_l3v.ip.da: 0x00000000000000000c0000201 << DST IP: 192.0.2.1
GBL_C++: [MSG] pr_lu_vec_l3v.ip.sa: 0x00000000000000000c0000202 << SRC IP: 192.0.2.2
+ التحقق من إدخال src_id:
module-1(TAH-elam-insel6)# report | egrep SRC
GBL_C++: [MSG] SRCID: 0x30
module-1(TAH-elam-insel6)# report | grep vec.ihdr.ieth.hdr.src_idx
GBL_C++: [MSG] lurw_vec.ihdr.ieth.hdr.src_idx: 0xA9 << sh hardware internal tah int e1/49 | i i niv_idx
+ إذا لم يتم تشغيل ELAM، فستبدو كما يلي:
module-1(TAH-elam-insel6)# report
GBL_C++: [MSG] tahusd_elam_wrapper_report:27d:asic type 5 inst 0 slice 1 a_to_d 1 insel 6 outsel 0
GBL_C++: [MSG] Inside tahusd_elam_wrapper_dav_report
GBL_C++: [MSG] ELAM not yet triggered <<<<<<
VXLAN المضمنة ELAM:
نظرا لأنه سيتم تضمين حزم VXLAN، يلزم تشغيل ELAM على الرأس الداخلي بدلا من الرأس الخارجي - راجع المثال أدناه لإطار ARP:
module-1# debug platform internal tah elam asic 0
module-1(TAH-elam)# trigger init asic 0 slice 1 in-select 7 out-select 0 use-src-id 48
module-1(TAH-elam-insel7)# reset
module-1(TAH-elam-insel7)# set inner arp source-ip-addr 192.0.2.2 target-ip-addr 192.0.2.1
module-1(TAH-elam-insel7)# start
module-1(TAH-elam-insel7)# report
ELAM Configuration Post NX-OS 7.0(3)I7(2)
بعد NX-OS 7.0(3)I7(2)، يمكن تشغيل ELAM الآن بشكل عام دون تحديد ASIC أو رقم الشريحة لتسهيل التشغيل - انظر المثال التالي:
Nexus-9K# debug platform internal tah elam
Nexus-9K(TAH-elam)# trigger init
Nexus-9K(TAH-elam-insel6)# reset
Nexus-9K(TAH-elam-insel6)# set outer ipv4 dst_ip 192.0.2.1 src_ip 192.0.2.2
Nexus-9K(TAH-elam-insel6)# start
Nexus-9K(TAH-elam-insel6)# report