يشرح هذا المستند كيفية إستخدام Cisco-Bulk-file-MIB ونقل الملفات التي تم إنشاؤها بواسطة قاعدة معلومات الإدارة (MIB) تلك باستخدام Cisco-FTP-CLIENT-MIB.
بدءا من برنامج Cisco IOS® الإصدار 12.0، طبقت Cisco طريقة لتخزين كائن أو جدول بروتوكول إدارة الشبكة البسيط (SNMP) كملف على الجهاز. يمكن بعد ذلك إسترداد هذا الملف باستخدام Cisco-FTP-CLIENT-MIB. تتيح لك هذه التقنية نقل كميات كبيرة من البيانات باستخدام طريقة نقل موثوقة.
قبل محاولة هذا التكوين، تأكد من استيفاء المتطلبات التالية:
لديك جهاز Cisco يشغل برنامج Cisco IOS® Software، الإصدار 12.0 أو إصدار أحدث. تحقق من أداة محدد موقع قاعدة معلومات الإدارة (MIB) للتأكد من أن Cisco-Bulk-File-MIB مدعومة لجهازك. يمكن العثور على إرتباط للأداة في صفحة أدوات قاعدة معلومات الإدارة (MIB) من Cisco IOS.
ملاحظة: قاعدة معلومات الإدارة هذه غير مدعومة على أجهزة Catalyst OS.
يجب تكوين SNMP على الجهاز باستخدام سلاسل المجتمع للقراءة فقط والقراءة والكتابة على السواء. هذا غير مشمول في هذا المستند. للحصول على معلومات حول تكوين بروتوكول SNMP على أجهزة IOS®، اقرأ كيفية تكوين سلاسل مجتمع SNMP على الموجهات ومحولات XL المستندة إلى برنامج Cisco IOS و RSMs و MSFCs ومحولات Catalyst.
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:
ال cisco-bulk-file-mib أن يخزن ال ifTable من مسحاج تخديد 7507 يركض 12.1(12) في مبرد، بعد ذلك استعملت ال cisco-FTP-client-MIB أن ينقل ذلك مبرد من المسحاج تخديد إلى FTP نادل.
مجموعة الأوامر net-snmp SNMP المثبتة على نظام التشغيل UNIX أو Windows.
يتم إستخدام قواعد معلومات الإدارة (MIB) هذه:
SNMPv2-TC
SNMPv2-SMI
SNMPv2-CONF
SNMPv2-MIB
IANAifType-MIB
IF-MIB
Cisco-SMI
Cisco-TC
Cisco-Bulk-file-MIB
Cisco-FTP-Client-MIB
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك مباشرة، فتأكد من فهمك للتأثير المحتمل لأي أمر.
للحصول على مزيد من المعلومات حول اصطلاحات المستندات، ارجع إلى اصطلاحات تلميحات Cisco التقنية.
تأكد من تحميل قواعد معلومات الإدارة (MIB) في هذا الجدول في نظام الإدارة الأساسي لديك. يتيح لك ذلك إستخدام أسماء الكائنات والقيم المذكورة أعلاه بدلا من معرفات الكائنات الرقمية (OIDs). بشكل عام، يشير هذا المستند إلى أسماء الكائنات وليس OIDs.
في هذا المثال، نقوم بالتقاط ifTable من موجه، وتخزينه في ملف مجمع. ومع ذلك، يمكنك إستخدام أي كائن أو جدول قاعدة معلومات الإدارة.
أستخدم إصدار net-snmp من مجموعة snmp. عنوان IP الخاص بالموجه هو 14.32.8.2. سلسلة مجتمع للقراءة والكتابة الخاصة به خاصة. سلسلة المجتمع للقراءة فقط هي عامة.
في كل مرة تقوم فيها بإنشاء عملية ملف مجمع جديد، أختر رقمين عشوائيا لمثيل الصف. يمكن أن تكون أي أرقام بين 1 و 4294967295 شاملة. لأغراض هذا المثال، أستخدم 333 و 444.
لإنشاء عملية ملف مجمع، أكمل الخطوات التالية:
قم بإعداد الملف المراد إنشاؤه.
$ snmpset -c private 14.32.8.2 cbfDefineFileEntryStatus.333 i 5 $ snmpset -c private 14.32.8.2 cbfDefineFileName.333 s ifTable.txt $ snmpset -c private 14.32.8.2 cbfDefineFileFormat.333 i bulkASCII
حدد كائن MIB المطلوب التقاطه.
يتطلب هذا الكائن فهرين للعملية الصحيحة. ال 333 هو ال 333 من الملف يخلق طاولة أعلاه. ال 444 هو رقم عشوائي جديد يستخدم للفهرس الأساسي في cbfDefineObjectTable.
يوضح هذا المثال إستخدام اسم كائن ل cbfDefineObjectID (ifTable). يمكنك أيضا إستخدام معرف فئة مورد (OID) مؤهل بالكامل هنا.
$ snmpset -c private 14.32.8.2 cbfDefineObjectID.333.444 o ifTable
قم بتنشيط الصفوف التي تم إنشاؤها حديثا.
يجب أن يكون لديك كلا الفهرسين لصف cbfDefineObjectTable الخاص بك.
$ snmpset -c private 14.32.8.2 cbfDefineObjectEntryStatus.333.444 i 1 $ snmpset -c private 14.32.8.2 cbfDefineFileEntryStatus.333 i 1
قم بإنشاء الملف.
$ snmpset -c private 14.32.8.2 cbfDefineFileNow.333 i 3
تم إنشاء الملف المجمع.
تحقق من إنشاء الملف بنجاح باستخدام snmpget على الكائن cbfStatusFileState.
يتطلب هذا الكائن فهرسين. الفهرس الأول هو الرقم العشوائي الذي تم إختياره لجدول الملف (333 في هذا المثال). يعتمد الفهرس الثاني على عدد الملفات التي قمت بإنشائها في الموجه الخاص بك. بما أن هذا هو ملفك الأول، فإن الفهرس هو 1. لذلك، أستخدم الأمر:
$ snmpget -c public 14.32.8.2 cbfStatusFileState.333.1
تعني قيمة التشغيل(1) أن الملف قيد الإنشاء. تعني قيمة ready(2) أن الملف قد تم إنشاؤه بنجاح، وهو ينتظر القراءة.
ومع ذلك، لا يمكن الوصول إلى هذا الملف مباشرة من الموجه. أستخدم Cisco-FTP-CLIENT-MIB لقراءة هذا الملف.
لكل عملية عميل FTP، يجب تحديد رقم عشوائي لمثيل الصف. يمكنك إستخدام نفس الأرقام العشوائية التي أستخدمتها أعلاه. يستخدم هذا المثال 555.
لنقل الملف باستخدام Cisco-FTP-Client-MIB، أكمل الخطوات التالية:
إنشاء مثيل صف لعميل FTP.
$ snmpset -c private 14.32.8.2 cfcRequestEntryStatus.555 i 5
قم بتعبئة المعلمات المطلوبة. يجب أن يكون LocalFile نفس اسم الملف الذي أنشأته أعلاه! أستخدم PUTascii لنقل ملفات BulkASCII.
إذا قمت بتعيين cbfDefineFileFormat إلى BulkBinary أعلاه، فيجب عليك تعيين cfcRequestOperation إلى PutBinary.
$ snmpset -c private 14.32.8.2 cfcRequestOperation.555 i putASCII $ snmpset -c private 14.32.8.2 cfcRequestLocalFile.555 s ifTable.txt $ snmpset -c private 14.32.8.2 cfcRequestRemoteFile.555 s /home/Marcus/ifTable.txt $ snmpset -c private 14.32.8.2 cfcRequestServer.555 s 172.18.123.33 $ snmpset -c private 14.32.8.2 cfcRequestUser.555 s Marcus $ snmpset -c private 14.32.8.2 cfcRequestPassword.555 s marcus123
ابدأ التحويل عن طريق تعيين الصف إلى نشط.
$ snmpset -c private 14.32.8.2 cfcRequestEntryStatus.555 i 1
يبدأ نقل FTP. عند الانتهاء، يتم حفظ الملف إلى /home/Marcus/ifTable.txt.
للحصول على حالة نقل FTP، أستخدم snmpget مرة أخرى على الكائن cfcRequestResult.
يستخدم هذا الكائن نفس الفهرس الذي أستخدمته مع كائنات FTP الأخرى.
$ snmpget -c public 14.32.8.2 cfcRequestResult.555
قيمة معلق(1) تعني أن الملف لا يزال قيد النقل. قيمة النجاح(2) تعني أن الملف قد تم نقله بنجاح. أي قيمة أخرى هي خطأ.
عند الانتهاء من نقل الملف، حاول إستخدام snmpget لكائن cbfStatusFileState مرة أخرى. والآن له قيمة مختلفة.
$ snmpget -c public 14.32.8.2 cbfStatusFileState.333.1 enterprises.cisco.ciscoMgmt.ciscoBulkFileMIB.ciscoBulkFileMIBObjects.cbfStatus. cbfStatusFileTable.cbfStatusFileEntry.cbfStatusFileState.333.1 = emptied(3)
تعني قيمة Empty(3) أنه تم قراءة الملف بنجاح. يتعذر نقل الملف مرة أخرى.
أصبح الآن من الآمن حذف هذا الملف عن طريق إتلاف صف حالة الملف. يأخذ هذا الكائن نفس الفهارس مثل cbfStatusFileState أعلاه.
$ snmpset -c private 14.32.8.2 cbfStatusFileEntryStatus.333.1 i 6
بمجرد حذف الملف، احذف الكائن وصفوف الملف المرادفة.
$ snmpset -c private 14.32.8.2 cbfDefineObjectEntryStatus.333.444 i 6 $ snmpset -c private 14.32.8.2 cbfDefineFileEntryStatus.333 i 6
بهذه الطريقة، يمكنك إستخدام Cisco-FTP-Client-MIB لنقل أي ملف خارج الموجه باستخدام FTP.
يرشدك هذا القسم خلال قراءة بعض من الصياغة لهذا الملف.
السطر الأول هو سطر البادئة. بالنسبة للمثال ifTable، فهو:
prefix 1.3.6.1.2.1.2.2.1
يتوافق ذلك مع معرف فئة المورد (OID) لكائن ifEntry. يتكون ifTable من ifEntries واحد أو أكثر.
يسرد السطر التالي عدد الكائنات الموجودة في الجدول. يتكون السطر من جدول الكلمات الأساسية متبوعا بعدد الكائنات في الجدول، متبوعا بفهرس كل كائن.
على سبيل المثال:
table 22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
يوضح هذا السطر أن الجدول يحتوي على 22 كائنا، ولكل كائن فهرس يتزايد. هذه الكائنات من مثال ifTable:
ifIndex ifDescr ifType ifSpeed ...
بعد هذا السطر، هناك إدخالات صف متعددة. في مثال ifTable، يماثل كل صف واجهة. تبدأ الصفوف بصف الكلمة الأساسية، ويتبعها معرف الفهرس الخاص بها، وتتبعها الكائنات التي تم تعدادها بإدخال الجدول السابق.
على سبيل المثال:
row 1 1 546F6B656E52696E67302F30 9 4464 16000000 0008B0851800 2 2 6551 0 0 0 0 0 0 0 0 0 0 0 0 0.0
الإدخال الرابع هو ifDescr للواجهة 1. ومع ذلك، هذا هو ifDescr في ASCII مكود سداسي عشر.
لترجمة هذا السطر إلى تنسيق أكثر قابلية للقراءة، أستخدم أمر Perl هذا:
$ perl -e 'print pack("H*", "546F6B656E52696E67302F30")' TokenRing0/0
يماثل هذا مدخل إلى قارن TokenRing0/0. كل الكائنات التي تكون سلاسل عادية تعرض على هيئة ASCII مرمز سداسي عشر في الملفات المجمعة. يمكنك إستخدام أمر Perl هذا لترجمة أي سلسلة ASCII سداسية عشرية إلى نص يمكن قراءته. إذا لم يكن لديك Perl، أستخدم جدول أحرف ASCII هذا لترجمة السلسلة.
تظهر بعض المدخلات حروف ~ للقيم. وهذا يعني أن قيمة هذا الكائن هي NULL. وهذا يعني، أن الكائن لم يتم إنشاء مثيل له على الجهاز.
على سبيل المثال:
row 9 9 41544D312F302F302D61746D206C61796572 37 ~ 0 1 1 5971 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
هذا يماثل إلى ال ATM1/0/0-atm طبقة قارن. لاحظ أن ifMtu هو NULL لهذه الواجهة. ونظرا لأن هذه واجهة افتراضية، فمن المنطقي أنها لا تحتوي على وحدة الحد الأقصى للنقل (MTU). إذا كنت تفضل، فيمكنك إستبدال وحدات NULL هذه ب 0 بإضافة هذا الأمر إلى تكوين الجهاز:
Router(config)#no snmp-server sparse-table
عند فحص كائن cbfStatusFileState، إذا إستلمت قيمة أخرى غير قيد التشغيل(1)، أو جاهز(2)، أو تم إفراغه(3)، فقد واجهت العملية الخاصة بك خطأ. هذا سبب للخطأ:
noSpace no data due to insufficient file space badName no data due to a name or path problem writeErr no data due to fatal file write error noMem no data due to insufficient dynamic memory buffErr implementation buffer too small aborted short terminated by operator command
إذا كان عدد الكائنات في الملف أقل مما تتوقع، فقد يتم تعيين cbfDefineMaxObjects من Cisco-Bulk-FILE-MIB إلى مستوى منخفض للغاية. لتحديد القيمة الحالية للكائن، أستخدم snmpget.
$ snmpget -c public 14.32.8.2 cbfDefineMaxObjects.0
تعني القيمة 0 عدم تكوين حد. يمكن تعيين القيمة على أي عدد صحيح بين 0 و 4294967295، شاملا. لتعيين الحد الأقصى للكائنات لكل ملف إلى 10، أستخدم الأمر snmpset. فهرس هذا الكائن دائما 0.
$ snmpset -c private 14.32.8.2 cbfDefineMaxObjects.0 u 10
قد لا يكون هذا الكائن قابلا للتكوين على كافة الأنظمة الأساسية. إذا فشلت مجموعة snmpset مع هذا الخطأ، فإن الكائن غير قابل للتكوين على نظامك الأساسي:
Error in packet. Reason: (noSuchName) There is no such variable name in this MIB. Failed object: enterprises.cisco.ciscoMgmt.ciscoBulkFileMIB.ciscoBulkFileMIBObjects.cbfDefine.cbfDefineMaxObjects.0
عند التحقق من كائن CFCrequestResult، إذا إستلمت قيمة أخرى غير معلق(1) أو ناجح(2)، واجهت عملية FTP خطأ. هذا سبب للخطأ:
aborted user aborted the transfer fileOpenFailLocal local bulk file was not found fileOpenFailRemote remote file could not be opened for writing badDomainName FTP server's hostname could not be resolved unreachableIpAddress route to the FTP server could not be found linkFailed connection could not be made to the remote server fileReadFailed local file could not be read fileWriteFailed remote file could not be written
لا توجد حاليا طريقة معتمدة للوصول إلى الملفات المجمعة مباشرة. يجب عليك المرور عبر Cisco-FTP-Client-MIB لقراءة الملفات.
يحدد كائن cbfDefineFileStorage ثلاثة أنواع: مؤقت، متطاير، ودائم. حاليا، النوع الوحيد المعتمد في IOS هو مؤقت. توجد الملفات العابرة بكميات صغيرة حتى يتم قراءتها.
بمجرد قراءة الملفات، لا يمكن إعادة قراءتها. يجب أولا إعادة إنشائها.
يحدد كائن cbfDefineFileFormat ثلاثة أنواع: standardBER، وbulkBinary، وbulkASCII. التنسيقات الوحيدة المدعومة هي BulkBinary وBulkASCII. التنسيق الافتراضي هو BulkBinary.
من المعروف عن خادم Chameleon FTP ل Windows عدم العمل مع Cisco-FTP-CLIENT-MIB، نظرا لأنه لا يرجع رموز النتائج الصحيحة.