معرفی پروتکل SMTP

 در این مقاله قصد داریم با یکی از پرکاربرد ترین پروتکل های شبکه آشنا شیویم . تمامی نرم افزارهایی که قرار است اطلاعات را از یک کلاینت دریافت و پردازش کنند، نیاز دارند که از روش هایی این اطلاعات را دریافت نمایند. Simple Network Management Protocolیا همان SNMP پروتکل مشهور و پرکاربرد برای این کار و مدیریت شبکه است. از SNMP برای جمع آوری اطلاعات مربوط به کانفیگ ها و تجهیزات شبکه مانند سرورها، پرینترها، سوییچ ها و روترها، بر اساس یک IP، استفاده می شود.

SNMP در واقع یک پروتکل لایه Application است که برای تبادل اطلاعات مدیریتی بین تجهیزات شبکه استفاده می شود. این پروتکل بخشی از همان پروتکل TCP/IP می باشد. SNMPیکی از پروتکل های بسیار ارزشمند و پرکاربرد برای مدیریت و مانیتور عناصر و تجهیزات شبکه های LAN به کار می رود.

بطور کلی نحوه کار SNMP بدین شکل است که یک agent (ویژگیست که روی کلاینت ها نصب و فعال شده تا اطلاعات کلاینت را جمع آوری کرده و به سرور بفرستد) اطلاعات کلاینت ها را به SNMP Manger (همان سروری که قرار است اطلاعات کلاینت ها را از agent دریافت کرده و به نرم افزار مانیتورینگ تحویل بدهد) ارسال کرده و مانیتور می کند. 

سه نسخه از این پروتکل موجود است که عبارتند از :

SNMPV1
SNMPV2
SNMPV3
هر سه ورژن، دارای یک سری مشخصات مشترک هستند. البته باید افزود نسخه شماره سه بسیار ایمن تر از نسخه های دیگر است.

اجزای اصلی و ویژگی های SNMP 

در شبکه، عموما یک یا چندین کامپیوتر از وظیفه مدیریت یا مانیتور تجهیزات را به عهده دارند (مانند سرور مانیتورینگ) که به آنهاSNMP Manager گفته می شود. در واقع هر تجهیز و کلاینتی که شما می خواهید آن را مدیریت و مانیتور کنید، ویژگی به نامagent را روی آن فعال کرده تا اطلاعات را از طریق پروتکل SNMP به SNMP Manager ارسال کند. وظیفه SNMP Manager، دریافت اطلاعات و query از agent، تعیین متغیرهای مورد نظر خود و اعلام وقایع و تغییرات به agent است.

Agent نیز برنامه و ویژگی است که درون تجهیزات شبکه قرار دارد و می بایست فعال شود. فعال سازی آن باعث می شود تا اطلاعات مدیریتی کلاینت را بصورت local جمع آوری کرده و آنها را برای ارسال به SNMP Manager آماده کند، تا هر زمان SNMP Manager درخواست کرد، پاسخگو باشد. البته این agent می تواند استاندارد بوده (مانند Net-SNMP) یا مربوط به شرکت خاصی (مانند HP insight agent) باشد.

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

ناظر شبکه(مدیر): یک کنسول مدیریت،که گاهی اوقات مدیر  Management Console نامیده میشود، نوعی مرکزیت برای مدیریت تجهیزات حاضر در شبکه فراهم میسازد.ناظر شبکه معمولا یک کامپیوتر معمولی با نرم افزار ضروری مدیریت SNMP است.

گره ها: یا همون node در اصطلاح به تجهیزات حاضر در شبکه گفته میشوند.

اجتماع: گروهی از گره ها در یک چارچوب مدیریتی مشترک.

 بنابراین، بطور کلی وظایف agent در موارد زیر خلاصه می شود:

جمع آوری اطلاعات مدیریتی درباره محیطی که در آن قرار دارد

ذخیره و بازبابی اطلاعات مدیریتی به عنوانMIB (در ادامه توضیح داده می شود)

علامت دادن بهSNMP Manager در صورت بروز هر تغییر یا اتفاقی در کلاینت

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

در واقع یک SNMP Manager می تواند، انواع اطلاعات زیر را از agent درخواست کرده و مانیتور کند:

آمار و تشخیص هویت پروتکل شبکه

یافتن تجهیزات متصل به شبکه

اطلاعات پیکربندی نرم افزاری و سخت افزاری

آمار کارکرد و میزان کارایی تجهیز

پیام های خطا وevent ها

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

 

مفهوم Management Information Base (MIB)

MIB مجموعه ای اطلاعات است که برای مدیریت عناصر موجود در شبکه استفاده می شود. MIB ها object های مدیریت شده ای را که SNMP manager نیاز داشته و می خواهد مانیتور کند، ایجاد می کنند. هنگامی که SNMP manager اطلاعات را ازagent درخواست می کند، SNMP agent اطلاعات مورد درخواست را از MIB بازیابی می کند. به زبان ساده، تمامی اطلاعاتی که قرار است SNMP manager از agent دریافت کرده و مانیتور کند، در این MIB ها ذخیره می شوند.

هر سیستمی در شبکه  (کامپیوترها، سرور، روتر و غیره) یک MIB داشته که وضعیت منابع مدیریت شده را روی سیستم نشان می دهد، مانند ورژن نرم افزاری که روی آن دستگاه نصب شده است، IP هر پورت یا interface، میزان فضای آزاد هارد و یا تعداد فایل های در حال اجرا. MIB اطلاعات ثابت را در خود ذخیره نمی کند، اما در عوض وابسته به object هاست؛ دیتابیس پویایی داشته که مجموعه منطقی از تعاریف موارد مدیریت شده دارد. به زبان ساده، MIB فقط اطلاعاتی را در خود ذخیره می کند که قابل تغییر هستند، همچنین MIB ها نوع اطلاعات هر object مدیریت شده را تعریف می کنند.

پیام های SNMP

همانطور که می دانید، در SNMP نیز تعدادی پیام بین SNMP manager و agent رد و بدل می شود. یک پیام SNMP شامل یکSNMP protocol data unit (PDU) و عناصر مربوط به header آن پیام است. یک SNMP agent در دو صورت اطلاعات را ارسال می کند:

هنگامی که می خواهد به درخواستSNMP manager پاسخ دهد

هنگامی که یکtrap event رخ می دهد

فرامین پایه در SNMP

تجهیزات مدیریت شده، توسط چهار فرمان اصلی كنترل می شوند كه این چهار فرمان عبارتند از :

Read: با این فرمان NMS تجهیزات مدیریت شده را مانیتور می كند و متغییرهای گوناگونی را كه توسط تجهیزات مدیریت شده نگهداری می شوند را امتحان یا بازرسی میكند.
Write: با این فرمان NMS تجهیزات مدیریت شده را كنترل می كند و مقادیر متغییرهای ذخیره شده در تجهیزات مدیریت شده را تغییر می دهد.
Trap: با این فرمان تجهیزات مدیریت شده به صورت غیر هم زمان رخدادها را برای NMS گزارش می كنند. در واقع وقتی واقعه ای رخ می دهد؛ به ازای هر رخداد، یك Trap از طرف تجهیزات كنترل شده به سمت NMS ارسال می شود.
Traversal Operation: با این فرامین پیمایشی، NMSتصمیم می گیرد كه كدام یك از متغییرهای یك تجهیز مدیریت شده، پشتیبانی شود و به صورت متوالی اطلاعات را در داخل جداول متغییرها جمع آوری می كند. (مانند جدول مسیریابی Routing Table )

 

 

 

SNMP V1

اولین نسخه از SNMP می باشد که به همراه ساختار اطلاعات مدیریتی مربوطه (SMI) و به ترتیب در RFC 1155 و RFC 1157مورد بررسی قرار گرفته است.

SNMP V1 روی پروتکل هایی نظیر موارد زیر استفاده می شود:

UDP: user datagram protocol
IP: internet protocol
IPX: novel internet packet exchange
DDP: apple talk datagram protocol
CLNS: OSI connectionless network service

این پروتكل به صورت گسترده و به عنوان یك پروتكل مدیریتی در ارتباطات اینترنتی مورد استفاده قرار می گیرد. SMI‌نیز با استفاد ه از ASN.1 قوانینی را جهت بررسی اطلاعات مدیریتی ارائه میدهد.



