المحتويات

المقدمة

الأجهزة القابلة للتطبيق

إجراء Nexus Tahoe ASIC ELAM

طوبولوجيا

الخطوة 1 - التحقق من ASIC والشريحة ومعرف SrcId الخاص بالمنفذ

الخطوة 2 - إلحاق بالوحدة النمطية

الخطوة 3 - أدخل وضع تكوين ELAM وحدد ASIC المناسب من الخطوة 1

الخطوة 4 - تكوين مشغل ELAM

الخطوة 5 - تعيين مشغلات ELAM باستخدام SRC و IP

الخطوة 6 - بدء تشغيل ELAM

الخطوة 7 - تأكد مما إذا كان ELAM الخاص بك قد تم تشغيله ثم راجع النتائج

عرض نتائج ELAM لإصدارات NX-OS ما قبل 7.0(3)I5(2)

VXLAN المضمنة ELAM:

ELAM Configuration Post NX-OS 7.0(3)I7(2)

المقدمة

يصف هذا وثيقة ال 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:

- ستوفر لك واجهة سطر الأوامر "تفاصيل التقرير" نتيجة أكثر تفصيلا موصوفة في القسم اللاحق. هذا أيضا هو المخرج الافتراضي على الإصدارات الأقدم.

- 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" على منصات الأجهزة التالية:

- المحولات Cisco Nexus 9300-EX Switches

- محولات Cisco Nexus 9500 مع بطاقات خط X9700-EX

- يتطلب تغيير "وضع توجيه النظام" إعادة تحميل المحول.

مثال على حركة المرور التي تواجه تأثير وحدة المعالجة المركزية:

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