پروتکل SNMP یا پروتکل مدیریت شبکه چیست؟

پروتکل SNMP
این مقاله در تاریخ 30 خرداد 1400 نوشته و در تاریخ 29 مهر 1400 مورد بازبینی قرار گرفته است.

پروتکل SNMP یا Simple Network Management Protocol پروتکل مشهور و پرکاربرد برای مدیریت شبکه است. یک پروتکل لایه ۷(لایه Application) از مدل مفهومی OSI می باشد. این پروتکل توسط Internet Architecture Board) IAB) در RFC1157 برای تبادل اطلاعات بین دستگاه های مدیریت شبکه معرفی شد. لازم به ذکر است که SNMP یکی از زیر شاخه های مجموعه پروتکل TCP/IP محسوب می شود. در واقع این پروتکل به طور گسترده ای در مدیریت و مانیتورینگ عناصر مختلف شبکه بکار می رود.

به طور کلی در بسیاری از شبکه های کامپیوتری نرم افزار های مانیتورینگ وجود دارند که با این نرم افزارها می توان به بررسی اطلاعات کامل و دقیق از تمامی بخش های شبکه پرداخت. تمامی این نرم افزارها با استفاده از پروتکل های مختلفی مثل NetFlow ،ICMP ،ARP و از همه مهم تر SNMP اقدام به اسکن و بررسی شبکه می کنند.

 

معرفی پروتکل SNMP:

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

یکی دیگر از مزایای استفاده از پروتکل SNMP این است که با استفاده از آن می توانید این امکان را در اختیار مدیران شبکه قرار دهید تا بتوانند به راحتی در کوتاه ترین زمان ممکن مشکلات در شبکه را تشخیص داده و سپس آن را حل نمایند. اما مانیتورینگ شبکه نه تنها برای بهبود عملکرد شبکه مورد استفاده قرار می گیرد بلکه به منظور جلوگیری از هر گونه حملات از داخل و خارج شبکه مورد استفاده قرار می گیرد به طوری که با کنترل ترافیک شبکه و تشخص نفوذ باعث افزایش امینت شبکه می شود.

در واقع لازم به ذکر است یک شبکه با هر تعداد تجهیزات به مانیتورینگ نیاز دارد زیرا ممکن است در نگاه اول شبکه دارای هیچ گونه اختلالی نباشد و به طور عادی به کار خود ادامه دهد ولی مانیتورینگ شبکه ممکن است مشکلاتی را مشاهده و گزارش کند که باعث افزاش عملکرد شبکه، کاهش هزینه های نگهداری تجهیزات شبکه، کاهش فعالیت های نیروی انسانی و در نهایت تضمینی برای آینده آن شبکه شود.

 


 

بیشتر بخوانید: مدل OSI چیست؟ تفاوت مدل OSI و TCP/IP

 


اجزاء اصلی پروتکل SNMP چیست؟

پروتکل SNMP

اجزاء اصلی پروتکل SNMP که شامل:

ـ 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 ها قرار می دهد.

 

ـ Management Information Base (MIB):

یک MIB یک پایگاه داده متنی است که فهرست پارامتر های قابل مانیتورینگ روی دستگاه را مشخص می کند و زبان مشترک بین Agent و Manager است، شاید بتوانیم بگوییم فایل های MIB مجموعه ای از سوالاتی است که یک NMS می تواند از دستگاه تحت مانیتورینگ بپرسد. MIB ها به دو دسته Public و Private تقسیم می‌شوند که:

  • MIB های Public در تمام دستگاه ها قالب یکسانی دارند و پشتیبانی می‌شوند.
  • MIB های Private توسط کمپانی یا شرکت سازنده دستگاه ها ارائه می شوند و فقط در دستگاه های آن ها وجود دارد.

 

ـ (SNMP OID) Object Identifier:

Object Identifier (OID) با رشته‌هایی از اعداد که با نقطه از هم جدا شده‌اند قابل شناسایی هستند. دو نوع managed objects وجود دارد:

ـScalar: اشیایی که توسط یک نمونه شی تعریف می شوند (یعنی فقط یک نتیجه می تواند وجود داشته باشد.)
ـ Tabular: اشیاء تعریف شده توسط چندین نمونه شیء مرتبط که در جداول MIB گروه بندی شده اند.
MIB ها ، OID ها را به صورت سلسله مراتبی سازماندهی می کنند، که می توانند در یک ساختار درختی که دارای شناسه های متغیر جداگانه برای هر OID، نشان داده شوند. این ساختار درختی شامل تمام ویژگی های قابل کنترل همه محصولات مرتب شده در آن است. هر شاخه از این درخت دارای یک شماره و یک نام است و هر نقطه بر اساس مسیر کامل – از بالای درخت به پایین – که به آن نقطه منتهی می شود ، نامگذاری شده است.

