المحتويات

المقدمة

المتطلبات الأساسية

المتطلبات

المكونات المستخدمة

مشاكل ذاكرة الكبح

وصف آخر للمشكلة

الحل

XML في Cisco IOS XR

إستخدام واجهة برمجة تطبيقات XML

العمليات المدعومة من قبل واجهة برمجة تطبيقات XML

خدمات مخطط XML المعروضة

إنشاء استعلام

إختبار استعلامات XML

الغطس العميق XML في Cisco IOS XR

تفاعل واجهة برمجة التطبيقات مع العميل

أخطاء XML في Cisco IOS XR

عندما يكون الاستعلام خاطئا

أنواع الأخطاء

المزيد من التوصيات

المقدمة

يصف هذا المستند مشاكل خنق ذاكرة XML التي تمت رؤيتها في طلبات الخدمة وأدوات Cisco.

المتطلبات الأساسية

المتطلبات

توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:

- النظام الأساسي Cisco IOS® XR

- البنية الأساسية ل XML (لغة الترميز القابلة للتوسيع)

- بنية وسيط طلب الكائن الشائع (Corba)

- نظام إدارة العناصر (EMS)

- مدير البيانات الخارجي (EDM)

المكونات المستخدمة

تستند المعلومات الواردة في هذا المستند إلى ASR9000.

تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.

مشاكل ذاكرة الكبح

فتحت قضية مع هذه الاسئلة:

1. ما الحد الأقصى للذاكرة القابل للتكوين على الموجه؟

2. هل هناك طريقة لكسر ردود XML الكبيرة؟

الإجابة:

1. الحد الأقصى لتغيير الذاكرة بناء على الإصدار الذي يتم تشغيله بواسطة RSP/العقدة (إصدارات ل cXR و eXR)

في إصدار 64 بت (eXR). لديك حجم ذاكرة خانق واحد:

RP/0/RSP1/CPU0:XR#show version

Wed Jul 26 21:10:16.761 IST

Cisco IOS XR Software, Version 7.1.3

Copyright (c) 2013-2020 by Cisco Systems, Inc.

Build Information:

Built By     : gopalk2

Built On     : Thu Nov 26 10:51:48 PST 2020

Built Host   : iox-ucs-027

Workspace    : /auto/srcarchive17/prod/7.1.3/asr9k-x64/ws

Version      : 7.1.3

Location     : /opt/cisco/XR/packages/

Label        : 7.1.3

cisco ASR9K () processor

System uptime is 2 weeks 17 hours 22 minutes

RP/0/RSP1/CPU0:XR# configuration

RP/0/RSP1/CPU0:XR(config)#xml agent throttle ?

memory        Memory usage

process-rate  Process rate

RP/0/RSP1/CPU0:XR(config)#xml agent throttle memory ?

<100-1024>  Size of the memory usage in Mbytes per session (default 300 Mbytes)

في الإصدار 32 بت (cXR). لديك حد آخر:

RP/0/RSP0/CPU0:XR#show version

Cisco IOS XR Software, Version 6.4.2[Default]

Copyright (c) 2020 by Cisco Systems, Inc.

ROM: System Bootstrap, Version 10.59(c) 1994-2014 by Cisco Systems,  Inc.

Configuration register on node 0/RSP0/CPU0 is 0x102

Boot device on node 0/RSP0/CPU0 is disk0:

RP/0/RSP0/CPU0:XR# configuration

RP/0/RSP0/CPU0:XR(config)#xml agent throttle memory ?

<100-600>  Size of the memory usage in Mbytes per session (default 300 Mbytes)

ملاحظة: الافتراضي في أي من الإصدارين هو 300 ميغابايت

2. هناك طرق مختلفة لكسر رد XML:

- المكرر:

عند تكوين المكرر، قم بتقسيم إستجابة XML الإجمالية في حجم إطارات محدد. النافذة لها حجم التكرار. على سبيل المثال، إذا كانت الاستجابة 1 غيغابايت، وكان حجم التكرار 500 ميغابايت، فإنك تقوم بتقسيم XML إلى ردين.

