المحتويات

المقدمة

المخطط

نظرة عامة على العملية

تحديد العقد/قاعدة التقسيم إلى مناطق المستخدمة

التحقق من برمجة الأجهزة

أستكشاف مشكلات برمجة الأجهزة وإصلاحها

أوامر أستكشاف الأخطاء وإصلاحها المفيدة

تلميحات استكشاف المشكلات وإصلاحها

اشتقاق اسم العقد من معرف القاعدة

المقدمة

يوضح هذا المستند كيفية التحقق من تكوين العقود وسلوكها بشكل صحيح في بنية Application Centric Infrastructure (ACI).

المخطط

في المثال الذي يتم إستخدامه في هذا المستند بالكامل، يتم إرفاق الجهاز الظاهري A (VM) ب Leaf1، ويوجد عقد يتيح له الاتصال ب VM-B، المرفق ب Leaf2. يسمح العقد لكل من بروتوكول رسائل التحكم في الإنترنت (ICMP) و HTTP.

توضح هذه الصورة المخطط:

نظرة عامة على العملية

هذا هو تفاعل السياسات وتدفقها للعقود والقواعد:

1. يتصل مدير النهج الموجود على وحدة التحكم الخاصة بالبنية الأساسية لسياسة التطبيق (APIC) بمدير عناصر السياسة على المحول.

2. تقوم "إدارة عناصر النهج" الموجودة على المحول ببرمجة "مخزن الكائنات" على المحول.

3. يتصل "مدير النهج" على المحول بعميل جودة الخدمة (ACLQOS) الخاص بقائمة التحكم في الوصول على المحول.

4. يقوم عميل ACLQOs ببرمجة الأجهزة.

تحديد العقد/قاعدة التقسيم إلى مناطق المستخدمة

هنا مثال على إخراج أمر show zoning-rule من الورقة، قبل إضافة العقد لمجموعتين من نقاط النهاية (EPG).

fab1_leaf1# show zoning-rule

Rule ID  SrcEPG  DstEPG  FilterID  operSt   Scope     Action

=======  ======  ======  ========  ======   =====     ======

4096     0       0       implicit  enabled  16777200  deny,log

4097     0       0       implicit  enabled  3080192   deny,log

4098     0       0       implicit  enabled  2686976   deny,log

4099     0       49154   implicit  enabled  2686976   permit

4102     0       0       implicit  enabled  2097152   deny,log

4103     0       32771   implicit  enabled  2097152   permit

4117     16387   16386   12        enabled  2097152   permit

4116     16386   16387   13        enabled  2097152   permit

4100     16386   49154   default   enabled  2097152   permit

4101     49154   16386   default   enabled  2097152   permit

4104     0       32770   implicit  enabled  2097152   permit

4105     49155   16387   13        enabled  2097152   permit

4112     16387   49155   13        enabled  2097152   permit

4113     49155   16387   12        enabled  2097152   permit

4114     16387   49155   12        enabled  2097152   permit

[snip]

هذا هو نفس مخرجات الأمر بعد إضافة العقد حتى يمكن أن يتصل إثنان من EPG مع بعضهم البعض:

fab1_leaf1# show zoning-rule

Rule ID  SrcEPG  DstEPG  FilterID  operSt   Scope     Action

=======  ======  ======  ========  ======   ========  ========

4096     0       0       implicit  enabled  16777200  deny,log

4097     0       0       implicit  enabled  3080192   deny,log

4098     0       0       implicit  enabled  2686976   deny,log

4099     0       49154   implicit  enabled  2686976   permit

4131     49155   32771   7         enabled  2686976   permit

4132     32771   49155   6         enabled  2686976   permit

4102     0       0       implicit  enabled  2097152   deny,log

4103     0       32771   implicit  enabled  2097152   permit

4117     16387   16386   12        enabled  2097152   permit

4116     16386   16387   13        enabled  2097152   permit

4100     16386   49154   default   enabled  2097152   permit

4101     49154   16386   default   enabled  2097152   permit

