Комуникация по SNMP

SNMP – основни положения

Комуникация по TCP/IP

С напредването на технологиите се появява необходимост от възможност за трансфер на данни между обекти, които се намират на голямо разстояние. Така възниква протоколният стек TCP/IP. TCP/IP пакетът от протоколи се нарича така заради двата основни
протокола, съдържащи се в него. TCP – Transmission Control Protocol и IP – Internet Protocol. Основната цел за създаването на TCP/IP е била да се създаде стандартен протокол, чрез който да се осигури връзка между различни компютри, свързани по различни интерфейси, за да може да се свързват мрежа.

TCP е мрежов протокол за управление на обмена на информация, един от основните, използвани от Интернет. Информацията, която трябва да бъде транспортирана бива разделена на множество от пакети, всеки от които съдържа достатъчно информация, за да бъде пренасочен към точната си дестинация. Втората основна част от TCP/IP протоколния стек е протоколът IP. Всяко устройство в TCP/IP мрежата има уникален IP адрес. Този адрес идентифицира устройството и подмрежата, към която то принадлежи.
Надеждността на обмена се осигурява чрез сравнения на контролни суми, изчислени върху изпратените и пристигналите данни. Другата важна функция на протокола е да подреди пристигналите пакети в реда, в който са били изпратени. Структурата на TCP/IP протоколния стек е подобна на структурата на OSI модела, като разликата е че при протоколния стек някои нива от OSI модела са обединени.

Мрежов интерфейс

Мрежовият интерфейс има за задача да изпраща и да получава кадри от мрежовата среда. Използваният формат на кадрите зависи от видовете интерфейси и мрежовата топология. Към всеки кадър се добавя контролна сума (CRC) за защита от грешки. Когато кадърът достигне местоназначението си, стойността на контролната сума се преизчислява, за да се определи дали данните не са повредени при пренасянето. Ако кадърът не е повреден, то той се предава на по-високо ниво. Ако е повреден, той се отхвърля.

Интернет ниво

Интернет нивото осигурява три основни функции: адресиране, пакетиране и маршрутизиране. Това ниво включва в себе се IP протокола. IP осигурява независима от крайните точки, негарантирана доставка на  информация. IP протоколът не извършва проверка дали информацията е била успешно получена от нейния получател. При това могат да бъдат загубени пакети или те да пристигнат в неподреден вид. Тази проверка се прави от по-горните слоеве.

Транспортно ниво

За транспортиране на данните в TCP/IP се използват TCP и UDP протоколите. При комуникиране на две устройства по TCP протокола, те установяват сесия помежду си, като по този начин всяко устройство може да определи номера на поредицата от данни, която другото устройство ще използва. TCP връзката осигурява високо ниво на надеждност По време на предаване се използват поредни номера и потвърждение, че получателят успешно е приел данните. При UDP протоколът не се гарантира достигането на информацията до получателя. UDP протоколът има контролна сума в заглавната си част, която гарантира че данните не са повредени.

Приложно ниво

Това ниво осигурява интерфейса между приложенията на крайният системен потребител и мрежовите услуги. На това ниво се синхронизират съвместно работещите приложения, идентифицират се устройствата, с които ще се установява връзка, оценява се обема на ресурсите, необходими за връзката. TCP/IP протоколния стек е съставен от множество протоколи, съответстващи на различните нива от протоколния стек.

SNMP (Simple Network Transfer Protocol)

SNMP (англ. Simple Network Management Protocol) е лесен протокол за управление на мрежи. Този протокол заема приложното ниво от TCP/IP модела и дефинира връзката “клиент-сървър”. SNMP описва стандартен метод за достъп до данни на отдалечено устройство. Той също специфицира формат, в който данните трябва да бъдат предадени. Когато веднъж устройството е “разрешило” използването на SNMP протокола, тогава то може да бъде следено и контролирано от друго устройство. SNMP протоколът работи, чрез транспортен протокол UDP.

Основни компоненти

Основните компоненти на протокола SNMP са три:

  1. устройства, върху които се упражнява контрол и мониторинг
  2. агенти (сървъри)
  3. NMS – Network Management Systems (клиенти)