تغير هذه الطريقة الاستجابة بإضافة عمليات GetNext (على أساس حجم التكرار) (ما تحتاج الاستجابة إليه).

يمكن أن يكون هناك ما يصل إلى 10 مكرر لجلسة عمل.

- تقييد (معدل العملية):

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

- الدفق:

كما هو الحال مع المكرر، يقسم التدفق إستجابة XML إلى إطارات معينة. الفرق هو الاستجابة، ويزيل العملية GetNext ومعرف التكرار. يرسل XML الحزم المتدفقة ويبني العميل الاستجابة عند انتهاء الدفق.

وصف آخر للمشكلة

بالنسبة للحالات التي يلزم فيها إستخدام الأتمتة، أستخدم الأداة pyIOSXR. أداة الأتمتة هذه هي وكيل XML، وتساعد على إصدار بعض أوامر العرض، وبشكل عام، على الاتصال بالجهاز.

في كل مرة تقوم فيها بإرسال طلب كبير مع هذا الوكيل، يتم عرض خطأ:

ملاحظة: يمكن فقط لمستخدمي Cisco المسجلين الوصول إلى أدوات Cisco ومعلومات داخلية.

RESPONSE ERROR: 0xa367a600 'XML Service Library' detected the 'fatal' condition 'The throttle on the memory usage has been reached. Please optimize the request to query smaller data.'

مع عرض رسالة الخطأ "تحسين الطلب لاستعلام بيانات أصغر"، يمكنك تكوين واجهة برمجة تطبيقات XML للوكيل باستخدام المكرر. وهذا، من الناحية النظرية، يسمح بتجزئة الاستجابة.

عندما تم تكوين المكرر، يتم عرض رسالة الخطأ نفسها: "خطأ الاستجابة... الرجاء تحسين الطلب للاستعلام عن البيانات الأصغر".

عند عرض خطأ، تتمثل الخطوة التالية في فهم سبب عدم عمل الميزة، في هذه الحالة Iterators، للاستعلام.

يوصي pyIOSXR بتمكين عميل XML بشكل صحيح في الجهاز، مما يعني أن API لا يسمح باستخدام التكرارات.

الخطوة التالية هي إختبار الخيار الثاني: الدفق.

ملاحظة: لا يسمح لنا PyOSXR بالعمل باستخدام رؤوس مختلفة غير استعلام XML الأساسي تحتوي على العناصر التالية:

.

.

.

يضيف التدفق والمكرر رأس في الاستعلامات. يضيف الدفق معرف الدفق الذي يساعد النظام على بناء الاستجابة الكاملة. يقوم المؤتمرون بإضافة GET_NEXT ومعرف التكرار.

أظهرت تجربة الدفق أيضا نفس رسالة الخطأ كالمكرر.

الحل

في القسم، يعد إجراء المزيد من "التوصيات" للاستعلامات على الجهاز، أدوات أكثر لفرز هذه المشكلات. أحرف البدل هي واحدة منها. Wildcard هو حل حد خنق الذاكرة.

تبني أحرف البدل استعلاما محددا لتجنب طلب معلومات غير ضرورية. على سبيل المثال، لمعلومات BGP، أستخدم الأمر show route bgp بدلا من الأمر show route العام. ينطبق هذا المثال على استعلامات XML ومنطقها. قد يؤدي طلب معلومات كبيرة للنظام إلى توليد مشاكل في الذاكرة والمعالجة.

عند فتح الحالة، تم إستخدام هذا الاستعلام:

DEFAULT

VRF_NAME

NAME

>

يستهدف هذا الاستعلام جداول BGP الكاملة. بالنسبة لهذا الطلب غير المحدد، كانت الاستجابة 2.2 غيغابايت تقريبا، لذلك، يتم الوصول إلى حد خانق الذاكرة.

لإصلاحه، يلزم استعلام محدد، وهذا يسمح للنظام بمعالجة الاستعلام وإرجاع المعلومات.

XML في Cisco IOS XR