4104     0       32770   implicit  enabled  2097152   permit

4105     49155   16387   13        enabled  2097152   permit

4112     16387   49155   13        enabled  2097152   permit

4113     49155   16387   12        enabled  2097152   permit

4114     16387   49155   12        enabled  2097152   permit

[snip]

ملاحظة: لاحظ معرفات القواعد الجديدة (4131 و 4132) التي تمت إضافتها، معرفات عوامل التصفية ل 7 و 6، والنطاق ل 2686976.

تحذير: تمكنك مخرجات الأمر هذه من تحديد مكان القواعد التي يجب عليك إختبارها في نظام معملي بسهولة؛ ومع ذلك، قد يكون ذلك مرهقا في بيئة الإنتاج مع التغييرات الديناميكية التي تحدث.

هناك طريقة أخرى يمكنك إستخدامها لتحديد موقع قواعد الاهتمام وهي إستخدام Visore. قم بإجراء بحث على الكائن المدار للسياق (MO) ل fvCTX. يمكنك عندئذ البحث على تلك الشاشة عن الاسم المميز (DN) لسياق معين، كما هو موضح هنا:

أن تحيط علما بنطاق هذا السياق. يمكنك إستخدام هذا الأمر لتعيين إخراج الأمر show-zoning-rule حتى يمكنك تحديد موقع القواعد التي يجب الاستعلام عنها:

يمكنك أيضا تعريف معرف/نطاق المقطع للسياق من واجهة المستخدم (UI)، كما هو موضح هنا:

يتطابق هذا النطاق مع ما هو موضح في إخراج الأمر show zoning-rules:

بمجرد الحصول على معلومات معرف النطاق والتعرف على القاعدة ومعرفات التصفية، يمكنك إستخدام الأمر التالي للتحقق من النقر فوق عوامل التصفية الجديدة (وليس رسائل الرفض الضمني بين EPGs). ويتم تضمين رسالة الرفض الضمني حتى لا تتمكن بروتوكولات EPG من الاتصال بشكل افتراضي.

لاحظ في مخرجات الأمر هذه أن Leaf1، Filter-6 (F-6) يتزايد:

fab1_leaf1# show system internal policy-mgr stats | grep 2686976

Rule (4098) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-any-f-implicit)

Ingress: 0, Egress: 81553

Rule (4099) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-49154-f-implicit)

Ingress: 0, Egress: 0

Rule (4131) DN (sys/actrl/scope-2686976/rule-2686976-s-49155-d-32771-f-7)

Ingress: 0, Egress: 0

Rule (4132) DN (sys/actrl/scope-2686976/rule-2686976-s-32771-d-49155-f-6)

Ingress: 1440, Egress: 0

fab1_leaf1# show system internal policy-mgr stats | grep 2686976

Rule (4098) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-any-f-implicit)

Ingress: 0, Egress: 81553

Rule (4099) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-49154-f-implicit)

Ingress: 0, Egress: 0

Rule (4131) DN (sys/actrl/scope-2686976/rule-2686976-s-49155-d-32771-f-7)

Ingress: 0, Egress: 0

Rule (4132) DN (sys/actrl/scope-2686976/rule-2686976-s-32771-d-49155-f-6)

Ingress: 1470, Egress: 0

لاحظ في مخرجات الأمر هذه أن Leaf2، Filter-7 (F-7) يتزايد:

fab1_leaf2# show system internal policy-mgr stats | grep 268697

Rule (4098) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-any-f-implicit)

Ingress: 0, Egress: 80257

Rule (4099) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-49153-f-implicit)

Ingress: 0, Egress: 0

Rule (4117) DN (sys/actrl/scope-2686976/rule-2686976-s-32771-d-49155-f-6)

Ingress: 0, Egress: 0

Rule (4118) DN (sys/actrl/scope-2686976/rule-2686976-s-49155-d-32771-f-7)

Ingress: 2481, Egress: 0

fab1_leaf2# show system internal policy-mgr stats | grep 268697