Управляваните устройства са мрежови възли, които съдържат SNMP агент и чрез него осъществяват комуникация. Те събират и съхраняват информация и правят тази информация видима за клиентите, посредством протокола SNMP. SNMP Agent (Managed node) – това е звеното, което изпълнява ролята на сървър в комуникацията по SNMP. То е като агент между NMS софтуера и отдалеченото устройство. Един агент може да поддържа връзка с много NMS софтуери. SNMP Agent чака за заявка от NMS софтуера и след това изпраща нужните данни или предприема необходимото действие. Агент (сървър) е софтуер който управлява дадено устройство или система от устройства. Всеки агент си има собствена локална управляваща информационна база и транслира тази информация в тип, подходящ за SNMP комуникация. NMS (клиент) изпълнява приложения, чрез които наблюдава и контролира отдалечени устройства по мрежата. NMS е половината от SNMP “клиент- сървър” комуникацията, а другата половина е SNMP Agent. Обикновено NMS е локален компютър, на който е стартиран специален софтуер. NMS играе ролята на клиента в тази комуникация, който периодично изисква данни от SNMP Agent. След като веднъж дадено устройство разреши SNMP протокола, всеки NMS – софтуер може да бъде използван за комуникация. Когато устройството, играещо роля на сървър, бъде променено, не се изисква да се променя и NMS – софтуера, тъй като той динамично може да прибавя информация за нови устройства и в последствие да комуникира с тях. Простотата на протокола SNMP идва от начина на комуникация. Комуникацията започва, когато клиентът изпрати заявка към сървъра (агента). При този протокол не е нужно клиентът постоянно да слуша, дали сървърът ще изпрати данни.

Базови команди

Наблюдението и контрола на устройствата чрез протокол SNMP се осъществява чрез три основни команди:
● read – тази команда се използва от NMS софтуера (клиента) за да може да наблюдава управляваното устройство. Клиентът може да проследява различни променливи, които се поддържат от управляваните устройства
● write – командата се използва за контрол на отдалеченото устройство. Чрез командата могат се променят стойностите на променливите поддържани и съхранявани от отдалеченото устройство.
● trap – чрез тази команда отдалеченото устройство може да сигнализира на NMS софтуера, когато е настъпило някакво определено събитие.

SNMP Management Information Base (SNMP Информационна база за управление)

MIB е колекция от йерархично структурирана информация. Тази информация е достъпна чрез мрежови управляващ протокол (например SNMP). MIB – овете обхващат управляваните обекти, идентифицирани чрез идентификатор на обект – OID. Управляваният обект (наричан MIB обект или просто обект) е част от характеристиките на отдалеченото устройство.

Съществуват два типа MIB обекти: скаларни и таблични. Всеки SNMP Agent управлява своя собствена колекция от данни, наречена MIB. За да организира тази колекция от данни SNMP дефинира схема известна като Structure of Management Information – SMI (Структура на управляваната информация). Структурата на MIB представлява дърво с един корен (Root), имащ един или повече наследници (Child). Всеки наследник може да има един или повече свои собствени наследници. Наследниците, които нямат свои наследници се наричат “листа” (Leaf Nodes). Тези “листа” съдържат реалните данни. RFC документите описват няколко основни MIB при работа в Интернет, приети като стандарт. Този стандарт не може да бъде променян. В дървото дефинирано от стандарта в RFC документите има специален наследник наречен – “enterprise”, който е дефиниран за частни проекти. Всеки SNMP Agent получава свой собствен enterprise – номер. След като този номер е един път добавен, производителят може да си добавя към него дървета с всякаква структура, като корена на дървото на производителя всъщност ще бъде наследника от стандартното дърво – enterprise. Enterprise номер може да бъде даден единствено от организацията IANA (Internet Assigned Number Authority) – www.iana.org/cgi-bin/enterprise.pl

Описание на основните възли от дървото на SMI структурата

  • iso – международна организация отговаряща за стандартите
  • indent organisation – идентификатор на организацията
  • dod – департамент по защитите
  • directory – резервирано за бъдещо използване и бъдещи дискусии за това, как OSI директорията да бъде използвана в Интернет
  • management – за документи, описващи стандартите в Интернет
  • experimental – за обекти използвани за Интернет експерименти.

Управлението на това поддърво е делегирано от IAB(Internet Architecture Board) на IANA (Internet Assigned Numbers Authority). IANA може да поставя изисквания как да се използва това поддърво
● private – за дефинирани едностранно обекти. Управлението на това дърво също е дадено на IANA и има само едно дете.
● еnterprises – единственото дете на private. Използва се за регистриране на на отделни проекти на фирми, занимаващи се с разпространение и поддръжка на мрежи.