ملاحظة: في حالة الحاجة إلى مزيد من المعلومات أو المواصفات أو الأوامر الأخرى، يرجى النقر فوق دليل برمجة XML للرابط التالي: دليل برمجة XR XML

يحدد XML كيفية عرض البيانات وهيكلتها. وهي طريقة لتحليل ما يفهمه الكمبيوتر باعتباره وحدات بت، كما تعرض معلومات منظمة وموحدة.

يحتوي XML على هذه البنية:

This is an example

كل العلامات لها جزئين، علامة الفتح (<init>) وعلامة الإقفال (</init>). إذا لم يتم إستخدام هذا الهيكل، فإن XML لا يستطيع فهم أين تنتهي علامة تمييز.

تم إنشاء XML من وحدتين:

- الحاويات

- ورق

مقارنة لهذه البيانات المنظمة هي مقارنة بيانات XML كشجرة. والحاوية هي فرع، وكل فرع قد جمع اوراق. لا تحتوي المنشورات على أي معلومات أخرى.

على سبيل المثال، ان جذر الشجرة التالية هو رمادي، أوعية بالأبيض، وورق بالأزرق.

إستخدام واجهة برمجة تطبيقات XML

لاختبار/إستخدام XML API أول شيء تحتاجه هو استعلام.

1. يحتوي الاستعلام على رأس:

ملاحظة: هذه هي العلامة الوحيدة التي لا تحتاج إلى علامة إغلاق.

2. يجب إضافة علامة للطلب. في الطلب، يجب تحديد الإصدار.

3. باستخدام الرأس، الطلب، والإصدار، يستمر النص الأساسي مع أي عملية XML تمتلكها واجهة برمجة التطبيقات (API):

…

ملاحظة: إخطار بأن الطلبات تتضمن عمليات مختلفة في كل استعلام. ليس من الضروري إجراء طلب لكل عملية.

يعرض المثال التالي طلبا يحتوي على كافة المعلومات المطلوبة:

…

العمليات المدعومة من قبل واجهة برمجة تطبيقات XML

يدعم Cisco IOS XR 5 عمليات تسمح للمستخدمين بالتفاعل مع المعلومات التي يتضمنها مخطط XML:

1. عمليات البيانات الأصلية:

- <get></get>: لتجميع عناصر بيانات الإجراء (البيانات التي تمتلكها الورقة).

- <set></set>: لتكوين عناصر البيانات أو تغييرها أو إضافتها.

- <delete></delete>: حذف عنصر بيانات واحد أو أكثر.

- <GetVersionInfo></GetVersionInfo>: العملية التي تسترجع أرقام الإصدارات الرئيسية والثانوية للمكونات المطلوبة.

- <GetDataSpaceInfo></GetDataSpaceInfo>: تعرض علامات التشغيل هذه أسماء الأوراق المترجمة إلى الحاويات.

2. عمليات واجهة سطر الأوامر:

- <cli><CLI/>: علامة تتيح لنا إصدار طلب تكوين كأمر CLI.

- <GetNext><GetNext/>:إذا كانت البيانات أكبر من حجم الكتلة، تتم إضافة هذه العلامة إلى الرد التالي المقسم.

خدمات مخطط XML المعروضة

يقوم XML API بتنفيذ مساحات الأسماء التالية:

ملاحظة: في حالة الحاجة إلى رؤية الكائنات الجذرية، تفضل بزيارة: إدارة شبكة Cisco IOS-XR XML.

تحذير: تنصح بأن كل مساحة اسم تشرف على البيانات والعمليات المختلفة.

- التكوين: العملية التي تسمح بإجراءات الحصول على البيانات وتعيينها وحذفها.

- أثناء التشغيل: مثل أوامر show ل CLI.

- الإجراء: دعم الإجراء SET. باستخدام هذه العملية يمكنك الوصول إلى بيانات الإجراء، مثل أوامر المسح والأوامر المماثلة الأخرى.

- AdminOperational: الوصول إلى البيانات التشغيلية للمسؤول.

- AdminAction: الوصول إلى بيانات إجراء الإدارة.

