نگاهي دقيق به ساختار پروتکل SNMP

 

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

ساختار پروتکل SNMP

مقدمه

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

  • SNMP V1
  • SNMP V2
  • SNMP V3

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

یك شبكه مدیریت مبتنی برSNMP شامل سه عنصر كلیدی است :

عناصر اصلی در SNMP

  1. سیستم مدیریت شبكه ( Network Management System NMS)
  2. كارگزاران ( Agent)
  3. تجهیزات مدیریت شده ( Managed devices)

هر یک از تجهیزات شبکه که می بایست مدیریت شوند (Managed Devices) ، در واقع یک نود از شبکه هستند که دارای یک(Agent) درون خود می باشند. این تجهیزات اقدام به جمع آوری و ذخیره سازی اطلا عات می كنند و سپس این اطلاعات را در اختیار NMS قرار میدهند . این تجهیزات گاهی اوقات عناصر شبكه نیز نامیده می شوند كه می توانند تجهیزاتی از قبیل روترها،سوئیچها، Bridge ها، Hubها، كامپیوتر ها و پرینتر ها باشند.

به عبارت دیگر می توان گفت هر یک از اجزاء شبکه که از پروتکل SNMP پشتیبانی کرده و می توان از آنها با استفاده از NMS ها به واسطه پروتکل SNMP اطلاعات دریافت نمود، یک Managed Device خوانده می شود.

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

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

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

(MIB) پایگاه اطلاعات مدیریتی در SNMP

MIB در واقع مجموعه ای از اطلاعات است كه به صورت سلسله مراتبی سازماندهی شده است و از پروتكل های مدیریتی از قبیل SNMP‌ استفاده می كند. MIBها شامل موضوعات مدیریت شده (Objects) هستند كه توسط شناسه های Object Identifier مشخص می شوند. یك موضوع مدیریت شده كه گاهی اوقات MIB نامیده می شود، در واقع یكی از مشخصه های تجهیزات مدیریت شده است. دو نوع موضوع مدیریت شده وجود دارد:

  1. Scalar Object
  2. Tabular Object

موضوعات Scalar یك نمونه موضوع واحد را تعریف می كنند، ولی موضوعاتTabular ‌چندین موضوع به هم پیوسته و مرتبط كه به صورت گروهی در جداول MIB قرار دارند را تعریف می كنند. برای مثال تعداد پكتهای ورودی Apple Talk به یك اینترفیس از یك روتر با atln put معین می شود كه یك موضوعScalar است و یك نمونه موضوع واحد را نشان می دهد. در سلسه مراتب MIB، هر موضوع برای شناسایی دارای یك شناسه Object ID است. سلسه مراتب MIB بصورت یك درخت ( Nameless route ) شرح داده می شود. شكل زیر سطوح واگذار شده توسط سازمانهای مختلف را در درخت MIB نشان می دهد.

Object IDهایی بالاترین سطح، به سازمان های استاندارد سازی مختلف متعلق اند و Object IDهای سطوح پایینتر به سازمانهای وابسته آن اختصاص می یابند. فروشندگان می توانند شعبات و یا شاخه هایی را تعریف کنند كه شامل موضوعات مدیریت شده برای تولیدات خودشان است و MIBهایی كه استاندارد نشده اند، در شاخه های آزمایشی قرار می گیرند. برای مثال موضوعات مدیریت شده atln put می تواند بوسیله نام موضوعی ISO مشخص شود. ضمناً یك نمایشگر عددی برای رهگیری و رسیدن به موضوع مورد نظر نیز وجود دارد. مثلا برای atln put مقدار این نمایشگر عددی معادل 1.3.6.1.4.1.9.3.3.1 خواهد بود.

SNMP V1

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

snmp

(SMI: structure of management information)

(RFC: request for comments)

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

  1. UDP: user datagram protocol
  2. IP: internet protocol
  3. IPX: novel internet packet exchange
  4. DDP: apple talk datagram protocol
  5. CLNS: OSI connectionless network service

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

