پروتکل SNMP چیست و چگونه کار میکند؟ | داناپرداز

پروتکل SNMP چیست و چگونه کار میکند؟

پروتکل SNMP یکی از پروتکل های لایه Application است که امکان نقل و انتقال اطلاعات مدیریتی را بین عناصر شبکه ایجاد می کند و در واقع قسمتی از پروتکل TCP/IP می باشد.  این پروتکل به طور وسیعی برای مانیتورینگ و مدیریت اجزاء شبکه استفاده می شود. بسیاری از وندورها، تجهیزات تولیدی خود را به پروتکل SNMP مجهز می کنند تا امکان نظارت بر عملکرد آنها به کمک نرم افزارهای مانیتورینگ فراهم شود. در حال حاضر سه نسخه از پروتکل SNMP وجود دارد، SNMPv1، SNMPv2 و SNMPv3 که در ادامه با تفاوت های این سه نسخه از پروتکل SNMP آشنایی پیدا خواهید کرد.

اجزاء اصلی پروتکل SNMP چیست و آشنایی با عملکرد هر کدام از آنها

برای آشنایی با پروتکل SNMP ابتدا باید با اجزاء اصلی اون آشنا شوید:
  • SNMP Manager
  • Managed Devices
  • SNMP Agent
  • Management Information Base (MIB)

SNMP Manager (یا سیستم مدیریت شبکه)

یک SNMP Manager که با نام Network Management System (NMS) هم شناخته می شود، وظیفه برقراری ارتباط و تبادل اطلاعات با SNMP Agent های فعال در تجهیزات شبکه را بر عهده دارد. به زبان ساده تر، یک SNMP Manager کامپیوتری است که بر روی آن یک نرم افزار مانیتورینگ شبکه مثل نرم افزار مانیتورینگ شبکه بینا  نصب شده است و وظیفه مانیتورینگ شبکه را بر عهده دارد.وظایف یک SNMP Manager به طور عمده عبارتند از:
  • ارسال پرس و جو به Agent ها
  • دریافت پاسخ از Agent ها
  • سِت کردن متغیر ها در Agent ها
  • دریافت پیغام های Trap از Agent ها

Managed Devices (یا تجهیزات شبکه)

منظور از Managed Device همه دستگاه های شبکه هستند که بر روی آنها SNMP Agent فعال شده باشد، مثل روتر ها، سوئیچ ها، سرورها و فایروال ها.

SNMP Agent (یا عامل)

یک SNMP Agent در اصل برنامه ای است که بر روی تجهیزات شبکه کار گذاشته شده تا قابلیت SNMP را به آنها اضافه کند و وظیفه اصلی آن پاسخ دادن به درخواست های ارسال شده از طرف SNMP Manager است. وقتی SNMP Agent روی یک دستگاه فعال می شود، شروع به ثبت شاخص ها و اطلاعات دستگاه به صورت لوکال می کند و این اطلاعات را در دسترس NMS ها قرار می دهد. این اِیجنت ها می توانند استاندارد باشند مثل (Net-SNMP) یا مخصوص یک وندور باشند مثل (HP Insight Agent).به طور کلی وظایف یک SNMP Agent عبارتند از:
  • جمع آوری اطلاعات مدیریتی از دستگاهی که روی آن نصب شده است
  • نگه داری و فراخوانی اطلاعات مدیریتی بر اساس MIB مربوطه
  • ارسال سیگنال به NMS شبکه.

دیاگرام ساده ارتباط SNMP در شبکه

Management Information Base -MIB (یا پایگاه داده اطلاعات مدیریتی)

هر SNMP Agent دارای یک پایگاه داده برای معرفی و توصیف پارامتر های قابل نظارت و اندازه گیری است.  به عبارتی SNMP Manager ها از این پایگاه داده جهت ارسال درخواست به ایجنت ها برای دریافت پارامتر های مورد نظر و همچنین تفسیر پاسخ ها مطابق با تعاریف صورت گرفته توسط وندور استفاده می کنند. به زبان ساده، یک MIB یک پایگاه داده متنی است که فهرست پارامتر های قابل مانیتورینگ روی دستگاه را مشخص می کند و زبان مشترک بین Agent و Manager است، شاید بتونیم بگیم فایل های MIB مجموعه ای از سوالاتی است که یک NMS می تواند از دستگاه تحت مانیتورینگ بپرسد.

آیا دوست دارید با امکانات نرم افزار مانیتورینگ بینا بیشتر آشنا بشید؟

ما در یک جلسه دموی کوتاه حضوری و یا ریموتی بینا رو به شما معرفی می کنیم.

آشنایی با ساختار MIB و معرفی شناسه آبجکت ها (OID)