- AdminConfiguration: الوصول إلى بيانات تكوين الإدارة.

إنشاء استعلام

هناك مساران مختلفان للسفر. بمجرد تحديد مساحات الأسماء للاستعلام الذي تحتاج إلى إستخدام مخطط للعمل معه:

1. وثائق مخطط XML

توفر هذه الخيارات شجرة XML كاملة تظهر الحاويات والمنشورات. للحصول على الوثائق انقر فوق مخططات CRS XML.

تظهر صفحة الوثائق.

تعرض هذه الصفحة الكائنات والحاويات والتوابع. يحتوي كل كائن على كائن تابع. إذا كان الكائن التابع لا يحتوي على أي حاوية أخرى، فإنه يعتبر ورقة.

يمكنك النقر فوق العنصر التابع، ويتم عرض المعلومات لإنشاء استعلام. على سبيل المثال لبروتوكول IPv4:

في الصورة السابقة، لأي استعلام IPv4، يمكن تشغيل عملية التكوين، باستهداف IP للحاوية، في تخطيط الحاوية، في الحاوية Services، ثم، أخيرا، في الورقة IPv4.

ملاحظة: أي عملية يجب أن تكون ورقة طرفية لتنفيذ الاستعلام.

سيكون الاستعلام التالي:

2. واجهة برمجة تطبيقات XML

يتم تضمين واجهة برمجة تطبيقات XML في Cisco IOS XRl. لرؤية شجرة XML أستخدم الأمر show xml schema. وبإصدار الأمر، يتم ملاحظة مخطط XML بالكامل في واجهة سطر الأوامر (CLI) مماثلة لنظام التشغيل Linux.

في واجهة سطر الأوامر هذه، هناك الإجراءات التالية:

؟: تماما مثل — المساعدة

ل.س: سرد الحاويات/المنشورات الموجودة في مستخدم الفرع هي.

<operation>: عن طريق الإصدار ؟ أنت يستطيع فحصت ل عملية وأمر يستطيع كنت أصدرت:

بعض العمليات هي:

-التكوين

- adminConfig

- قرص مضغوط

- القائمة

- أوبر

-الإجراء

القرص المضغوط: تغيير الدليل/الحاوية.

يوضح المثال التالي:

RP/0/RP0/CPU0:XR#show xml schema

Username:admin

Password:

xml-schema[config]:> ?

config                   oper                     action

adminconfig              adminoper                adminaction

cd                       pwd                      classinfo

list                     ls                       datalist

walk                     walkdata                 get

hierarchy                quit                     exit

help

xml-schema[config]:> ls

[container]                   RIP

[container]                   TCL

[container]                   LawfulIntercept

[container]                   ErrorDisable

[container]                   PerfMgmt

[container]                   RCC

[container]                   FrequencySynchronization

[container]                   HwModuleProfileConfig

[container]                   MPLSStatic

[container]                   XML

[container]                   Tpa

[container]                   MLD

[leaf]                        RPIsolationEnabled

[leaf]                        RPIsolationMultiple

[container]                   AMT

[container]                   PriorityFlowControlWatchdog

[container]                   SSH

[container]                   BNG_PBR

تحذير: لاحظ أن بيانات الاعتماد مطلوبة لتسجيل الدخول إلى الجهاز. تكون بيانات الاعتماد هذه محلية بالنسبة للجهاز وتتطلب توصيفات جذر/مسؤول.

يوضح المثال التالي كيفية إنشاء استعلام باستخدام واجهة برمجة تطبيقات XML. على سبيل المثال، يجب أن يتحقق الاستعلام مما إذا كان عامل XML ممكنا:

xml-schema[config]:> ls

[container]                   RIP

[container]                   TCL

[container]                   LawfulIntercept

[container]                   ErrorDisable

[container]                   PerfMgmt

[container]                   RCC

[container]                   FrequencySynchronization

[container]                   HwModuleProfileConfig

[container]                   MPLSStatic

[container]                   XML   >>> Here

[container]                   Tpa

[container]                   MLD

[leaf]                        RPIsolationEnabled

