SNMP

في عام 1988  نشر  المستند RFC 1065 بعنوان”هيكل وتحديد معلومات الإدارة لشبكات الإنترنت المستندة إلى TCP / IP“. وكانت فكرة هذا المستند هي التأكيد على حقيقة أن المعلومات حول الأجهزة الموجودة على شبكة الانترنت بما في ذلك الإعدادات ومعلومات الحالة والعدادات وغير ذلك يمكن تفتيتها وتكسيرها كمتغيرات تحفظ في قاعدة بيانات. يمكن بعد ذلك جمع هذه المتغيرات بواسطة برامج الإدارة لمراقبة وإدارة الشبكة القائمة على بروتوكول الإنترنت. وفي نهاية المطاف سيكون لعناصر أي أجهزة قائمة على بروتوكول الإنترنت قواسم مشتركة.

 

على سبيل المثال للكمبيوتر الشخصي ولطابعة الشبكة ولجهاز التوجيه قواسم مشتركة مثل المنافذ وعناوين IP والمخازن المؤقتة (Buffers). فلماذا لا يتم إنشاء قاعدة بيانات موحدة لهذه المتغيرات ونظام بسيط لرصدها وإدارتها؟ كانت هذه الفكرة رائعة وتم العمل على تحقيقها الى أن أصبحت ما نعرفه اليوم باسم بروتوكول إدارة الشبكة البسيط (SNMP).

 

SNMP هو بروتوكول طبقة التطبيق الذي ينسق رسالة الاتصال بين ما يسمى المديرين (managers) والوكلاء(agents). مدير SNMP هو تطبيق لإدارة الشبكة يعمل على كمبيوتر شخصي أو خادم وعادة ما يطلق على هذا الجهاز محطة إدارة الشبكة (NMS). يوجد العديد من وكلاء SNMP في الشبكة بمعنى وكيل لكل جهاز تتم إدارته وهذا الوكيل هو أيضاً برنامج يعمل داخل كل جهاز (جهاز توجيه(router) ، جهاز تبديل(switch) ، الى آخره) وعند وضوح ومعرفة جميع المتغيرات الموجودة على هذا الجهاز والتي تصف إعداداته وحالته وعداداته يستطيع مدير SNMP استخدام بروتوكولات SNMP للتواصل مع كل وكيل SNMP.

 

يحتفظ كل وكيل بقاعدة بيانات للمتغيرات التي تشكل المعلمات والحالة والعدادات لعمليات الجهاز بحيث تحتوي قاعدة البيانات هذه والتي تسمى قاعدة معلومات الإدارة (MIB) على بعض العناصر الأساسية المشتركة لدى معظم أجهزة الشبكات. كما أن لديها عدداً كبيراً من المتغيرات الفريدة لهذا النوع من الأجهزة  فعلى سبيل المثال ستتضمن MIBs للموجه متغيرات غير مطلوبة في MIBs للمبدل والعكس صحيح. فقد تصل متغيرات في  MIBs الموجه على سبيل المثال الى ما يزيد قليلاً على 7000 متغير.

 

يوضح الشكل أدناه بعض هذه الأفكار والمصطلحات.

قراءة وكتابة متغيرات الـ SNMPSNMP Get and Set

 

عادةً ما يقوم الـ NMS بعملية استطلاع على جميع أجهزة الشبكة ومن ثم يستطيع أن يخطر المهندس أو موظفي عمليات الشبكة عن طريق شاشة الكمبيوتر مباشرةً أو أن يرسل لهم رسائل بريد إلكتروني ونصوص وما إلى ذلك لإخطارهم بأي مشاكل يتم اكتشافها وتحديدها بواسطة البيانات التي تم العثور عليها من خلال استطلاعه للأجهزة. بل ويمكنا أيضاً من إعادة إعداد الجهاز من خلال متغيرات SNMP والموجودة في MIB إذا سمحنا بهذا الحد والمستوى من التحكم.

 

يستخدم NMS رسائل من نوع SNMP Get و GetNext و GetBulk (يشار إليها جميعاً باسم Get Messages) لطلب معلومات من الوكيل. يرسل NMS رسالة SNMP Set إلى عامل SNMP وذلك لكتابة المتغيرات وذلك كوسيلة لتغيير إعدادات الجهاز. تأتي هذه الرسائل كزوج من الرسائل فعلى سبيل المثال Get Request يسأل الوكيل عن محتويات المتغير وGet Response هو الذي يوفر هذه المعلومات. يوضح الشكل أدناه هذا التدفق حيث يستخدم الـ NMS رسالة SNMP Get لطلب متغير MIB والذي يصف حالة منفذ محدد لجهاز التوجيه.