ASN.1: abstract syntax notation . One

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

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

    سه نوع از انواع داده عبارتند از :

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

    به دو دسته تقسیم می شوند:

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

SNMP V2 و ساختار اطلاعات مدیریتی (SMI)

SMI برای بررسی اطلاعات مدیریتی مورد استفاده در ANS.1 تعریف شده است و در RFC 1902 بررسی شده است در این ساختار نوع جدیدی از داده ها از قبیلBit string, network address, counter اضافه شده است:

Bit stringفقط در ورژن دو تعریف شده است و شامل چندین Named bit است که یک مقدار را مشخص می کند

Network address نمایش دهنده یک آدرس از یک پروتکل خاص می باشد و باید توجه داشت که در ورژن یک، تنها آدرسهای 32 بیتی و در ورژن دو، سایر انواع آدرسها نیز پشتیبانی می شوند.

Counter مقادیر صحیح غیر صفرند که از یک مقدار شروع به افزایش می کنند تا به سطح ماکزیمم خود برسند و سپس به صفر بر می گردند و باید توجه کرد در ورژن یک،Counter ها 32 بیتی و در ورژن دو، هم 32 بیتی و هم 64 بیتی تعریف می شوند.

ماجولهای اطلاعات SMI

این ماجولها سه نوع هستند و برای مشخص کردن یک گروه از تعاریف مربوط به هم استفاده می شوند:

  • ماجول MIB modules شامل تعاریفی از موضوعات مدیریت شده مرتبط می باشد.
  • ماجول Compliance statement راه حلی اصولی برای بررسی یک گروه از موضوعات مدیریت شده (که از یک استاندارد یکسان پیروی می کنند) را ارائه می دهد.
  • ماجول Capability statement که سطح دقیق پشتیبانی مورد مطالبه توسط یک کارگزار Agent را نشان می دهد.

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

فرامین get, get next, set که در SNMP V1 وجود داشت در ورژن دو نیز وجود دارد با این تفاوت که برخی از آنها بهبود یافته اند و تعدادی فرمانTrap که تمام عملکردهای گذشته را پشتیبانی می کند ولی با این فرمت پیام متفاوت و جدیدی ارائه شده است. همچنین فرامین جدید Get bulk, Inform نیز اضافه شده اند:

  • Get Bulk: این فرمان توسط NMS برای بازیابی بلاکهای بزرگ دیتا از قبیل سطرهای چندگانه یک جدول استفاده می شود. درصورتیکه با این فرمان نتوان تمام اطلاعات را بازیابی کرد قسمتی از آن (Partially results) دریافت می شود در حالیکه در ورژن یک چیزی دریافت نمی شد.
  • Inform: توسط این فرمان NMS، اطلاعات Trap را به سایر NMS ها ارسال می کند و سپس پاسخ آنها را دریافت می کند.

مدیریت در SNMP

SNMP یک پروتکل مدیریتی توزیع شده است. لذا یک سیستم در این پروتکل می تواند بطور انحصاری به صورت یک NMS یا یک Agent یا هر دوی آنها عمل کند. در رابطه با موارد اخیر (تواما)، NMS نیاز خواهد داشت که یک سیستم سوالی و جوابی (System query) تجهیزات را مدیریت کند و اقدام به تهیه گزارشات محلی و ذخیره اطلاعات مدیریتی کند.

مدیریت در SNMP

