المقدمة
يصف هذا وثيقة كيف أن يشكل ويراقب SNMP على cisco لاسلكي lan جهاز تحكم (WLC).
المتطلبات الأساسية
المتطلبات
توصي Cisco بأن يكون لديك أداة بروتوكول إدارة الشبكة البسيط (SNMP) افتراضية على نظام التشغيل أو معرفة تثبيت واحدة.
المكونات المستخدمة
لا يقتصر هذا المستند على إصدارات برامج ومكونات مادية معينة. تم إجراء جميع الاختبارات على وحدة تحكم في الشبكة المحلية اللاسلكية (WLC) طراز 3504 تشغل الإصدار 8.9 من الصورة ونظام التشغيل MacOS 10.14. تكون OIDs الواردة في هذه المقالة صالحة أيضا مع الإصدارات السابقة من AireOS ووحدات التحكم اللاسلكية الأخرى المستندة إلى AireOS (8540/5508/5520/2504).
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
تكوين إعدادات SNMP على WLC
SNMPv2c هو إصدار مجتمعي من SNMP وتكون جميع الاتصالات بين الأجهزة في نص واضح. SNMPv3 هو الإصدار الأكثر أمانا الذي يوفر عمليات التحقق من سلامة الرسائل والمصادقة وتشفير الحزم. SNMPv1 قديم للغاية ولكنه لا يزال موجودا لتوفير توافق البرامج القديمة.
ملاحظة: يتم تمكين SNMPv2c بشكل افتراضي مع خاص المجتمع الذي لديه امتيازات القراءة والكتابة وعامة المجتمع التي لديها امتيازات القراءة فقط. يوصى بإزالتها وإنشاء مجتمع جديد باسم مختلف.
في هذه المقالة، يتم إستخدام SNMPv2c و SNMPv3 فقط. قم بتسجيل الدخول إلى واجهة ويب لوحدة التحكم. تحت Management > SNMP > General ضمان تمكين الإصدار المرغوب من البروتوكول.
تحت قائمة المجتمعات، يتم عرض كل المجتمعات التي تم إنشاؤها حاليا.
من أفضل الممارسات إزالة المجتمعات الافتراضية التي تم تكوينها مسبقا وإنشاء مجتمعات جديدة. يتصرف عنوان IP وقناع الشبكة كقائمة وصول. بشكل افتراضي، يتم تعيين كليهما على 0.0.0.0، ما يعني أنه يتم السماح لجميع عناوين IP بإجراء استعلامات SNMP لهذا المجتمع. ترك حقل وضع الوصول كقراءة فقط لأن هذا المجتمع سيتم إستخدامه للمراقبة فقط، وليس لتكوين عنصر التحكم في الشبكة المحلية اللاسلكية (WLC).
ملاحظة: تتأثر جميع الإصدارات الأقدم من 8.7.1.135 بمعرف تصحيح الأخطاء من Cisco CSCvg61933 حيث لا يمكن تعيين قناع الشبكة على 255.255.255.255. قم بترقية وحدة التحكم إلى أحدث إصدار موصى به لاحقا من 8.7.1.135 أو أستخدم هذا الأمر في واجهة سطر الأوامر (CLI) لإنشاء مجتمعconfig snmp community ipaddr <ip_address> <netmask> <community_name> جديد.
تحت قائمة مستخدمي SNMP V3، يمكنك الاطلاع على جميع المستخدمين الذين تم تكوينهم وامتيازاتهم والبروتوكولات المستخدمة للمصادقة والتشفير. يسمح الزر الجديد بإنشاء مستخدم جديد. يوصى باختيار HMAC-SHA كبروتوكول مصادقة و CFB-AES-128 كبروتوكول خصوصية. قم بإنشاء مسؤول مسمى للمستخدم مع تعيين كلمة مرور المصادقة والخصوصية على Cisco123Cisco123.
أسماء الكائنات ومعرفات الكائنات (OIDs)
ما هي أسماء الكائنات ومعرفات الكائن OIDs
OIDs هي معرفات فريدة تمثل متغير أو كائن معين. على سبيل المثال، يعتبر إستخدام وحدة المعالجة المركزية (CPU) الحالي متغيرا يمكن إسترداد قيمه عند إستدعاء معرف الكائن الخاص بها. كل معرف فئة (OID) فريد من نوعه ولا يجب أن يكون أي إثنين متماثلين عبر العالم، كما هو الحال مع عنوان MAC. وتكون هذه المعرفات في تسلسل هرمي للشجرة، ويمكن تعقب كل معرف فريد (OID) مرة أخرى إلى الجذر الخاص به. يكون لكل مورد فرعه الخاص بعد جذر مشترك.
وقد يكون القياس عنوان منزلي، حيث الجذر هو الدولة أو الولاية، ثم رمز بريدي للمدينة، والشارع، وأخيرا رقم المنزل.
والأرقام التي تليها نقطة تمثل كل خطوة تحتاج للوصول إلى نقطة معينة في تلك الشجرة أو الفرع.
يتم تخزين جميع هذه القيم في قاعدة معلومات الإدارة (MIB) في كل جهاز على الشبكة. يحتوي كل معرف على اسم وتعريف (نطاق القيم والأنواع المحتملة وما إلى ذلك).
لا يتعين عليك تحميل قواعد معلومات الإدارة (MIB) على أداة SNMP لاستخدام بروتوكول SNMP والاستعلام عن جهاز ما، طالما أن معرف عملية (OID) صالح معروف. يستجيب الجهاز مع القيمة المخزنة في المتغير الذي يمثله OID. على سبيل المثال، في الصورة الموضحة، يستعلم مدير SNMP عن وكيل SNMP للجهاز الخاص بوصف النظام الخاص به باستخدام OID 1.3.6.1.2.1.1.0.
إذا قمت بتحميل قاعدة معلومات الإدارة في أداة الاستعلام الخاصة بك، يمكنك إستخدامها لترجمة أرقام OID إلى أسماء واكتشاف تعريفاتها.
قواعد معلومات الإدارة وقائمة جميع أسماء الكائنات والمعرفات على قوائم التحكم في الشبكة المحلية اللاسلكية (WLCs) من Cisco
اعتبارا من مايو 2019، لا يوجد جدول بسيط سهل الاستخدام يحتوي على كل اسم كائن متاح ومعرفات خاصة به لوحدات التحكم في الشبكة المحلية اللاسلكية. كبديل، توفر Cisco قاعدة معلومات الإدارة (MIB)، والتي لا يمكن قراءتها بسهولة ولكنها تحتوي على جميع أسماء الكائنات المتاحة ووصفها. يمكن تنزيل قاعدة معلومات الإدارة (MIB) الخاصة بوحدة التحكم في الشبكة المحلية اللاسلكية (WLC) طراز 3504 هنا.
يحتوي ملف الأرشيف الذي تم تنزيله على العديد من ملفات النص الخاصة بي التي يمكن إستيرادها إلى أي خادم مراقبة SNMP تابع لجهة خارجية أو فتحها ببساطة باستخدام محرر نص عادي. للعثور على معرف الكائن الخاص باسم كائن معين، تحتاج أولا لتحديد موقع الملف الذي يحتوي عليه بدقة.
على سبيل المثال، جميع الكائنات المتعلقة بمراقبة حالة الجهاز المادية (مثل درجة الحرارة وسرعة المروحة) موجودة داخل قاعدة معلومات الإدارة (MIB) المسماة CISCO-ENVMON-MIB.my. هنا، ciscoEnvMonFanState هو اسم الكائن الذي يتم إستخدامه لتوفير حالة مروحة WLC. تحتوي ملفات MIB على الصياغة الموضحة. معلومات حول كائن حالة المروحة تبدو كما يلي:
ciscoEnvMonFanState OBJECT-TYPE SYNTAX CiscoEnvMonState MAX-ACCESS read-only STATUS current DESCRIPTION "The current state of the fan being instrumented." ::= { ciscoEnvMonFanStatusEntry 3 }
تعتمد معظم برامج المراقبة التابعة لجهة خارجية على OIDs وليس على أسماء الكائنات. يمكن إجراء الترجمة بين اسم الكائن ومعرف الكائن باستخدام أداة متصفح كائن SNMP من Cisco. أدخل اسم الكائن في شريط البحث. يوفر الإخراج معرف الكائن (OID) ووصفا موجزا. بالإضافة إلى ذلك، يمكن إستخدام نفس الأداة للعثور على اسم الكائن المطابق لمعرف الكائن.
إستخدام OIDs لمراقبة حالة WLC
بعد الحصول على معرف الكائن (OID) الخاص بالكائن الذي يجب مراقبته، يمكن تنفيذ استعلام SNMP الأول. توضح هذه الأمثلة كيفية الحصول على إستخدام وحدة المعالجة المركزية (CPU) الخاصة بوحدة المعالجة المركزية (WLC) لكل مركز (OID = 1.3.6.1.4.9.618.1.4.1) لمجتمع SNMPv2 snmp_test ومستخدم SNMPv3 admin مع تعيين كلمة مرور مصادقة SHA Cisco123Cisco123 وكلمة مرور خصوصية AES إلى Cisco123Cisco123 . توجد واجهة إدارة وحدة التحكم في 10.48.39.164.
المراقبة عبر SNMPwalk
SNMPwalk هو تطبيق SNMP يستخدم طلبات GETtnext الخاصة ب SNMP للاستعلام عن كيان شبكة لشجرة من المعلومات. يكون موجودا بشكل افتراضي في برامج MacOS ومعظم برامج لينوكس. بالنسبة ل SNMPv2c، يحتوي الأمر على الصياغة:
snmpwalk -v2c -c <community_name> <WLC_management_interface_ip> <OID>
على سبيل المثال:
VAPEROVI-M-H1YM:~ vaperovi$ snmpwalk -v2c -c snmp_test 10.48.39.164 1.3.6.1.4.1.9.9.618.1.4.1 SNMPv2-SMI::enterprises.9.9.618.1.4.1.0 = STRING: "0%/1%, 0%/1%, 0%/1%, 0%/1%"
إذا تم إستخدام SNMPv3، فسيكون للأمر الصياغة:
snmpwalk -v3 -l authPriv -u <username> -a [MD5|SHA] -A <auth_password> -x [AES|DES] -X <priv_password> <WLC_management_interface_ip> <OID>
أختر MD5/SHA و AES/DES استنادا إلى كيفية إنشاء مستخدم SNMPv3 على وحدة التحكم.
على سبيل المثال:
VAPEROVI-M-H1YM:~ vaperovi$ snmpwalk -v3 -l authPriv -u admin -a SHA -A Cisco123Cisco123 -x AES -X Cisco123Cisco123 10.48.39.164 1.3.6.1.4.1.9.9.618.1.4.1 SNMPv2-SMI::enterprises.9.9.618.1.4.1.0 = STRING: "0%/1%, 0%/1%, 0%/0%, 0%/1%"
المراقبة من خلال Python 3 ومكتبة PYSMNP
تتم كتابة أجزاء التعليمات البرمجية هذه في Python 3.7 وتستخدم pysnmp الوحدة النمطية (pip install pysnmp ) لإنشاء استعلامات SNMP لاستخدام وحدة المعالجة المركزية (CPU) ل Cisco 3504 WLC. تستخدم هذه الأمثلة مجتمع SNMPv2 ومستخدم SNMPv3 نفسه الذي تم إنشاؤه في أحد الفصول السابقة. ببساطة استبدل القيم المتغيرة ودمج الشفرة مع نصوصك النصية المخصصة.
مثال SNMPv2c:
from pysnmp.hlapi import *
communityName = 'snmp_test'
ipAddress = '10.48.39.164'
OID = '1.3.6.1.4.1.14179.2.3.1.13.0'
errorIndication, errorStatus, errorIndex, varBinds = next( getCmd(SnmpEngine(), CommunityData(communityName), UdpTransportTarget((ipAddress, 161)), ContextData(), ObjectType(ObjectIdentity(OID))) ) if errorIndication: print(errorIndication) elif errorStatus: print('%s at %s' % (errorStatus.prettyPrint(), errorIndex and varBinds[int(errorIndex) - 1][0] or '?')) else: for varBind in varBinds: print(' = '.join([x.prettyPrint() for x in varBind]))
الناتج:
SNMPv2-SMI::enterprises.14179.2.3.1.13.0 = 73
مثال SNMPv3:
from pysnmp.hlapi import * username = 'admin' ipAddress = '10.48.39.164' OID = '1.3.6.1.4.1.14179.2.3.1.13.0' authKey = 'Cisco123Cisco123' privKey = 'Cisco123Cisco123' errorIndication, errorStatus, errorIndex, varBinds = next( getCmd(SnmpEngine(), UsmUserData(username, authKey, privKey, authProtocol=usmHMACSHAAuthProtocol, privProtocol=usmAesCfb128Protocol), UdpTransportTarget((ipAddress, 161)), ContextData(), ObjectType(ObjectIdentity(OID))) ) if errorIndication: print(errorIndication) elif errorStatus: print('%s at %s' % (errorStatus.prettyPrint(), errorIndex and varBinds[int(errorIndex) - 1][0] or '?')) else: for varBind in varBinds: print(' = '.join([x.prettyPrint() for x in varBind]))
التكامل مع برامج الطرف الثالث (Grafana/PRTG Network Monitor/SolarWinds)
توفر البنية الأساسية ل Cisco Prime القدرة على مراقبة أجهزة الشبكة المتعددة وتكوينها بسهولة، والتي تتضمن وحدات التحكم اللاسلكية. يأتي Prime Infrastructure محملا مسبقا بجميع معرفات الأجهزة الأصلية ويتكون التكامل مع عنصر التحكم في الشبكة المحلية اللاسلكية (WLC) ببساطة من إضافة بيانات اعتماد عنصر التحكم في الشبكة المحلية اللاسلكية (WLC) إلى Prime. بعد إجراء المزامنة، من الممكن تعيين تنبيهات ودفع قوالب التكوين إلى وحدات تحكم لاسلكية متعددة في نفس الوقت.
من جهة أخرى، يمكن أيضا دمج Cisco WLC مع حلول مراقبة متعددة من جهات خارجية، طالما كانت معرفات الأجهزة الأصلية معروفة. تتيح برامج مثل Grafana، و PRTG Network Monitor، و SolarWind Server إمكانية إستيراد قواعد معلومات الإدارة (MIB) أو معرفات الأجهزة الأصلية (OIDs) وعرض القيم في رسم بياني سهل الاستخدام.
قد يلزم تطوير مراقبة الخوادم لاستيعاب هذا التكامل. في المثال الموضح في الصورة، يتم تزويد خادم مراقبة PRTG بمعرف إستخدام وحدة المعالجة المركزية (OID) لكل مركز والذي يرجع السلسلة 0%/1%, 1%/1%, 0%/1%, 0%/1%. يتوقع PRTG قيمة عدد صحيح ويثير خطأ.
جدول OIDs الأكثر شيوعا للمراقبة
إذا كنت تضع في الاعتبار أن قواعد معلومات الإدارة (MIB) تقدم البيانات في بناء جملة غير سهل على المستخدم، فإن هذا الجدول يتضمن بعض أسماء الكائنات الأكثر شيوعا ومعرفات الكائن الخاصة بهم التي يستخدمها عملاء Cisco.
الوصف |
اسم الكائن |
OID |
رد متوقع |
إجمالي إستخدام وحدة المعالجة المركزية (CPU) في ٪ |
agentCurrentCPUUtile |
1.3.6.1.4.1.14179.1.1.5.1.0 |
عدد صحيح: 0 |
إستخدام وحدة المعالجة المركزية لكل مركز |
clsAllCpuUse |
1.3.6.1.4.1.9.9.618.1.4.1.0 |
السلسلة: 0٪/1٪، 0٪/1٪، 0٪/1٪، 0٪/1٪، 0٪/1٪ |
إستخدام ذاكرة الوصول العشوائي (RAM) بنسبة ٪ |
clsSysCurrentMemoryUse |
1.3.6.1.4.1.9.9.618.1.8.6.0 |
كيج 32: 33 |
درجة حرارة وحدة المعالجة المركزية في درجة حرارة مئوية |
BSNsensorTemperature |
1.3.6.1.4.1.14179.2.3.1.13.0 |
عدد صحيح: 76 |
عدد نقاط الوصول المنضمة |
clsSysApConnectCount |
1.3.6.1.4.1.9.9.618.1.8.4.0 |
مقياس 32: 2 |
عدد العملاء |
clsMaxClientCount |
1.3.6.1.4.1.9.9.618.1.8.12.0 |
كيج 32: 0 |
عدد العملاء لكل شبكة محلية لاسلكية (WLAN) |
bsnDot11EssNumberOfMobileStation |
1.3.6.1.4.1.14179.2.1.1.1.38.0 |
العداد 32: 3 العداد 32: 2 |