OID (Object Identifier) – Всеки един възел от дървото е идентифициран със собствен уникален номер наречен OID. Всеки един номер се изписва чрез числа разделени с точки. Например за горната фигура OID на възела mib е 1.3.6.1.1.2.1 . Този номер показва пътя в дървото до дадения елемент. За възела mib този път е: “iso(1).org(3).dod(6).internet(1).mgmt(2).mib(1)”. От тук се вижда и как точно се получава идентификатора на всеки един от възлите. Според раздаване на OID , първото число винаги е “1” или “2”, а второто винаги е по-малко от “40”. Ето защо често при идентификаторите на възлите първите две числа се обединяват в едно по формулата “40*a+b”, където “a” е първото число, а “b” – второто. Като резултат за OID на mib от горната схема ще се получи: 43.6.1.1.2.1

SNMP и представяне на данните

SNMP трябва да наглася и отстранява несъвместимостите между вида на данните в управляваните устройства и в NMS софтуера. Различните компютри използват различни техники за представяне на данните, които трябва да бъдат съвместими за да могат да се обменят по SNMP протокол. SNMP използва Abstract Syntax Notation One (ASN.1), за да прави вида на данните, при комуникиращите устройства, съвместими. ASN (Abstract Syntax Notation) Language – всяка една MIB променлива има няколко атрибута като например тип, достъп, OID и други. SNMP използва специален език за описване на детайлите на променливите , наречен ASN Language version.1 (ASN.1). ASN.1 е текстов файл който е написан според изискванията на ASN.1 синтаксиса. Съществуват MIB builders , които позволяват на потребителя да въведе структурата си от данни графично, без да му се налага първо да изучава синтаксиса на езика ASN.1. BER (Binary Encoding Rules) – SNMP използва ASN.1 за описване на предаваните данни. ASN.1 е абстрактен език, който не описва как действителните данни ще се кодират и ще бъдат предадени между две точки. Съществува специално множество от правила – BER, което служи за превеждане на описаните на езика ASN.1 структури от данни. Данновата променлива декодирана по правилата BER съдържа таг – 1байт, един или повече байта за дължина и един или повече байта за стойност. Байтът “таг” описва типа на реалната променлива, байтовете за дължина описват броя на байтовете използвани за описване на съдържанието на променливата, байтовете за стойност съдържат реалната стойност на променливата.

SNMP версия 1

SNMP версия 1 е първичното изпълнение на SNMP протокола. Тази версия е описана в Request For Comments (RFC) 1157 и функционира в съответствие със спецификацията на Structure of Management Information (SMI). SNMPv1 работи чрез протоколи като UPD (User Datagram Protocol), IP (Internet Protocol), OSI Connectionless Network Service (CLNS), AppleTalk Datagram – Delivery Protocol (DDP), and Novell Internet Packet Exchange (IPX). SNMPv1 е широко използван в комуникацията през Интернет .

SNMPv1 и структура на управляваната информация (Structure of Management Information – SMI)

SMI дефинира правилата за описване на обменяната информация, използвайки езика Abstract Syntax Notation One (ASN.1). SNMPv1 SMI e дефиниран в RFC 1155. SMI прави три ключови спецификации: ASN.1 видове данни, SMI – специфични видове данни, SNMP MIB таблици.

ASN.1 типове данни

Според SNMPv1 SMI всички управлявани обекти трябва да имат свързано с тях определено множество от ASN.1 видове данни . Изискват се три ASN.1 вида данни:

  • name – служи като идентификатор на обекта syntax – дефинира типа на данните на обекта – integer, string и т.н.
  • encoding – дефинира как свързаната информация с обекта ще се предава в мрежата

SMI – специфични типове данни

SNMPv1 SMI специфицира множеството от SMI – типове данни, разделени в две категории simple data types (прости типове данни)
integers – целочислени в интервала –2,147,483,648 до +2,147,483,647

  • octet string – подредени последователности от 0 до 65535 октета.
  • object ID – обектен идентификатор от множеството обектни
  • идентификатори на всички обекти, определено според правилата специфицирани в ASN.1
  • application – wide data types
  • network addresses – адрес от определена фамилия протоколи.
  • SNMPv1 поддържа само 32-битови IP адреси.
  • counters – не отрицателни целочислени стойности, които се увеличават, докато достигнат максималната си стойност и тогава се връщат на 0 (броячи). SNMPv1 поддържа 32-битов брояч.
  • gauges – не отрицателни целочислени стойности, които могат да се увеличават или намаляват, когато са достигнали максималната си стойност
  • time ticks – изобразява стотна от секундата от някакво събитие
  • opaques – представлява условно кодиране, използвано за
  • изпращане на информационен низ, който не се подчинява на никой от типовете поддържани от SMI
  • integers – цяло число със знак, което има условна точност в ASN.1, но ограничена в SMI
  • unsigned integers – цяло число без знак, с условна точност в ASN.1, но ограничена в SMI