SNMP فاقد هرگونه توانائی در شناسایی و تصدیق Authentication می باشد که این امر باعث آسیب پذیری در انواع سطوح امنیتی که عبارتند از:

  • Masquerading (تغییر شکل رخدادها): شامل یک اقدام غیر مجاز برای اجراء کارمندهای مدیریتی بوسیله فردی که یک عنصر مدیریتی مجاز را شناسایی کرده است.
  • Information modification (تغییر در اطلاعات): شامل یک اقدام غیر مجاز برای تغییر یک پیام تولید شده توسط یک عنصر مجاز است. این اقدام می تواند در مورد فرامین مربوط به مدیریت مالی و یا پیکربندی صورت گیرد.
  • Timing & message sequence modification ( تغییر در توالی و زمانبندی): این حالت وقتی رخ می دهد که یک عنصر غیر مجاز اقدام به ثبت، ضبط، کپی ویا تاخیر انداختن یک پیام تولید شده توسط یک عنصر مجاز کرده و بعدا به آن پاسخ می دهد.
  • Disclosure Results (فاش سازی نتایج): این حالت وقتی رخ می دهد که یک عنصر غیر مجاز مقادیر ذخیره شده در موضوعات مدیریت شده را استخراج می کند و یا اینکه رخدادهای قابل توجه در حال تبادل بین Agent ها و Manager را می خواند و یاد می گیرد.

SNMP Interoperability

همانطور که گفته شده در حال حاضر SNMP V2 و SNMP V1 در دو محدوده کلیدی متفاوت و دارای عدم سازگاری اند، این محدوده ها عبارتند از:

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

پیام ها در ورژن دو، از فرمتهای متفاوتی برای (protocol data unit) PDU ها و هدرها استفاده می کنند. در RFC1908، دو استراتژی همزیستی برای SNMP V1 و SNMP V2 تعریف شده است که عبارتند از:

  1. Proxy agent:

    یک agent در SNMP V2 می تواند به صورت Proxy روی تجهیزاتی که توسط snmpv1 مدیریت شده اند عمل کند. در واقع proxy agent، پیام های trapرا از SNMPV1 به پیام های Trap در SNMPV2 نگاشت می کند و سپس آنها را به NMS فوروارد می کند و بالعکس. نحوه عمل به صورت زیر است:

    • NMS(SNMPV2) یک فرمان را به یک Agent(SNMP V1) صادر میکند.
    • NMS پیام SNMP را به Proxy agent(SNMPV2) می فرستد.
    • Proxy agent پیام های set, get, get next را برای agent(snmpv1) بدون تغییر و تبدیل آنها فوروارد می کند.
    • پیام های get bulk توسط proxy agent به پیام های get next تبدیل شده و سپس به agent(snmpv1) فوروارد می شوند.
  2. Bilingual network management system:

این سیستم مدیریت شبکه دو زبانه، از هر دو پروتکل (SNMPV1& 2) پشتیبانی می کند. برای پشتیبانی از این دو محیط مدیریتی مجزا، می بایست یک درخواست مدیریتی در NMS دو زبانه به یک Agent مرتبط شود و سپس NMS، اطلاعات ذخیره شده در یک دیتا بیس، محلی را برای نمایش اینکه Agent از SNMPV1 و یا از SNMPV2 پشتیبانی می کند را آزمایش می کند و براساس اطلاعات موجود در دیتابیس ، NMS با Agent ی که از ورژن مناسبSNMP استفاده می کند، ارتباط برقرار می کند.

فرمت پیام در SNMPV1

پیام های SNMP V1 شامل دو قسمت هستند:

  • Header
  • Protocol data unit(PDU)

که در شکل زیر نشان داده شده است:

pdu

Header شامل دو قسمت است:

  1. شماره ورژن (Version. No) که ورژن پروتکل SNMP مورد استفاده را نشان می دهد.
  2. انجمن (Community name) که یک محیط دسترسی برای گروهی از NMSها را تعریف می کند. در واقع نام انجمن یک فرم ضعیف از شناسائی Authentication است. زیرا تجهیزاتی که نام انجمن را نمی شناسد، نمی توانند از فرامین SNMP استفاده کنند.

SNMP V1- PDU protocol data unit

این قسمت شامل فرامین مشخص (set, get,…..) و عملوندهائی که نشان دهنده موضوع مربوط به این داد و ستد اطلاعاتی(Transaction) است، می باشد. فیلدهای PDU دارای طول متغییراند(که توسط ASN.1 تجویز شده است) و در شکل زیر نمایش داده شده است:

snmp v1