يسمح SNMP بقدر كبير من المرونة في كيفية مراقبة المتغيرات في MIB. والأكثر شيوعًا هو أن يقوم مسؤول الشبكة بجمع الإحصائيات وتخزينها باستخدام NMS بحيث يستطيع الـ NMS مع هذه البيانات المخزنة من تحليل البيانات وعمل الإحصائيات المختلفة مثل المتوسطات والحد الأدنى والحد الأعلى. وكخطوات استباقية يستطيع المسؤولين على الشبكة من تعيين حدود لبعض المتغيرات الرئيسية والطلب من الـ NMS أن يقوم بإرسال إشعار سواء بريد إلكتروني أو نص أو غير ذلك) عند وصول هذا الحد.

 

تنبيهات SNMPTrap and Inform

 

بالإضافة إلى طلب المعلومات باستخدام أوامر Get وإعداد المتغيرات على الوكلاء باستخدام الأمر Set يمكن لوكلاء SNMP بدء الاتصالات مع NMS بحيث يسمى هذا النوع من الرسائل بالإشعارات وهي نوعين من الرسائل Trap and Inform. يرسل وكلاء SNMP رسالة Trap أو رسالة Inform إلى الـ NMS لتزويده بحالة بعض متغيرات MIB وذلك عندما تصل هذه المتغيرات إلى حالة معينة.

كمثال على الـ Trap (المصيدة) افترض أن منفذ G0/0 لجهاز التوجيه 1 تعطل كما هو موضح في الخطوة 1 من الشكل أدناه فمن خلال إعداد الـ Traps سيرسل جهاز التوجيه رسالة SNMP Trap إلى NMS بحيث تشير هذه الرسالة إلى حالة تعطل المنفذ G0/0. وبعد ذلك يقوم الـ NMS بإرسال رسالة نصية إلى فريق دعم الشبكة كانبثاق نافذة على شاشة NMS أوتغيير لون رمز جهاز التوجيه الصحيح إلى اللون الأحمر على الواجهة الرسومية أو ما أشبه ذلك.

رسائل Trap وInform لهما نفس الغرض بالضبط ولكنهما يختلفان في آليات عمل البروتوكول 12. فالـ Trap SNMP كانت متوفرة منذ الإصدار الأول من SNMP أي من أواخر الثمانينيات (SNMPv1) بحيث يرسل وكيل SNMP الـ Trap الى عنوان IP الخاص بـ NMS مستخدماً بروتوكول النقل UDP باعتباره بروتوكول النقل لجميع رسائل SNMP والذي لا يضمن استعادة أخطاء طبقة التطبيق فإذا وصلت رسالة الـ Trap فجميل وإن لم تصل فهو أمر مؤسف. أما رسائل الـ Inform فهي مثل رسائل الـ Trap ولكن مع إضافة عنصر الموثوقية وهذا ما تم إضافته في الإصدار الثاني من بروتوكول SNMP  (SNMPv2). في الواقع لا تزال Informs تستخدم UDP ولكنها أضافت موثوقية لطبقة التطبيق. وذلك عن طريق إلزام الـ NMS بالإقرار باستلامه رسالة الـ Inform وذلك من خلال إرساله لرسالة استجابة SNMP response وإلا سيعيد وكيل SNMP الإرسال لرسالة الـ  Inform مرة أخرى بعد فترة زمنية قصيرة.

لاحظ أن كل من Traps  و  Informs لهما دور مهم ومفيد حالياً ولا تزال رسائل الـ Traps مستخدمة بشكل متكرر فكلاهما يبلغ الـ NMS بينما تستخدم الـ Traps عبئاً أقل على الوكيل بينما تعمل ميزة الـ Informs على تحسين موثوقية الرسائل ولكنها تتطلب جهدًا أكبر قليلاً.

 

قاعدة المعلومات الإدارية

 

كل وكيل SNMP له قاعدة معلومات الإدارة الخاصة به. يحدد MIB المتغيرات التي يتم تعيين قيمها وتحديثها من قبل الوكيل. متغيرات MIB على الأجهزة في الشبكة تمكن برنامج الإدارة من المراقبة والتحكم في أجهزة الشبكة.

 

يعرّف MIB كل متغير على أنه كائن (OID) وفي معظم الأجهزة ينظم الـ MIB بعد ذلك معرفات الكائن استناداً جزئياً إلى معايير RFC وجزئياً الى الأولويات الخاصة الشركة المصنعة. ينظم الـ MIB جميع المتغيرات في تسلسل هرمي من OIDs وعادة ما تظهر على شكل شجرة يمكن وصف كل جزء في الشجرة بناءً على تسلسل بنية هذه الشجرة سواءً بالاسم أو بالرقم ويوضح الشكل أدناه جزءً صغيراً من بنية شجرة MIB التي تعتبر جزء مملوك لشركة Cisco من MIB.