SNMP MIB таблици

SNMPv1 SMI дефинира високо структурирани таблици, които се използват, за да групират различните стойности на табличните обекти (това са обекти, при които един обект има много променливи). Таблиците са съставени от 0 или повече редове, които са индексирани, така че SNMP може да коригира редове или да въвежда нови чрез командите Get, GetNext, или Set.

SNMPv1 операции

SNMP е прост протокол за заявки и отговори. Управляващата мрежова система издава заявка, а управляваният обект връща отговор. Този режим на работа се осъществява чрез една от четирите команди : Get, GetNext, Set, and Trap.

  1. Get операцията се използва от NMS, за да получи стойностите на един или повече обекти от агента. Ако агентът не може да осигури всичките искани стойности от списъка, той не връща нито една стойност.
  2. GetNext операцията се използва от NMS, за да получи стойността на следващия обект в таблицата или списъка на агента.
  3. Set операцията се използва от NMS, за да присвои стойност на обект в агента
  4. Trap операцията се използва от агента за асинхронно информиране на NMS за значимо събитие

SNMP версия 2

SNMPv2 е развитие на първоначалната версия, SNMPv1. Първоначално SNMPv2 е бил оповестен като множество от предложения за стандарти в Интернет през 1993 година. В момента той е стандарт в проект. Както SNMPv1, SNMPv2 функционира съгласно спецификациите на SMI. SNMPv2 предлага множество подобрения на SNMPv2, включително и допълнителни протоколни операции.

SNMPv2 и структура на управляваната информация

(Structure of Management Information – SMI) SMI дефинира правилата за описване на обменяната информация, използвайки езика Abstract Syntax Notation One (ASN.1). SNMPv2 SMI e дефиниран в RFC 1902. Тук има подобрения на предишната – първа версия. Добавени са нови SMI – специфични типове данни, като например:

  • bit strings – определя 0 или повече именувани бита, определящи стойността
  • network addresses – представлява адрес от конкретна фамилия протоколи, но за разлика от SNMPv1, SNMPv2 може да поддържа и адреси различни от 32-бита
  • counters – представляват не отрицателни целочислени стойности, които се увеличават, докато достигнат своята максимална стойност и след това се връщат на 0. В SNMPv2 са дефинирани 32-битови и 64-битови броячи.

SMI информационни модули

SNMPv2 SMI също специфицира информационни модули, които определят група от свързани дефиниции. Съществуват три вида SMI информационни модули:
● MIB модули – Съдържат дефиниции на свързаните обекти за управление.
● Compliance statements – Грижат се за системния метод на описване на групата от управляваните обекти, която трябва да е съвместима със стандартите.
● Capability statements – Използват се за да индикират точно определено ниво от поддръжката, която агентът изисква, в съответствие с MIB групата. NMS може да приспособява режима си на работа, съгласно агента, така че apabilities statements да са свързани с всеки агент.

SNMPv2 протоколни операции

Протокол SNMPv2 поддържа същите операции като тези на версия едно. Освен това SNMPv2 има някои промени и няколко допълнителни операции.  Например операцията Trap има същата функция, но в тази версия форматът на съобщението е различен. SNMPv2 дефинира две нови операции:

● GetBulk операция – използва се от NMS за ефикасно обработване на големите блокове данни, като например редовете на таблиците. Тази команда попълва съобщението – отговор, като един вид компресира исканата информация. При тази операция ако агентът не може да достави цялата искана информация, той доставя частта от нея която е налична.
● Inform операция – позволява един NMS да изпрати trap-информация на друг NMS и да получи отговор.

SNMP управление

SNMP е протокол за разделно управление. Една система може да работи или като агент, или като NMS, или може да изпълнява функциите и на двете. Когато системата работи едновременно и като агент и като NMS, друг NMS може да изпрати заявка за информация, съдържаща се в локалната информационна база на първата система.

SNMP сигурност