در سطرهای زیر تشریح فیلدهای مختلف شکل قبل آمد است

  • PDU Type: نوع PDU انتقال داده را مشخص می کند.
  • Request ID: درخواست های SNMP را با پاسخ ها مربوط می کند.
  • Error status: نشان دهنده یکی از شماره های خطا یا نوع خطا می باشد. توجه کنید که در این فیلد، تنها عملکرد پاسخ ست می شود و سایر عملکردها با مقدار صفر ست می شوند.
  • Error index: یک خطا را به یک نمونه موضوع ویژه مربوط می کند. توجه کنید که در این فیلد تنها عملکرد پاسخ ست می شود و سایر عملکردها با مقدار صفر ست می شوند.
  • Variable bindings: هر variable binding یک نمونه موضوع ویژه را به مقدار جاری خودش مرتبط می کند (بجز درخواست های get, get next، زیرا مقادیر آنهاIgnored است.

فرمت Trap- PDU:

trap-pdu

  • Enterprise:

    نوع موضوع مدیریت شده ایی را که مولد Trap است، نشان می دهد.

  • Agent address:

    آدرس موضوع مدیریت شده ایی را که مولد Trap است را ارائه می کند.

  • Generic trap type:

    معین کننده یکی از شماره های ویژه کدهای Trap است.

  • Time stamp:

    مدت زمانی را که بین آخرین Network Reinitialization و تولید کننده یک Trap سپری شده است را ارائه می کند.

  • Variable binding:

    هر variable binding یک نمونه موضوع ویژه را با مقدار جاری خودش مرتبط می کند.

فرمت پیام SNMP V2

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

snmp v2

هدرهای پیام در SNMP V2 شامل دو فیلد هستند:

  • Version number: ورژن SNMP ئی که استفاده شده است را معین می کند.
  • Community name : نام انجمن به عنوان یک رمز عبور جهت دسترسی NMS ها به اطلاعات Managed device مورد استفاده قرار می گیرد. لازم به ذکر است دسترسی به اطلاعات SNMP بدون ارئه نام انجمن صحیح، امکان پذیر نمی باشد.

واحد داده در پروتکلSNMP V2 (SNMP V2 PDU)

فرمتهای واحد داده با عملکردهای پروتکل SNMP مرتبط است و همانطور که توسط ASN.1 (abstract syntax notation no.1) تجویز شده است، فیلدهای آن دارای طول متغییراند.

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

snmp v2

  • PDU type:

    نوع واحد داده انتقال داده شده را نشان می دهد.(trap, set, response, inform, get next, get)

  • Request ID:

    درخواستهای SNMP را با پاسخ های مربوطه مرتبط می کند.

  • Error status:

    یکی از شماره های خطا را نشان می دهد.

  • Error index:

    یک خطا را با یک نمونه موضوع ویژه مرتبط می کند.

  • Variable binding:

    هر کدام از Variable bindings، یک نمونه موضوع ویژه را به مقدار جاری اش مرتبط می کند، بجز درخواست های get, get next که مقدار آنها Ignored است.

Get Bulk PDU Format

شکل زیر فرمت آن را نشان می دهد:

pdu format

  • PDU Type:

    عملکرد get bulk را مشخص می کند.

  • Request ID:

    درخواستهای SNMP را به پاسخ ها مرتبط می کند.

  • Non repeaters :

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

  • Max repetition :

    نشان دهنده حداکثر دفعاتی است که تغییرات توسط فیلد Non repeaters نشان داده شده اند.

  • Variable binding

    مقدار جاری یک نمونه موضوع را مشخص می کند (بجز get ,get next که مقدارشان ignored است).

خواندن 7272 دفعه

ayande.jpgdarya-navardi.jpgeghtesad-novin.jpgfolad-khozestan.jpggoldiran.jpggorgan.jpgirna.jpgmarkazi.jpgmaskan.jpgnosazi.jpgpasargad.jpgpetroshimi.jpgrefah.jpgrightel.jpgsarmayeh.jpgsepah.jpgshoraye-ali.jpgtejarat.jpg
opportunity job