Rule (4098) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-any-f-implicit)

Ingress: 0, Egress: 80257

Rule (4099) DN (sys/actrl/scope-2686976/rule-2686976-s-any-d-49153-f-implicit)

Ingress: 0, Egress: 0

Rule (4117) DN (sys/actrl/scope-2686976/rule-2686976-s-32771-d-49155-f-6)

Ingress: 0, Egress: 0

Rule (4118) DN (sys/actrl/scope-2686976/rule-2686976-s-49155-d-32771-f-7)

Ingress: 2511, Egress: 0

تلميح: يعتبر معرفة النطاق ومعرف القاعدة والوجهة وعلامات تمييز المصدر وعامل التصفية أمرا مهما لمحاولات أستكشاف هذه المشكلة وإصلاحها بشكل أكبر. من المفيد أيضا أن تكون لديك معرفة بوحدات EPG التي يوجد بينها معرف القاعدة.

يمكنك إجراء بحث على MO باستخدام اسم DN fvAEPg و GREP لعلامة pcTag معينة من خلال الأمر moquery، كما هو موضح هنا:

admin@RTP_Apic1:~> moquery -c fvAEPg | grep 49155 -B 5

dn : uni/tn-Prod/ap-commerceworkspace/epg-Web

lcOwn : local

matchT : AtleastOne

modTs : 2014-10-16T01:27:35.355-04:00

monPolDn : uni/tn-common/monepg-default

pcTag : 49155

يمكنك أيضا إستخدام خيار المرشح باستخدام الأمر moquery، كما هو موضح هنا:

admin@RTP_Apic1:~> moquery -c fvAEPg -f 'fv.AEPg.pcTag=="49155"'

Total Objects shown: 1

# fv.AEPg

name : Web

childAction :

configIssues :

configSt : applied

descr :

dn : uni/tn-Prod/ap-commerceworkspace/epg-Web

lcOwn : local

matchT : AtleastOne

modTs : 2014-10-16T01:27:35.355-04:00

monPolDn : uni/tn-common/monepg-default

pcTag : 49155

prio : unspecified

rn : epg-Web

scope : 2523136

status :

triggerSt : triggerable

uid : 15374

التحقق من برمجة الأجهزة

يمكنك الآن التحقق من إدخال الجهاز للقاعدة. لعرض معلومات الأجهزة، أدخل أمر show platform internal ns table mth_lux_slvz_dhs_securityGroupStatTable_memif_data ingress (هذا أمر vsh_lc):

في هذا المثال، يتزايد إدخال الجهاز 41 (الإدخال [000041]).

ملاحظة: يتم إستخدام الأمر السابق الظاهر ل Northstar ASIC. الأمر الذي يستخدم ل Donner أو Donner+ هو show platform internal ns table mth_luxh_slvy_DHS_securityGroupStatTable_memif_data.

ملاحظة: إن إستخدام هذا الأمر غير عملي في بيئة الإنتاج، ولكن يمكنك إستخدام الأوامر الأخرى التي يتم وصفها في هذا القسم بدلا من ذلك.

تذكر القاعدة (4132) والنطاق (268976).

أدخل هذا الأمر لتحديد معرف القاعدة إلى تخطيط إدخال فهرس الأجهزة الخاص بالذاكرة الثلاثية للمحتوى - العنوان (TCAM)، والتصفية استنادا إلى معرف القاعدة و/أو معرف المرشح:

module-1# show system internal aclqos zoning-rules

[snip]

===========================================

Rule ID: 4131 Scope 4 Src EPG: 49155 Dst EPG: 32771 Filter 7

Curr TCAM resource:

=============================

unit_id: 0

=== Region priority: 771 (rule prio: 3 entry: 3)===

sw_index = 62 | hw_index = 40

=== Region priority: 772 (rule prio: 3 entry: 4)===

sw_index = 63 | hw_index = 45

===========================================

Rule ID: 4132 Scope 4 Src EPG: 32771 Dst EPG: 49155 Filter 6