همانطور که گفتیم، یک MIB مجموعه ای از اطلاعات برای مانیتورینگ اجزاء شبکه هستند. به طور دقیق تر، MIB شامل مجموعه ای از آبجکت ها است که با نام Object Identifier – OID شناخته می شوند. هر OID منحصر به فرد است و به یک ویژگی بخصوص دستگاه اشاره می کند، مثلا یک OID میزان مصرف حافظه را نمایش می دهد و یک OID دیگر ممکن است سرعت فن دستگاه را برگرداند. مقدار برگشتی OID ها ممکن است با یکدیگر متفاوت باشد، مثلا متن، عدد و شمارنده یا انواع دیگر.به طور کلی دو نوع OID وجود دارد: Scalar و Tabular که شاید درک تفاوت آنها با مثال ساده تر باشد. اسکالر (Scalar): مانند نام وندور دستگاه، در اصل خروجی فقط یک مقدار می تواند باشد که همان نام سازنده دستگاه است، پس OID های اسکالر فقط یک مقدار خروجی دارند. جدولی (Tabular): مانند میزان مصرف CPU یک پردازشگر چهار هسته ای که وقتی مقدار این OID را بپرسیم ، چهار مقدار برگردانده می شود، یک مقدار برای هر هسته پردازشگر. طبق تعریف، OID های جدولی مقدار چند شاخص مرتبط به هم را که در گروه قرار دارند با ایندکس های متفاوت بر می گردانند) هر OID در ساختار MIB به صورت سلسله مراتبی سازمان دهی می شود، در اصل MIB ها ساختار درختی و سلسله مراتبی دارند. OID ها به صورت اعداد صحیح که با نقطه از هم جدا شده اند نمایش داده می شوند. برای مثال OID مربوط به “SysDescr” برابر است با 1.3.6.1.2.1.1.1

ساختار درختی MIB - پروتکل SNMP

دستورات پایه پروتکل SNMP کدامند؟

سادگی تبادل اطلاعات در پروتکل SNMP موجب شده که این پروتکل به طور وسیعی مورد استفاده قرار گیرد. در ادامه با دستورات اصلی SNMP آشنا خواهید شد: • Get: دستور Get یک درخواست اطلاعات است که توسط Manager به Managed Device ارسال می شود تا یک یا چند مقدار را از آن دریافت کند. • Get Next: این دستور شبیه دستور Get است، تفاوت اصلی این دو دستور در این است که Get Next مقدار OID بعدی در درختواره MIB را فراخوانی می کند. • Get Bulk: از GetBulk برای دریافت حجم زیادی از داده از جداول بزرگ MIB استفاده می شود. • Set: به کمک این دستور یک Manager می تواند مقدایر برخی از تنظیمات Managed Device را تغییر دهد. • TRAPS: بر خلاف دستورات فوق که توسط NMS به دستگاه هدف ارسال می شود، تِرَپ ها توسط دستگاه ها در زمان رخداد رویداد های مشخص شده به NMS ارسال می شوند. • INFORM: این دستور شبیه TRAP توسط Agent به NMS ارسال می شود، علاوه بر این Manager ها از این دستور برای تایید دریافت اطلاعات استفاده می کنند. • RESPONSE: برای باز گرداندن مقادیر یا سیگنال هایی که توسط Manager هدایت شده اند استفاده می شود.

کاربرد SNMP TRAP چیست؟

به کمک SNMP TRAP، دستگاه ها می توانند در مواقعی که رویداد مهمی رخ می دهد، یک پیغام به Manager ارسال کنند و آن را از رخداد آگاه سازند. در یک پیغام TRAP مقدار sysUpTime  به همراه OID نمایانگر نوع رخداد و همچنین مقادیر مربوطه در صورت وجود ارسال می شود. مقصد ارسال TRAP با توجه به تنظیمات صورت گرفته مشخص می شود و فرمت این پیغام ها در SNMPv2 تغییر کرده اند و به SNMPv2-Trap تغییر نام داده شده است.

آشنایی با روش تبادل اطلاعات پروتکل SNMP

همانطور که اشاره شد، پروتکل SNMP زیر مجموعه پروتکل TCP/IP است، و پیغام ها و دستورات SNMP از طریق بسته های User Datagram Protocol (UDP) در شبکه منتقل می شوند. به صورت پیش فرض شماره پورت SNMP برابر با 161 است و دستورات TRAP/INFORM از پورت 162 استفاده می کنند.برای درک بهتر موضوع به دیاگرام زیر توجه کنید: پروتکل SNMP چیست ؟ - دانا پرداز

GET⁄ GET NEXT⁄ GET BULK⁄ SET

اس ان ام پی چگونه کار میکند

TRAP

پروتکل SNMP چگونه است

INFORM

نحوه کارکرد اس ان پی