SMI دارای سه مشخصه كلیدی است:

انواع داده با نماد سازمانی ASN.1 ( ASN.1 data types )

سه نوع از انواع داده عبارتند از :
نام(Name) كه به صورت Object ID استفاده می شود.
تركیب (Syntax) كه نوع داده موضوع را معین می كند، مانندInteger/string
رمزگذاری (encoding) تشریح می كند كه چگونه اطلاعات مربوط به یك موضوع مدیریت شونده، به صورت یك سری از آیتم هایdata ‌شكل دهی شده و برای انتقال روی شبكه مورد استفاده قرار می گیرد.
انواع داده وی‍‍‍‍ژه (SMI- specific data types)

به دو دسته تقسیم می شوند:
انواع داده ساده (simple data types)که سه نوع داده ساده داریم و همگی دارای مقادیر واحدند:
نوع داده integrate در رنجی از -2,147,483,648 تا +2,1447,483,647
نوع داده octet stringدر رنجی از 65,535~0
نوع داده object ID که مجموعه هایی از تمام ID هایی هستند که براساس قوانین موجود در ASN.1 در نظر گرفته شده اند.
انواع داده با کاربر وسیع ( Application- wide data types ) که هفت نوع داده با کاربر وسیع داریم:
نوع دادهnetwork address که برای نمایش یک آدرس از یک پروتکل خاص استفاده می شود. البته باید توجه داشت که درSNMP V1 تنها آدرس های 32 بیتی پشتیبانی می شوند.
نوع دادهCounter که به صورت اعداد صحیح مثبت اند و شماره آنها افزایش می یابد تا به مقدار ماکزیمم خود برسد و سپس به صفر بر می گردد و باید توجه داشت که در SNMP V1، سایز کانتر ها 32 بیتی است.
نوع داده gauges که اعداد صحیح مثبت هستند و مقدار آنها افزایش یا کاهش پیدا می کنند، ولی همیشه مقدار ماکزیمم خود را حفظ می کنند.
نوع داده time ticks که برای نمایش برخی رخدادها تا یک صدم ثانیه استفاده می شوند .
نوع داده opaque(مبهم) که برای نمایش یک رشته اطلاعات رمز نگاری قضاوتی شده (arbitrary encoding) که با نوع داده های SMIمطابقت ندارد، استفاده می شود.
نوع داده Integrateبرای نمایش اطلاعاتی که دارای مقادیر صحیح اند.
نوع داده unsigned integrateبرای نمایش اطلاعاتی که دارای مقادیر غیر صحیح اند.
جداول MIB ( SNMP MIB table )
در این جدول می توان با فرامین SET,GET NEXT, GET به یک سطر مورد نظر دسترسی پیدا کرد.

فرمان های پروتکل SNMP V1

SNMP یک پروتکل ساده پرسش/ پاسخ سیستم مدیریت شبکه NMS یک درخواست می فرستند و تجهیزات مدیریت شده پاسخ مربوطه را بر می گردانند. این رفتار توسط چهار فرمان GET, GET NEXT, SET, TRAP اجرا می شود:

فرمانGET توسط NMSبرای بازیابی مقدار object instanceهای یک agent استفاده می شود. در واقع کارگزار (agent) در پاسخ به فرمان GET مقادیر مربوط به Object instance ها را در یک لیست تهیه می کند.
فرمان GET NEXT توسط NMS برای بازیابی مقدار Object instance های بعدی در یک جدول و یا لیست استفاده می شود.
فرمانSET توسط NMSبرای ست کردن یا قرار دادن مقادیر Object instance در جدول یا لیست یک کارگزار استفاده می شود
فرمان Trap توسط کارگزار برای آگاهی دادن به NMS از وقوع یک رخداد مهم و معنی دار بطور غیر هم زمان استفاده می شود.

SNMP V2

SNMP V2 در واقع توسعه تدریجی SNMP V1 است که براساس استانداردهای اینترنت در سال 1993 تهیه شده است و به لحاظ تئوری یک سریOperation های اضافی را ارائه می کند.