Curr TCAM resource:

=============================

unit_id: 0

=== Region priority: 771 (rule prio: 3 entry: 3)===

sw_index = 66 | hw_index = 41

=== Region priority: 771 (rule prio: 3 entry: 3)===

sw_index = 67 | hw_index = 42

[snip]

على سبيل المثال، تركيبة EPG المصدر والوجهة هي 32771=0x8003، 49155=0xC003. لذلك، يمكنك إعتبار جميع إدخالات TCAM لفئات المصدر والوجهة هذه التي تطابق معرفات القواعد (4131 و 4132) ومعرفات المرشح (6 و 7).

في هذا المثال، يتم التخلص من بعض إدخالات TCAM هذه. لمرجع، هنا تكوين العقد الذي يسمح بأدوات إختبار الاتصال وحركة مرور الويب لأدوات EPG هذه:

module-1# show platform internal ns table mth_lux_slvz_DHS_SecurityGroupKeyTable0

_memif_data 41

=======================================================================

TABLE INSTANCE : 0

=======================================================================

ENTRY[000041] =

sg_label=0x4

sclass=0x8003

dclass=0xc003

prot=0x1  (IP Protocol 0x01 = ICMP)

ملاحظة: يتم إستخدام الأمر السابق الموضح ل Northstar ASIC. الأمر الذي يتم إستخدامه ل Donner أو Donner+ هو show platform internal ns table mth_luxh_slvq_DHS_SecurityGroupKeyTable0_memif_data.

sup_tx_mask=0x1

src_policy_incomplete_mask=0x1

dst_policy_incomplete_mask=0x1

class_eq_mask=0x1

aclass_mask=0x1ff

port_dir_mask=0x1

dport_mask=0xffff

sport_mask=0xffff

tcpflags_mask=0xff

ip_opt_mask=0x1

ipv6_route_mask=0x1

ip_fragment_mask=0x1

ip_frag_offset0_mask=0x1

ip_frag_offset1_mask=0x1

ip_mf_mask=0x1

l4_partial_mask=0x1

dst_local_mask=0x1

routeable_mask=0x1

spare_mask=0x7ff

v4addr_key_mask=0x1

v6addr_key_mask=0x1

valid=0x1

module-1# show platform internal ns table mth_lux_slvz_DHS_SecurityGroupKeyTable0

_memif_data 42

=======================================================================

TABLE INSTANCE : 0

=======================================================================

ENTRY[000042] =

sg_label=0x4

sclass=0x8003

dclass=0xc003

prot=0x6 <--

dport=0x50 <--

sup_tx_mask=0x1

src_policy_incomplete_mask=0x1

dst_policy_incomplete_mask=0x1

class_eq_mask=0x1

aclass_mask=0x1ff

port_dir_mask=0x1

sport_mask=0xffff

tcpflags_mask=0xff

ip_opt_mask=0x1

ipv6_route_mask=0x1

ip_fragment_mask=0x1

ip_frag_offset0_mask=0x1

ip_frag_offset1_mask=0x1

ip_mf_mask=0x1

l4_partial_mask=0x1

dst_local_mask=0x1

تلميح: يمكنك التحقق من كل إدخالات TCAM باستخدام نفس الطريقة.

أستكشاف مشكلات برمجة الأجهزة وإصلاحها

يوفر هذا القسم بعض الأوامر والتلميحات المفيدة لاستكشاف الأخطاء وإصلاحها.

أوامر أستكشاف الأخطاء وإصلاحها المفيدة

فيما يلي بعض الأوامر المفيدة التي يمكنك إستخدامها لتحديد موقع أخطاء "إدارة السياسات الطرفية" عند مواجهة المشاكل:

fab1_leaf1# show system internal policy-mgr event-history errors

1) Event:E_DEBUG, length:84, at 6132 usecs after Mon Sep 8 13:15:56 2014

[103] policy_mgr_handle_ctx_mrules(779): ERROR: Failed to process prio(1537):

(null)