آشنایی با انواع نسخه های پروتکل SNMP

از زمان آغاز SNMP، این پروتکل تغییرات وسیعی کرده و به طور پیوسته ارتقاء پیدا کرده است. هر چند همچنان نسخه های SNMPv1 و SNMPv2 بیشترین پیاده سازی را دارند. پشتیبانی از نسخه سوم یا به عبارتی SNMPv3 چند وقتی است به طور جدی شروع شده ولی علی رغم امنیت بسیار بالاتر، هنوز نتوانسته سهم زیادی به دست آورد.

SNMPv1

این اولین نسخه SNMP است که در RFC های شماره 1155  و 1157 تعریف شده است.

SNMPv2

این نسخه تجدید نظر شده SNMPv1 است که بهینه سازی های فراوانی روی آن صورت گرفته، از نوع پکت ها، روش تبادل و حتی ساختار MIB این نسخه بسیار بهینه تر شده است.

SNMPv3

این نسخه ایمن ترین و آخرین نسخه SNMP است. جدا از اینکه در هر نسخه از SNMP ارتقاء عملکرد صورت گرفته است، اما همیشه تاکید زیادی بر لزوم توجه به امنیت این پروتکل بوده است و لذا در این نسخه روش تصدیق هویت و رمزنگاری اطلاعات پیاده سازی شده است. در جدول زیر به طور خلاصه تفاوت امنیت نسخه ای مختلف را مشاهده می کنید:
SNMP v1 Community–based security
SNMP v2c Community–based security
SNMP v2u User–based security
SNMP v2 Party–based security
SNMP v3 User–based security

پارامتر Community String چیست؟

در نسخه های 1 و 2 پروتکل SNMP از Community String برای بررسی مجوز دسترسی به مقادیر SNMP استفاده می شود. در واقع این Community String اینجا شبیه نام کاربری و رمز عبور عمل می کند. نرم افزار های مانیتورینگ مانند نرم افزار بینا، در هر دستور SNMP باید مقدار Community String  را به دستگاه هدف ارسال کنند و دستگاه هدف تنها در صورتی که مقدار ارسال شده صحیح باشد به آن پاسخ می دهد. بسیاری از دستگاه هایی که از SNMP پشتیبانی می کنند به صورت پیش فرض مقدار public را برای Community String خود در نظر می گیرند و این وظیفه مدیر شبکه است که این مقدار را روی همه تجهیزات تغییر دهد. باید توجه داشته باشید که در نسخه SNMPv3 دیگر Community String وجود ندارد و در این نسخه تصدیق هویت به وسیله نام کاربری و رمز عبور انجام می شود.

از کدام نسخه SNMP استفاده کنیم؟

پاسخ به این سوال بستگی به محیط شبکه شما دارد، اینجا به چند اصل کلی اشاره می کنیم:
  • اگر شبکه شما از طریق اینترنت قابل دسترسی است، شاید باید به SNMPv3 توجه کنید، چون از نظر امنیت بسیار بهتر است، اما باید این را هم در نظر بگیرید که رمز نگاری و ارتقاء امنیت روی این نسخه تا حدودی موجب افزایش بار کاری دستگاه ها و در نتیجه پایین آمدن سرعت (Performance) می شود.
  • اگر شبکه شما به خوبی توسط فایروال ها محفوظ شده است، استفاده از نسخه های SNMPv1 و SNMPv2 ممکن است کافی باشد.
  • از نقطه نظر مانیتورینگ شبکه، مثلا برای مانیتورینگ دستگاه ها با نرم افزار بینا ما پیشنهاد می کنیم از پروتکل SNMPv2 استفاده کنید که زمان اسکن پایین تری دارد و از شمارنده های 64-bit پشتیبانی می کند.
  • SNMP Manager
  • Managed Devices
  • SNMP Agent
  • Management Information Base (MIB)

به کمک SNMP TRAP، دستگاه ها می توانند در مواقعی که رویداد مهمی رخ می دهد، یک پیغام به Manager ارسال کنند و آن را از رخداد آگاه سازند. در یک پیغام TRAP مقدار sysUpTime  به همراه OID نمایانگر نوع رخداد و همچنین مقادیر مربوطه در صورت وجود ارسال می شود.

در نسخه های 1 و 2 پروتکل SNMP از Community String برای بررسی مجوز دسترسی به مقادیر SNMP استفاده می شود. در واقع این Community String اینجا شبیه نام کاربری و رمز عبور عمل می کند.

پاسخ به این سوال بستگی به محیط شبکه شما دارد، ما در مقاله چند اصل کلی را برای پاسخ به این سوال آماده کرده‌ایم تا بتوانید بهترین انتخاب را داشته باشید.

برای امتیاز به این نوشته کلیک کنید!
اسکرول به بالا