В SNMP липсват възможности за автентикация, което води до широка гама заплахи за сигурността на системата и предаваната информация:
● неототризиран достъп до системата и опити за промяна на информацията от информационните бази на отделните отдалечени устройства
● промяна на последователността от съобщенията разменяни при комуникацията
● промяна формата и съдържанието на съобщенията
● подслушване и получаване на тайна информацията и т.н.

Поради тези причини много производители не поддържат Set операциите.

Формат на SNMP съобщението

Всяко SNMP съобщение се състои от заглавие и PDU PDU (Protocol Data Unit) – Пакетите от данни обменяни между две точки по SNMP протокола се наричат PDU.

Message header
Заглавието на съобщението се състои от две части:
● Version number – указва версията на използвания SNMP протокол
● Community name – дефинира групата от NMS-и, които ще имат достъп до данните. Това поле служи като неустойчива форма на автентикация, тъй като устройствата, които не са от тази област ще бъдат отстранени от комуникацията

Protocol data unit (PDU) формат

В зависимост от операцията, PDU има различен формат:

Операции Get, Get Next, Response и Set

  1. PDU type – указва типа на предавания PDU
  2. Request ID – свързва SNMP заявката с отговора
  3. Error status – указва дали при комуникацията е възникнала някаква грешка
  4. Error index – ако е възникнала грешка указва какво я е причинило
  5. Variable bindings – двойки “обект-стойност” – данните, които ще се предават

Операция Trap

Enterprise – указва типа на обекта генерирал Trap
• Agent address – посочва адреса на обекта генерирал Trap
• Generic trap type – индикира типа на генерирания Trap, т.е. какво го е причинило.
• Specific trap code – Източник на Trap, който не е от стандартните, а е описан от програмиста
• Time stamp – времето изминало между последната реинициализация на обекта и генерирането на Trap
• Variable bindings – двойки “обект-стойност” носещи някаква информация за генерирания Trap

Видове източници на Trap-ове:

  • Тази операция се поддържа само от SNMPv2, следователно и съответстващият и формат важи само за тази версия на протокола. Значенията на полетата PDU type, Request ID, Variable bindings са аналогични на полетата при формата на Get, Get Next, Response и Set операциите
  • Non repeaters – указва броя на двойките от полето Variable bindings, които ще се обработват само веднъж от началото на заявката. Това поле се използва за скаларни променливи.
  • Max repetitions – указва колко пъти (най-много) могат да се обработват променливите указани в Non repeaters

Сходни статии:

  1. Софтуерни решения използващи протокола SNMP за управление, контрол, наблюдение и визуализиране на статистическа информация за мрежи Характеристики и възможности на MRTG. Multi Router Traffic Grapher (MRTG) е инструмент за наблюдение на натоварването на мрежови връзки на маршрутизатори или мрежови устройства поддържащи SNMP. MRTG генерира HTML страница на която се изобразява натоварването във вид на PNG картинки....
  2. NetBEUI и IP протоколи в мрежите NetBEUI мрежи Малка проста локална мрежа, използваща операционни системи на Microsoft, която може да комуникира с помощта на протокола NetBEUI. NetBEUI (съкращение от NetBIOS Extended User Interface) е базиран на протоколите NetBIOS (Network Basic Input/Output System), разработени от IBM за...
  3. Сигурност на приложенията (Application security) В сигурността на приложния слой са концентрирани голямо количество очаквания за защита. Лошо (слабо) защитените приложения могат да осигурят лесен достъп до конфиденциални бази данни и записи. Истина е, че повечето от проектантите и програмистите създават софтуер без мисъл за...
  4. Протоколи и услуги ориентирани към пренасяне на информация TCP (Transfer Control Protocol) – протокол за управление на обмена на информация. Този протокол обслужва връзките. Данните се изпращат на пакети, които съдържат заглавна част и данни. Надеждността на обмена се осигурява от контролни суми и сравнения между изпратената и...
  5. Процеси в Linux Типове Linux процеси Определение за процес е изпълняваща се програма. Докато самата програма с нейните данни се съхранява във файл върху диск и поради тази причина се разглежда като пасивен обект, процесът изпълнява определена работа в системата и е динамичен...
  6. Поддържащи услуги в агентните системи В стандартизираните модели на FIPA са дефинирани две групи поддържащи услуги за агентните системи: за управление и за трансфер на съобщения. Основната роля на услугите за управление е установяване на мястото, където агентът е регистриран, услугите, които предлага, ограничения на...

Responses are currently closed, but you can trackback from your own site.

Comments are closed.

Subscribe to RSS Feed Follow me on Twitter!