پروتکل SNMP

آشنایی کلی با دستورهای ابتدایی در پروتکل SNMP:

در این پروتکل از دستورات پایه استفاده می شود که ما در این بخش قصد داریم آن ها را به شما معرفی کنیم:

ـ دستور Read:

با استفاده از این دستور می توان تجهیزاتی که مدیریت شده اند را با استفاده از NSM مشاهده کرد.

ـ دستور Write:

با استفاده از این دستور و البته با کمک NSM می توان متغیرهایی که در تجهیزات مدیریت شده قرار دارند را تغییر داد.

ـ دستور Trap:

در صورتی که قصد داشته باشید تجهیزات مدیریت شده را وادار کنید که گزارشات رخدادهای خود را به صورت غیر همزمان به NSM ارسال کنند باید از این دستور برای این کار استفاده کنید.

 

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

پروتکل SNMP

SNMP TRAP رویدادی است که توسط یک دستگاه تولید و ارسال می شود و هر زمان که تغییر وضعیت یا ناهنجاری تشخیص داده شود توسط گیرنده Trap دریافت می شود. این پیام های  تولید شده دستگاه ها توسط یک سیستم مدیریت شبکه دریافت می شود.

این بدان معناست که عیب یابی به صورت خودکار انجام می شود و هر چیزی که بلافاصله شکست بخورد به شما اطلاع داده می شود. این پیامها عموماً رمزگذاری می شوند و برای رمزگشایی آنها به یک پردازنده تله نیاز است.

دستورات پایه SNMP:

سادگی در تبادل اطلاعات، SNMP را به عنوان یک پروتکل پذیرفته شده تبدیل کرده است. دلیل اصلی مجموعه مختصر دستورات است، که در زیر به آنها اشاره می شود:

ـ GetRequest: این متداول ترین پیام SNMP است که مدیر SNMP برای درخواست داده ارسال می کند. دستگاه مورد نظر با پیغام Response مقدار درخواست شده را برمی گرداند.

ـ GetNextRequest: این عملیات مشابه GET است. مدیر SNMP می تواند این نوع پیام را برای اطلاع از اطلاعات موجود در دستگاه ارسال کند. با شروع از OID 0، مدیر می تواند درخواست ارسال داده های بعدی موجود را تا زمانی که دیگر اطلاعات بعدی وجود نداشته باشد، ارسال کند. به این ترتیب، کاربران می توانند تمام داده های موجود را در یک دستگاه خاص کشف کنند، حتی اگر از سیستم یا دستگاه پاسخگو اطلاع قبلی نداشته باشند. تفاوت مهم این است که عملیات GET NEXT مقدار OID بعدی را در درخت MIB بازیابی می کند.

ـ GetBulkRequest: این به SNMP نسخه 2 اضافه شده است، که جدیدتر و بهینه شده تر از GetNextRequest است. پاسخ درخواست شده به اندازه مجاز درخواست خواهد بود. در اصل، این راهی است برای انجام چندین GetNextRequests به طور همزمان، که به کاربران امکان می دهد لیستی از همه داده ها و پارامترهای موجود ایجاد کنند. عملیات GETBULK برای بازیابی داده های حجیم از جدول MIB بزرگ استفاده می شود.

ـ SET: این یک فرمان مبتنی بر مدیر برای تنظیم یا تغییر مقدار یک پارامتر از طریق SNMP در دستگاه یا سیستم عامل است. از این نوع پیام می توان برای مدیریت یا به روز رسانی تنظیمات پیکربندی یا سایر پارامترها استفاده کرد. اما مراقب باشید! یک SetRequest نادرست ممکن است به سیستم ها و تنظیمات شبکه آسیب جدی برساند.

ـ Response: پیامی است که نماینده دستگاه بر اساس درخواست مدیر ارسال می کند. هنگامی که در پاسخ به نوع GetRequest ارسال می شود، بسته شامل داده ها یا مقادیر درخواست شده است. در مورد SetRequest، بسته با مقدار تنظیم شده پاسخ می دهد تا تأیید شود که SetRequest با موفقیت انجام شده است.

ـ TRAPS: 

یک Trap توسط نماینده SNMP ارسال می شود بدون درخواست مدیر. در عوض، Trap ها با شرایط تعیین شده ، مانند در صورت بروز خطا، یا هنگام عبور از یک آستانه از پیش تعیین شده ارسال می شوند. اگر کاربران می خواهند از تله هایی برای نظارت بهره مند شوند، که از نظر نظارت پیشگیرانه ایده ای عالی است، ممکن است مجبور شوند ابتدا تله ها را با کمک مدیر SNMP پیکربندی کنند. برخلاف دستورات فوق که از مدیر SNMP آغاز می شود، TRAPS توسط Agents آغاز می شود. این یک سیگنال به مدیر SNMP توسط Agent در مورد وقوع یک رویداد است.