تأمين SNMP

 

يدعم SNMP بعض آليات الأمان اعتماداً على الإصدار الخاص به وتتمثل إحدى الطرق القوية لتأمين SNMP في استخدام قوائم التحكم بالوصول (ACL) لقصر رسائل SNMP على تلك الواردة من الخوادم المعروفة فقط. يدعم وكلاء SNMP على موجهات ومحولات Cisco رسائل SNMP والتي تستخدم أي من حزم IPv4 أو IPv6. يمكن لوكيل SNMP تكوين ACL لتصفية رسائل SNMP الواردة على هيئة حزم IPv4 و ACL لتصفية رسائل SNMP الواردة على هيئة حزم IPv6.

 

يعد استخدام الـ ACL لحزم IPv4 و IPv6 لتأمين الوكيل أمراً منطقياً لأنه يفترض أن يكون الجهاز الوحيد الذين يستطيع أن يرسل رسائل SNMP إلى وكيل SNMP في جهاز التوجيه أو التبديل هو جهاز الـ NMS وبالتالي يجب أن تكون عناوين IP الخاصة بهم معروفة جيداً لموظفي الشبكة وبالتالي من المنطقي إعداد قائمة التحكم بالوصول (ACL) والتي تسمح بالحزم التي يتم استلامها من عناوين IP لجميع أجهزة الـ NMS وليس غيرها.

 

أما بالنسبة لرسائل SNMP فإن جميع إصدارات SNMP تدعم آلية كلمات مرور النص الأساسية والواضحة الأساسية إلا أن SNMP (SNMPv3) أضاف مزيداً من الأمان في هذا الجانب. فقد حدد SNMPv1 كلمات مرور ذات نص واضح تسمى مجتمعات SNMP. بحيث يحتاج كل من وكيل SNMP ومدير SNMP إلى معرفة مسبقة بنفس قيمة مجتمع SNMP (تسمى سلسلة المجتمع). تتضمن رسالة SNMP Get ورسالة Set قيمة سلسلة المجتمع المناسبة بنص واضح فإذا قام الـ NMS بإرسال Get أو Set مع سلسلة المجتمع الصحيحة كما تم تكوينه في وكيل SNMP يقوم الوكيل بمعالجة الرسالة.

يحدد SNMPv1 مجتمعين أحدهما مجتمع القراءة فقط والآخر مجتمع القراءة والكتابة. يسمح مجتمع القراءة فقط (RO) بالحصول على الرسائل ويسمح مجتمع القراءة والكتابة (RW) بالقراءة والكتابة (Gets and Sets) يوضح الشكل أدناه ذلك بحيث يظهر في الخطوتين 1 و 2 أنه تم إعداد الوكيل بسلاسل خاصة لمجتمع RO و RW وفي الخطوة الثانية يقوم الـ NMS بإعداد القيم المطابقة لها ويظهر في الخطوة 3 أنه يمكن تدفق SNMP Get مع أي من المجتمعين بينما في الخطوة 4 يجب أن يستخدم في حالة SNMP Set طلب المجتمع RW.

أضاف SNMPv2 تعقيداً في التسمية ولكنه احتفظ بشكل أساسي بنفس ميزة أمان المجتمع مثل SNMPv1 بمجرد اكتمال عملية الاعداد. لم تتضمن المواصفات الأصلية لـ SNMPv2 لموضوع المجتمعات التي كانت موجودة في SNMPv1 إلا أن السوق والميدان لا يزال يريد المجتمعات ولأجل ذلك أضافت RFC آلية المجتمعات لـ SNMPv2 مرة أخرى والتي تم تسميتها بالـ SNMPv2c.

 

وصل بعد ذلك SNMPv3 مع ابتهاج وفرح بين مسؤولي الشبكة لأنه وأخيراً وصل عنصر الأمان القوي مع بروتوكول الـ SNMP فقد ألغى SNMPv3 المجتمعات واستبدلها بالميزات التالية:

 سلامة الرسالة(integrity): تؤكد هذه الآلية والمطبقة على جميع رسائل SNMPv3 ما إذا كان قد تم تغيير أي رسالة أثناء النقل أم لا.

 المصادقة(Authentication): تضيف هذه الميزة الاختيارية المصادقة بكل من اسم المستخدم وكلمة المرور مع عدم إرسال كلمة المرور كنص واضح وإنما طريقة الـ (Hashing) مثل العديد من عمليات المصادقة الحديثة الأخرى.

 التشفير والخصوصية (Encryption): تقوم هذه الميزة الاختيارية بتشفير محتويات رسائل SNMPv3 بحيث لا يتمكن المهاجمون الذين يعترضون الرسائل من قراءة محتوياتها.

Leave a Comment

Your email address will not be published. Required fields are marked *

Verified by MonsterInsights