2) Event:E_DEBUG, length:141, at 6105 usecs after Mon Sep 8 13:15:56 2014

[103] policy_mgr_process_mrule_prio_aces(646): ERROR: Failed to insert iptables

rule for rule(4120) , fentry(5_0) with priority(1537): (null)

[snip]

fab1_leaf1# show system internal policy-mgr event-histor trace

[1409945922.23737] policy_mgr_ppf_hdl_close_state:562: Got close state callback

[1409945922.23696] policy_mgr_ppf_rdy_ntf_fun:239: StatStoreEnd returned: 0x0(SU

CCESS)

[1409945922.23502] policy_mgr_ppf_rdy_ntf_fun:208: ppf ready notification: sess_

id: (0xFF0104B400005B51)

[1409945922.23475] policy_mgr_ppf_rdy_ntf_fun:205: Got ready notification callba

ck with statustype (4)

[1409945921.983476] policy_mgr_gwrap_handler:992: Dropped...now purging it...

[1409945921.982882] policy_mgr_ppf_goto_state_fun:481: Sess id (0xFF0104B400005B

[snip]

module-1# show system internal aclqos event-history trace

T [Fri Sep 5 13:18:24.863283] ============= Session End ============

T [Fri Sep 5 13:18:24.862924] Commit phase: Time taken 0.62 ms, usr 0.00 ms,

sys 0.00 ms

T [Fri Sep 5 13:18:24.862302] ppf session [0xff0104b410000087] commit ... npi

nst 1

T [Fri Sep 5 13:18:24.861421] Verify phase: Time taken 0.77 ms, usr 0.00 ms,

sys 0.00 ms

T [Fri Sep 5 13:18:24.860615] ============= Session Begin ============

T [Fri Sep 5 13:18:24.830472] ============= Session End ============

T [Fri Sep 5 13:18:24.830062] Commit phase: Time taken 0.98 ms, usr 0.00 ms,

sys 0.00 ms

T [Fri Sep 5 13:18:24.829085] ppf session [0xff0104b410000086] commit ... npi

nst 1

T [Fri Sep 5 13:18:24.827685] Verify phase: Time taken 2.04 ms, usr 0.00 ms,

sys 0.00 ms

T [Fri Sep 5 13:18:24.825388] ============= Session Begin ============

T [Fri Sep 5 12:32:51.364225] ============= Session End ============

T [Fri Sep 5 12:32:51.363748] Commit phase: Time taken 0.64 ms, usr 0.00 ms,

[snip]

تلميح: بعض الملفات كبيرة، لذلك من الأسهل إرسالها إلى ذاكرة التمهيد المؤقتة (bootflash)، وفحصها في محرر.

module-1# show system internal aclqos ?

asic            Asic information

brcm            Broadcam information

database        Database

event-history   Show various event logs of ACLQOS

mem-stats       Show memory allocation statistics of ACLQOS

prefix          External EPG prefixes

qos             QoS related information

range-resource  Zoning rules L4 destination port range resources

regions         Security TCAM priority regions

span            SPAN related information

zoning-rules    Show zoning rules

module-1# show system internal aclqos event-history ?

errors        Show error logs of ACLQOS

msgs          Show various message logs of ACLQOS

ppf           Show ppf logs of ACLQOS

ppf-parse     Show ppf-parse logs of ACLQOS

prefix        Show prefix logs of ACLQOS

qos           Show qos logs of ACLQOS

qos-detail    Show detailed qos logs of ACLQOS

span          Show span logs of ACLQOS

span-detail   Show detailed span logs of ACLQOS

trace         Show trace logs of ACLQOS

trace-detail  Show detailed trace logs of ACLQOS

zoning-rules  Show detailed logs of ACLQOS

تلميحات استكشاف المشكلات وإصلاحها

فيما يلي بعض تلميحات أستكشاف المشكلات وإصلاحها:

- إذا واجهتك مشكلة في إستهلاك TCAM، فتحقق من أخطاء واجهة المستخدم أو واجهة سطر الأوامر (CLI) الخاصة بالعيوب المقترنة بالقاعدة المعنية. يمكن الإبلاغ عن هذا الخطأ:

Fault F1203 - Rule failed due to hardware programming error.
يمكن لقاعدة واحدة إدخال أكثر من TCAM في الدائرة المدمجة الخاصة بالتطبيق (ASIC). دخلت in order to شاهدت الرقم مدخل على ال ASIC، هذا أمر:

fab1-leaf1# vsh_lc

module-1# show platform internal ns table-health

VLAN STATE curr usage: 0 - size: 4096

QQ curr usage: 0 - size: 16384

SEG STATE curr usage: 0 - size: 4096

SRC TEP curr usage: 0 - size: 4096

POLICY KEY curr usage: 0 - size: 1

SRC VP curr usage: 0 - size: 4096

SEC GRP curr usage: 43 - size: 4096

ملاحظة: في هذا المثال، يوجد 43 إدخالا. ويتم أيضا الإبلاغ عن هذا الاستخدام إلى APIC في فئة eQptCapacity.

- عندما تكون هناك تطابقات متعددة، يرجع البحث عن TCAM فهرس الأجهزة الأدنى. دخلت in order to دققت الفهرس، هذا أمر:

show system internal aclqos zoning-rule
عند أستكشاف الأخطاء وإصلاحها، يمكنك ملاحظة الإسقاط الناجم عن قاعدة أي شيء ضمني. تكون هذه القاعدة دائما في الأسفل، مما يعني أن الحزمة سقطت لأن القاعدة غير موجودة. إما أن هذا يرجع إلى تكوين غير صحيح، أو أن "إدارة عناصر النهج" لا تقوم ببرمجته كما هو متوقع.

- يمكن أن يكون ل PCtags نطاق محلي أو عالمي:

- PcTag المحجوز للنظام - يتم إستخدام هذه العلامة الشخصية للقواعد الداخلية للنظام (1-15).

- PCtag ذو النطاق العالمي - يتم إستخدام هذه العلامة الشخصية للخدمة المشتركة (16-16385).

- pcTag ذو النطاق المحلي - يتم إستخدام هذه العلامة على الكمبيوتر محليا لكل VRF (تتراوح من 16386 إلى 65535).

عند أستكشاف الأخطاء وإصلاحها، تشير نظرة سريعة إلى طول القيمة إلى نطاقها.

اشتقاق اسم العقد من معرف القاعدة

عادة، عندما يكون المهندس في حالة أستكشاف المشكلات وحلها، فإنه ينظر في قواعد تقسيم المناطق. في بعض الحالات، يكون ل EPG/PCtag العديد من العقود وقد يكون من الصعب أستكشاف الأخطاء وإصلاحها. يوضح هذا القسم طريقة لتحديد اسم العقد المستخدم بين EPGs/PCtags من معرف القاعدة الذي تم رؤيته على واجهة سطر الأوامر (CLI) للمحول.

للبدء:

1. استعلام عن قاعدة التحكم في كائن العقد/القاعدة المحددة إذا كان ذلك مطلوبا، قم بتضييق نطاق البحث حسب الخاصية: قيمة المعرف: قاعدة-د

2. بمجرد العثور على القاعدة الصحيحة، انقر فوق السهم الأخضر في DN لعرض العناصر التابعة لكائنات ActrlRule. الأطفال هم حيث تكمن إجابتنا.

الكائن التابع هنا هو actrlRsToEpgConn. عادة ما يكون هناك إثنان، واحد لكل EPG. تعرض DN الخاصة بهذا الكائن وحدتي EPG اللتين يتم تطبيق العقد بينهما بالإضافة إلى الإتجاه (الموفر أو المستهلك) والأهم من ذلك، اسم كائن العقد.

كما هو موضح، فإن اسم العقد في هذه الحالة هو brc-dpita-ssh.

إذا لزم الأمر، فابحث عن vzBrCP للعثور على العقد الصحيح.