ـ InformRequest: این دستور مشابه TRAP است که توسط Agent راه اندازی شده است، علاوه بر این INFORM شامل تأیید مدیر SNMP در هنگام دریافت پیام است.

ـ Report: برای استفاده از پیام های گزارش SNMP v3 مورد نیاز است. آنها به مدیر SNMP اجازه می دهند تعیین کند که چه نوع مشکلی توسط عامل SNMP از راه دور شناسایی شده است. بر اساس خطای شناسایی شده ، موتور SNMP ممکن است سعی کند یک پیام SNMP تصحیح شده را ارسال کند. اگر این امکان پذیر نیست، ممکن است نشانه ای از خطا را به برنامه ای که درخواست SNMP ناموفق از طرف آن صادر شده است ارسال کند.

 

نسخه های مختلف پروتکل SNMP:

پروتکل SNMP

این پروتکل دارای چند نسخه است.

ـ SNMP V1:

امنیت این ورژن از پروتکل SNMP بسیار پایین است. هنگامی که ارسال جواب از سمت SNMP Agent به NMS در حال انتقال است، به راحتی می توان جواب را تغییر داد تا NMS (مثلا PRTG) جواب تغییر یافته توسط ما را دریافت کند. در واقع این نسخه فقط community-based است.

 

ـ SNMP V2:

این ورژن پروتکل SNMP شامل دو نوع است که در مجموع امنیت بهتری از ورژن 1 دارد:

  • SNMPv2c : نسخه ای از ورژن 2 است که فقط community-based است.
  • SNMPv2u : نسخه ای از ورژن 2 است که فقط user-based است. یعنی می‌توانید جهت احراز هویت، نام کاربری تعریف کنید.

نکته: این ورژن مشکل امنیتی ورژن 1 را حل کرده است. در این ورژن می‌توانید به جای ارتباط Read-Write به Read-Only بهره ببرید تا دیتاها توانایی تغییر نداشته باشند.

ـ SNMP V3:

این ورژن ایمن ترین کامل ترین و همچنین پر دردسر ترین ورژن پروتکل SNMP است. در SNMPv3 بسته ها کاملا Encrypt (رمزنگاری) می شوند. همچنین user-based است و NMS نیاز به رمز برای احراز هویت دارد.

 

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

پاسخ به این سوال بستگی به محیط شبکه شما دارد، برای مثال:

  • اگر شبکه شما از طریق اینترنت قابل دسترسی است، شاید باید به SNMPv3 توجه کنید، چون از نظر امنیت بسیار بهتر است، اما باید این را هم در نظر بگیرید که رمز نگاری و ارتقاء امنیت روی این نسخه تا حدودی موجب افزایش بار کاری دستگاه ها و در نتیجه پایین آمدن سرعت (Performance) می شود.
  • اگر شبکه شما به خوبی توسط فایروال ها محفوظ شده است، استفاده از نسخه های SNMPv1 و SNMPv2 ممکن است کافی باشد.
  • از نقطه نظر مانیتورینگ، مثلا برای مانیتورینگ دستگاه ها از پروتکل SNMPv2 استفاده کنید که زمان اسکن پایین تری دارد و از شمارنده های 64bit پشتیبانی می کند.

 

چرا به ابزارهای نظارت SNMP نیاز دارید؟

پروتکل SNMP

مدیران شبکه عموماً دستگاه های موجود در یک شبکه را مدیریت می کنند و پورت ها و رابط ها را اختصاص داده و آزاد می کنند تا از عملکرد مداوم و بدون پهنای باند در شبکه اطمینان حاصل شود. نظارت دقیق بر دستگاه های SNMP بخش مهمی از این امر است.

ابزارهای نظارت SNMP برای موارد زیر ضروری است:

ـ کشف، نظارت و مدیریت خودکار دستگاه های شبکه
ـ کنترل معیارهای کلیدی عملکرد را در سطح دستگاه و رابط
ـ مشاهده و دقت کامل در عملکرد دستگاه های شبکه
ـ پیکربندی محدوده آستانه و ایجاد هشدار در صورت ناهنجاری

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

 

ارتباطات SNMP معمولی:

پیامهای SNMP ، از آنجا که بخشی از مجموعه IP TCP⁄ هستند، توسط پروتکل اطلاعات کاربر (UDP) بسته بندی و منتقل می شوند. تصویر زیر نمونه ای از چنین ارتباطی است.

پروتکل SNMP

 

نحوه پیکربندی SNMP:

دراین بخش نحوه پیکربندی Simple Network Management Protocol(SNMP) را در روترهای سیسکو، RSM ها و سوئیچ‌های Catalyst توضیح می‌دهیم.

1ـ ابتدا وارد enable mode می شویم. سپس با دستور اطلاعات مربوط به SNMP را مشاهده می کنیم:

Router>enable

#Router

Router#show running-config

Building configuration…

….

….

اگر اطلاعاتی از SNMP موجود نیست، به این معنی است که SNMP فعال نشده است و اگر هر یک از دستورات SNMP لیست شده بود، می توانید آنها را تغییر یا غیرفعال کنید.

2ـ به مود config می رویم و تنظیمات SNMP را اعمال می کنیم:

Router#configure terminal

Router(config)#

 

برای راه اندازی SNMP شما می توانید یک community string برای خود در نظر بگیرید.

در روترها و سوئیچ های سیسکو این رشته ها به صورت پیش فرض:

ـ public برای read-only

ـ private برای read-write

ـ secret برای read-write-all

برای توضیح community آن را مانند یک توکن یا پسورد در نظر بگیرید، زمانی که درخواست SNMP به دستگاه می رسد می تواند تشخیص دهد که این درخواست مجاز هست یا نه.

از این دستور برای فعال کردن یک رشته ی فقط خواندنی(RO) استفاده کنید:

Router(config)#snmp-server community public RO

این یک دستور community string یا همان پسورد برای ارتباط read بر روی روتر تعریف خواهد کرد که در این مثال mrshabake تعیین شده است.

Router(config)#snmp-server community mrshabake RO

 

برای فعال کردن یک رشته ی Read-Write (RW) از این دستور استفاده کنید:

 

Router(config)#snmp-server Community private RW

به عنوان مثال با community string خودمان :

Router(config)#snmp-server Community mrshabake RW

این دستور یک community string یا همان پسورد برای ارتباط Read و Write بر روی روتر تعریف خواهد کرد که در این مثال mrshabake تعیین شده است.

لازم به ذکر است برای سیستم مانیتورینگ، یک Community فقط خواندنی (read-only) کافی است.

3ـ از دستور snmp–server host برای مشخص کردن هاستی که SNMP را دریافت می کند استفاده می کنیم.

 

Router(config)#snmp-server host <ip-address> <community-string>

در اینجا “ip-address” آدرس IP، Server SNMP و “community-string” رشته ی به کار برده شده است.

Router(config)#snmp-server host 172.16.25.40 mrshabake

 

4ـ پیکربندی SNMP Trap. در صورتی که Trap بر روی SNMP Agent پیکربندی شود در این حالت دستگاه SNMP Agent قادر به ارسال وقایع و رویدادها به سمت NMS خواهد بود. برای پیکربندی SNMP Trap بر روی روتر از دستور زیر استفاده نمایید.

Router(config)#snmp-server enable traps

پس از اجرای این دستور، SNMP traps به طور خودکار به SNMP Server پیکربندی شده در مرحله قبل ارسال می شود. این دستور همه انواع trap ها را روشن می کند. همچنین شما می توانید trap های خاصی را با الحاق ان ها به دستور بالا روشن کنید و به سمت SNMP Server بفرستید.

Router(config)# snmp-server enable traps snmp linkdown linkup

این دستور باعث فعال شدن Trap بر روی روتر یا سوئیچ برای ارسال وقایع مربوط به فعال شدن و غیر فعال شدن اتصالات به SNMP Server خواهد بود.

Router(config)# snmp-server enable traps snmp authentication

با دستور exit از مود کانفیگ خارج شوید و تنظیمات را با دستور “write memory” یا “copy running config startup config” ذخیره کنید.

Router#write memory

Building configuration…

[OK]

Router#

————————————————

برای بررسی اتصال TCP/IP بین سرور SNMP و روتر دستور ping را اجرا کنید و روتر را پینگ کنید:

C:\>ping 172.16.25.3

 

Pinging 172.16.25.3 with 32 bytes of data:

Reply from 172.16.25.3: bytes=32 time<10ms TTL=247

Reply from 172.16.25.3: bytes=32 time=10ms TTL=247

Reply from 172.16.25.3: bytes=32 time<10ms TTL=247

Reply from 172.16.25.3: bytes=32 time<10ms TTL=247

Ping statistics for 172.16.25.3:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 0ms, Maximum =  10ms, Average =  2ms

 

غیر فعال کردن SNMP:

با قرار دادن no در اول دستور،  SNMP را غیرفعال می کنیم:

Router(config)#no snmp-server community mrshabake RO

Router(config)#no snmp-server Community mrshabake RW

 


 

بیشتر بخوانید: تفاوت میان SFlow ،SNMP و NetFlow

 


منبع: ?What is SNMP

 

شما می توانید کلیه تجهیزات شبکه مورد نیاز خود را از برزگترین فروشگاه اینترنتی تجهیزات شبکه (مسترشبکه) با بهترین قیمت و کیفیت همراه با گارانتی معتبر خریداری نمایید.
محصول با موفقیت به سبد خرید اضافه شد.