[leaf]                        RPIsolationMultiple

[container]                   AMT

[container]                   PriorityFlowControlWatchdog

[container]                   SSH

[container]                   BNG_PBR

[container]                   L2TP

[container]                   Exception

[container]                   IP_RAW

[container]                   MSTAG

[container]                   FpdXRConfig

xml-schema[config]:> cd XML

xml-schema[config]:XML> ls

[container]                   Agent

xml-schema[config]:XML> cd Agent

xml-schema[config]:XML.Agent> ls

[container]                   Default

[container]                   SSL

[container]                   TTY

xml-schema[config]:XML.Agent> cd TTY

xml-schema[config]:XML.Agent.TTY> ls

[leaf]                        Enable   >>> Leaf of interest.

[leaf]                        IterationSize

[leaf]                        StreamingSize

[container]                   Throttle

[container]                   Session

لاحظ المطالبة التالية:

xml-schema[config]:XML.Agent.TTY>

تعرض المطالبة السابقة شجرة XML. بهذه المعلومات يكون الاستعلام:

إختبار استعلامات XML

بمجرد بناء الاستعلام، فإن الخطوة التالية هي إختباره. لاختباره، يمكنك إصدار الأمر xml echo في CLI. يمكن أرشفة هذا الإجراء في نفس الجهاز.

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

RP/0/RP0/CPU0:XR#xml echo format

XML>

XML>

>>> Hit enter here. Immediately getting the reply.

! Reply:

true  >>> This is the requested value.

XML> exit

يعرض الموجه الاستجابة و ResultSummary.

ملاحظة: لا تظهر إستجابة XML هذه ولا تتطلب تكوين أي ذاكرة خانقة. يتم طلب الاستجابة، لأنها لا تستخدم أي بروتوكول SSH/TTY، بغض النظر عن الحجم. أحد الأشياء هي عميل XML وأمر صدى XML المدمج الآخر، يمكن أن يتغير السلوك.

الغطس العميق XML في Cisco IOS XR

Cisco IOS XR هو نظام قابل لإضافة وحدات أخرى يتطلب حزم مختلفة للعمل. يعتبر XML في أنظمة مستوى الإدارة الفرعية.

عند بدء تشغيل XR، كانت هناك طريقتان مختلفتان لاستخدام XML في الجهاز:

1. عامل Corba (باستخدام SSL).

2. وكيل SSH.

ملاحظة: تم إهمال كوربا بعد الإصدار 3.7.

CORBA كبروتوكول قديم يستخدم SSL والذي يتم العثور عليه في حزم الأمان. من ناحية أخرى، تحتاج طريقة SSH إلى حزمة الإدارة لكي يتم إستخدامها.

وتوزع الرسالة تحت الحمراء بهذه الطريقة:

من الصورة السابقة، تظهر العملية الرئيسية ل XML في الموجه ومعالج المحول (RSP). تحتوي هذه العمليات على واجهة برمجة تطبيقات شائعة تقوم بالإشراف على جميع المعلومات من العمليات الأخرى في الجهاز، وهي:

- من موقع ذا لينكارد:

- مجمع STATS

- خادم STATS

- من معالج الموجهات:

- برنامج Stats Manager.

- SysDB.

- TCP (ل XML API يتم إستخدام TCP 38751)

- NetIO

ملاحظة: للاطلاع على مزيد من المعلومات حول هذا الأمر، تحقق من أخطاء XML في قسم Cisco IOS XR.

وفقا للطلب، يتم تشغيل عملية واحدة أو أكثر. عند تطوير أدوات التشغيل التلقائي، إذا كانت الاستجابة أكبر من حجم الكتلة، فلن تنجح الاستجابة. إذا استغرقت عملية ما وقتا طويلا للرد، فيمكن لها إنشاء سجلات EDM أو إيقاف التشغيل أو التأثير على الخدمات.

تفاعل واجهة برمجة التطبيقات مع العميل

تظهر الصورة التالية التفاعل:

لتكوين/تمكين وكيل XML على الجهاز، أستخدم:

RP/0/RP0/CPU0:XR#config

RP/0/RP0/CPU0:XR(config)#xml agent tty

RP/0/RP0/CPU0:XR(config-xml-tty)#commit

يجب أن يتفق النظام مع العميل في هذه المجالات:

1. الإصدارات

2. مخطط

يمكن تعريف الإصدارات في مجالين:

- رقم الطلب:

- علامة المكونات الرئيسية:

التي تنطبق على المكون المحدد:

ملاحظة: تذكر أنه يمكنك التحقق من إصدار المخطط باستخدام عملية GetVersionInfo المطبقة على الحاوية.

- تحديث الإصدار الثانوي: أي إضافة لمخطط XML، مثل إضافة عنصر بيانات جديد.

- تحديث الإصدار الرئيسي: التغييرات الدلالية، والحذف إلى المخطط أو المكون، وما إلى ذلك.

يمكنك التحقق من الإصدار. المثال التالي يوضح كيفية القيام بذلك:

ملاحظة: عمليات XML هي GET، SET، وهكذا.

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

RP/0/RSP0/CPU0:XR#xml echo format

Mon Jul 31 13:53:50.993 UTC

XML>

>>> This is the request

XML>

ملاحظة: يعرض الطلب كافة الإصدارات قيد التشغيل في المكون الرئيسي كما يعرض الإصدار في الحاويات بداخله.

أخطاء XML في Cisco IOS XR

إذا كان المسار صحيحا، يعرض كل طلب XML API المعلومات المطلوبة.

عندما يكون الاستعلام خاطئا

يعرض الموجه ثلاث رسائل مختلفة:

- ItemNotFound

يتم عرض هذه الرسالة في كل مرة تحتوي فيها عملية GET على إستجابة فارغة.

- ItemNotFoundBelow

لا تحتوي عملية GET على هذه العملية في مخطط XML.

- لم يتم العثور

لا يمكن العثور على العنصر المطلوب على مستوى العنصر.

أنواع الأخطاء

1.النقل: تتضمن الأخطاء الموجودة في هذه الفئة أي شيء بين اتصال عميل/عميل XML. وهذا يعني أن أي تفاعل مع SSH أو أية مشكلات يمكن أن تحدث في النقل. لذلك، للتحقق من هذا النوع من المشاكل، من المقترح التحقق من آثار SSH للبحث عن أي مشكلة مع المصادقة والميناء وما إلى ذلك.

2. محلل XML: أي مشكلة تتعلق بالتنسيق والصياغة، أو مشاكل في الاستجابة المرسلة أو في الاستعلام. ترسل هذه المشاكل عادة سبب الفشل عند حدوث خطأ.

على سبيل المثال:

ERROR: 0xa367a600 'XML Service Library' detected the 'fatal' condition 'The throttle on the memory usage has been reached.

3. مخطط XML: أي مخطط مختلف عن مخطط الموجه. لمعالجة هذه المشاكل، تحقق من مخطط CLI وإصداره.

على سبيل المثال:

ErrorCode="0x43688400" ErrorMsg="'XMLMDA' detected the 'warning' condition 'An XML request contains an element which is unrecognised or incorrectly positioned&apos

4. معالجة العملية: عندما تقوم بتكوين الجهاز، يمكن أن تحدث هذه المشكلات. لحل هذه المشكلات، تحتاج إلى أستكشاف أخطاء العمليات وإصلاحها، على سبيل المثال، الالتزام و sysdb وما إلى ذلك.

ملاحظة: تتم إضافة معلومات الخطأ في مستوى عنصر العملية. يتم ترميز هذا في شكل سمات ErrorCode (32-بت int) و Errormsg.

المزيد من التوصيات

تقنيات مفيدة أخرى:

1. حرف البدل: وهذا يعرف أيضا باسم استعلامات محددة.

2. التجميع: الجمع بين عدة تقنيات أو عمليات في طلب واحد (عمليات أفضل جهد).

3. التصفية المخصصة: إذا كان المخطط يسمح بذلك، للمساعدة في تحديد الصفوف في الجداول.