پروتکل Simple Network Management Protocol (SNMP) چیست؟
پروتکل SNMP روشی است که با آن دستگاههای مختلف شبکه میتوانند اطلاعات را با یکدیگر به اشتراک بگذارند. این پروتکل این امکان را برای دستگاهها فراهم میکند که حتی در صورت وجود سختافزار متفاوت و اجرای نرمافزارهای مختلف، دستگاهها بتوانند با یکدیگر ارتباط برقرار کنند.
بدون پروتکلی مانند SNMP، هیچ راهی برای ابزارهای مدیریت شبکه جهت شناسایی دستگاهها ، نظارت بر عملکرد شبکه، پیگیری تغییرات شبکه یا تعیین وضعیت دستگاههای شبکه در زمان واقعی real time وجود ندارد.
Paul Querna در سال 2003 پروتکل SNMP را خلاصه کرد. او در حال نوشتن این موضوع بود که چگونه میتوان از این پروتکل برای جمعآوری اطلاعات شبکه به راحتی استفاده کرد، اما این موضوع همچنان به نظر پیچیده میرسد.
در ادامه در مورد نقش SNMP در مدیریت شبکه، نسخههای مختلف SNMP موجود و نحوه استفاده موثر و ایمن از SNMP در شبکه بحث شده است.
معماری SNMP
SNMP معماری سادهای مبتنی بر مدل کلاینت سرور دارد. این سرورها، اطلاعات مربوط به دستگاههای موجود در شبکه را جمعآوری و پردازش میكنند. سرویس گیرندههایی که کلاینت نامیده میشوند، هر نوع دستگاه یا جزئی هستند که به شبکه متصل هستند. آنها میتوانند نه تنها کامپیوتر بلکه سوئیچ شبکه، تلفن، چاپگر و غیره نیز باشند. بعضی از دستگاهها ممکن است چندین مولفه یا دستگاه داشته باشند. به عنوان مثال، یک لپتاپ معمولاً شامل یک رابط شبکه بیسیم است.
سلسله مراتب دادههای SNMP
اگرچه معماری SNMP ساده است، اگر با آن آشنا نباشید، سلسله مراتب دادهای که پروتکل استفاده میکند پیچیده به نظر میرسد. خوشبختانه، وقتی فلسفه پشت آن را بفهمید، نسبتاً ساده است. SNMP برای تأمین انعطافپذیری و توسعهپذیری نیازی به دستگاههای شبکهای ندارد که دادهها را در یک قالب ثابت تبادل کنند. در عوض، از قالب tree-like استفاده میکند که تحت آن دادهها همیشه برای جمعآوری مدیران در دسترس است.
درخت داده data tree از چندین جدول تشکیل شده است شاخههایی وجود دارد که به آنها پایگاه اطلاعات مدیریت Management Information Bases یا MIB گفته میشود. MIBها انواع خاصی از دستگاه ها یا اجزای دستگاه را با هم گروه میکنند. هر MIB دارای یک شماره شناسایی منحصر به فرد و همچنین یک رشته شناسایی است. از اعداد و رشته ها میتوان به جای یکدیگر استفاده کرد (دقیقاً مانند آدرس IP و نام میزبان)
هر MIB از یک یا چند گره تشکیل شده است که نمایانگر دستگاههای جداگانه یا اجزای دستگاه در شبکه هستند. به نوبه خود، هر گره دارای یک شناسه منحصر به فرد Object Identifier یا OID است.
OID برای یک گره مشخص شده توسط شناسه MIB که روی آن وجود دارد همراه با شناسه گره در MIB آن تعیین میشود.
این بدان معنی است که OIDها به صورت مجموعهای از اعداد یا رشتهها در میآیند (دوباره میتوانید از این موارد به جای یکدیگر استفاده کنید). به عنوان مثال 1.3.6.1.4.868.2.45.1.2.1 است.
با استفاده از OID، یک مدیر میتواند با استفاده از یک کلاینت، اطلاعات مربوط به یک دستگاه را در شبکه پیدا کند.
به عنوان مثال، اگر مدیر بخواهد بداند آیا رابط کاربری روشن است، ابتدا از رابط MIB (که IF-MIB نامیده میشود) سوال میکند، سپس مقدار OID را که نشان دهنده وضعیت عملیاتی است بررسی میکند تا آیا روشن بودن رابط مشخص شود.
چرا باید از OID استفاده کرد؟
سلسله مراتب دادههای MIB و OID ممکن است گیج کننده به نظر برسد، اما چندین مزایا برای سیستمهایی مهم مانند این وجود دارد. یکی این که اطلاعات بدون نیاز به ارسال صریح درخواست جمع آوری توسط مدیر، قابل دسترسی است. این موضوع باعث کاهش سربار و اطمینان از دسترسی آسان اطلاعات در مورد وضعیت شبکه میشود.
این سیستم همچنین روشی آسان و انعطافپذیر برای سازماندهی بسیاری از دستگاهها در سراسر شبکه فراهم میکند.
SNMP همچنین امکان جمعآوری سریع اطلاعات با حجم زیاد بدون ایجاد ترافیک را فراهم میکند. از آنجا که اطلاعات مربوط به وضعیت دستگاه همیشه در یک قالب ساده در دسترس است و در زمان واقعی real-time به روز می شود، مدیران می توانند بدون انتظار برای جمعآوری دادهها یا نیاز به انتقال دادهها ، آن را درخواست کنند.
نکته آخر اینکه، لازم به ذکر است که برخی از مقادیر OID مختص فروشنده است، به همین دلیل به راحتی میتوانید برخی از اطلاعات را بر اساس OID دستگاه دریافت کنید. . به عنوان مثال، اگر OID با 1.3.6.1.4.1.1.9 شروع شود، برای دستگاههای سیسکو اعمال میشود. سایر فروشندگان مشخصات OID خود را دارند. (Wireshark، اسکنر شبکه منبع باز، ابزاری مفید برای جستجوی OID را ارائه میدهد.) پیشوند استاندارد OID، که تقریباً برای هر دستگاهی که از SNMP پشتیبانی میکند قابل استفاده است ، 1.3.6.1.2 است.
نسخههای SNMP
آخرین نکته مهمی که باید در مورد SNMP درک کنید این است که ویژگیهای موجود در نسخههای مختلف پروتکل بسیار متفاوت است، خصوصاً در مورد امنیت.
اولین نسخه SNMP – SNMPv 1 ویژگیهای امنیتی ضعیفی را ارائه میدهد. تحت SNMPv 1، مدیران هنگام درخواست اطلاعات میتوانند بدون رمزگذاری به عوامل احراز هویت کنند. این بدان معناست که هر کسی که به شبکه دسترسی داشته باشد میتواند برای رهگیری اطلاعات مربوط به شبکه، نرمافزار sniffing را اجرا کند. همچنین بدان معنی است که یک دستگاه غیر مجاز میتواند هنگام کنترل شبکه به راحتی خود را یک مدیر قانونی معرفی کند.
همچنین، 1 SNMPv از گواهی نامههای پیش فرض خاصی استفاده میکند که در آن مدیران همیشه به روز نمیشوند و دسترسی به اطلاعات حساس شبکه را برای اشخاص غیر مجاز آسان میکند. متأسفانه امروز نیز از SNMPv 1 نسبتاً به طور گسترده استفاده میشود زیرا برخی از شبکهها هنوز به روز نشدهاند.
SNMPv2 ، که در سال 1993 ایجاد شد، برخی از پیشرفتهای امنیتی را ارائه می دهد اما در سال 1998 توسط SNMPv 3 جایگزین شد، که آخرین نسخه پروتکل و ایمنترین آن باقی مانده است. SNMPv3 رمزگذاری دادهها را ممکن میکند. همچنین به مدیران اجازه میدهد تا احراز هویتهای مختلف را به طور دقیق برای مدیران و نمایندگان تعیین کنند. از احراز هویت غیرمجاز جلوگیری میکند.
نکته اصلی این است که، در حالی که مشکلات امنیتی SNMPv1 باعث نام ناخوشایند SNMP در برخی محافل شده بود، SNMPv2 و به ویژه SNMPv3 این مشکلات را برطرف کرد. نسخههای جدید SNMP روشی به روز و ایمن برای نظارت بر شبکه ارائه میدهند.