Simple Network Management Protocol

**Simple Network Management Protocol** **(SNMP)**

Simple Network Management Protocol бол IAB байгууллагаас RFC 1157 нэртэй гаргасан application түвшинд ажилладаг сүлжээний төхөөрөмжөөс (заавал сүлжээний төхөөрөмж байх албагүй ямарч төхөөрөмж байж болно) сүлжээг удирдаж байгаа систем эсвэл хост руу мэдээлэл дамжуулдаг протокол юм. TCP/IP протоколын иж бүрдлийн стандарт протокол юм. UDP суурьтай. Анхны хувилбар - Simple Gateway Management Protocol (SGMP). Энэ нь зөвхөн Рутерыг хянах боломжтой байсан. Internet Engineering Task Force (IETF) гаргасан. SNMP ажиллагаа нь зөвхөн скаляр ажиллагааг хэрэглэнэ. Нэг скаляр утга нь ямар нэг ажиллагааны удирдах обьектыг сэргээх эсвэл засвар хийх арга юм. Гэсэн хэдий ч, удирдах обьектийн систем доторх олон төрлийн жишээнүүдийг албан ёсоор үзүүлэх шаардлагатай. Нэгдсэн обьект төрөл нь нэг эсвэл хэд хэдэн дэд төрлүүдээс бүрддэг. SNMP нь TCP/IP-ийн протоколын багцад байгаагийн хувьд SNMP мессежүүд UDP ашиглаж дамжуулагддаг. SNMP сүлжээг хянах, удирдахад ашигладаг хамгийн өргөн ашигладаг. Үйлдвэрээс гарч байгаа төхөөрөмжүүд дээр SNMP ажиллахад боломжтойгоор тохируулагдсан байдаг.  Simple network management protocol нь дотроо SNMPv1 SNMPv2 SNMPv3 гэсэн төрөлтэй байх бөгөөд SNMPv1 ба SNMPv2 нь хоорондоо ажиллах зарчмын хувьд ялгаа байхгүй. SNMPv2c нь Хүснэгтийн утгуудыг нэмсэн ба MIBболон Обьектын хувьсагчдыг өргөтгөсөн. SNMP аюулгүй байдлын 3 түвшин (нууц үгийг шифрлэж, баталгаажуулах зорилготой) Authentication(баталгаажуулалт)-auth, Privacy(шифрлэлт)-priv гэж товчилж бичнэ.
*noAuthNoPriv - authentication болон encryption-ний аль алийг нь хйихгүй
*AuthNoPriv - authentication хйигээд нууц үгийг encryption хийхгүй
*AuthPriv - authentication болон  encryption-ний аль алийг хйинэ

## SNMP хувилбарууд 
SNMPv1 Community–based security SNMPv2c Community–based security SNMPv2u User–based security SNMPv2 Party–based security SNMPv3 User–based security. Харин SNMPv3 нь SNMPv2 –ийн community string –ийн дутагдалтай тал болон өмнөх хувилбарууд хамгаалалтгүй дамждаг байсан бол MD5, SHA ашиглаж encryption, authentication хийдэг болсон. Simple network management protocol-д community string гэсэн ойлголт гарч ирнэ. Үүнийг ерөнхийд нь password гэж болно. Дотроо 3-н төрөлтэй. Үүнд: 

**1.Community string:** 

А.Read –зөвхөн унших эрхтэй password, agent дээр байгаа өгөгдлийг өөрчлөх эрхгүй.                        

Б. Read write – agent дээр байгаа өгөгдөлд хандан уншиж бичих буюу өөрчлөх боломжтой password.                                                                                                                                                                        
В. Trap –ямар төхөөрөмж trap буюу анхааруулгын дохио хүлээн авахыг заадаг.                                                                                                                               

**2.Default community string:**                                                                                                                      
Програм өөрөө тохируулсан password бөгөөд ихэнх тохиолдолд public шинжтэй байдаг бөгөөд read эрхийг олгодог. Иймээс default community string-г өөрчлөх хэрэгтэй.Хэрвээ ямар нэгэн байдлаар community string – write эрхтэйг нь алдвал олж авсан этгээд үүгээр дамжин төхөөрөмжийн интерфэйс унтраах, зарим тохиргоог өөрчлөх аюултай байдаг. Read болон Write эрх нь private шинжтэй байдаг.

**3.Clear text:**       
                                                                                                                                                                       Ямар нэг encrypt буюу кодлол хийгдээгүй өгөгдөл дамжина гэсэн үг өөрөөр хэлбэл password нь яг тэр хэвээрээ дамжина гэж болно.  

## SNMP архитектур 
* 2 түвшинт загвартай
* SNMP Manager – Network Management Station
* polling – хүсэлт , хариулт. Энэ нь 161-р портоор дамжина.
* trap – зөвхөн АGENT-ээс ирнэ. Асинхрон дамжуулалттай. Энэ нь 162-р портоор дамжина.
* SNMP Agent – Сүлжээний төхөөрөмж дээр ажиллаж байгаа програм хангамжийн нэг хэсэг

## SNMP удирдлага 
*Management Information Base (MIB)
обьектуудыг нэгтгэн агуулсан сан, 
object identifier (OID) – name (тоо ба нэр)
*Structure of Management Information (SMI)
агентын удирдаж байгаа обьектууд ба тэдгээрийн онцлог шинжүүдийг
тодорхойлох арга (төхөөрөмжийн интерфейсийн төлөв - up, down), 
сүлжээг удирдах обьектод суурилсан загвар
*Abstract Syntax Notation 1 (ASN.1)
ASN.1(Abstract Syntax Notation.1) бол ISO (International Organization for Standardization)-аас гаргасан стандарт хэл ба хэрхэн дамжихыг тодорхойлно. Энэ веб болон нисэх онгоцны системд ашиглагддаг. Үүний бүрэн дэлгэрэнгүй стандартыг энд дарж үзээрэй. 600 гаруй хуудастай ном байна.

## SNMP мессежүүд 
SNMP-ийн мессежүүд нь  маш энгийн байдлаар мэдээллээ солилцдог байдал нь SNMP-ийг алдартай болгосон байх. Доор зарим мессежүүдыг оруулав.
*GET: GET мессеж бол manger-ээс agent (managed device) –руу илгээж байгаа хүсэлт юм. Үүний утга нь тус төхөөрөмжөөс нэг эсвэл олон утга авахын тулд явуулсан хүсэлт юм.
*GET NEXT: Энэ мессеж нь GET –тэй ижил. Ганц ялгаа нь гэвэл дараагийн MIB-ийн модонд байгаа дараагийн ОбъектID-ийн утгийг авна. 
*GET BULK: Энэ мессеж нь MIB-ээс том хэмжээний өгөгдөл авах үед ашиглагддаг. 
*SET: Энэ мессеж нь manager-note дээр ажиллаж байгаа админ тус бүр SNMP managed device-ийн утгийн өөрчлөх эсвэл зааж өгөх үед ашигладаг.
*TRAPS: Дээрх мессежүүдтэй адилгүй учир нь. Дээрх мессежүүдыг manager санаачилдаг (хийдэг). TRAPS бол agent –с илгээдэг. Энэ нь тус agent ямар нэгэн утгийг manager –руу илгээж байгаа мэдээлэл юм. 
*INFORM: Энэ мессеж нь TRAP –тай төстэй. Үүнийг agent илгээдэг. Санаа нь manager-ээс мэдээлэл хүлээн авсан гэдгээ мэдээлэх үүрэгтэй. 
*RESPONSE: Энэ мессеж нь мэдээллийг буцаан дамжуулах үед ашиглагддаг.

## SNMP-ийн үндсэн бүрэлдэхүүн хэсгүүд тэдгээрийн үүрэг. 
**SNMP дараах хэсгүүдээс бүрдэнэ.** 

*SNMP agent 
*SNMP Manager,
*SNMP Managed devices
*Management Information Base (MIB).  

SNMP agent нь сүлжээний төхөөрөмж (host, router, printer гэх мэт) дээр ажиллаж байгаа програм бөгөөд MIB-аар тухайн төхөөрөмжийн гүйцэтгэл, алдаа, тохиргоо, ашиглалт, нууцлал хамгаалалтын удирдлагыг хэрэгжүүлэх боломжийг олгодог. SNMP agent-ийн гол үүрэг:

*Уг төхөөрөмж дээр суусан MIB-ийн сангаасаа мэдээлэл цуглуулах 

*Уг мэдээллээ хадгалах ба сэргээх 

*Manager-ээс ирж байгаа үүргийг биелүүлэх
SNMP manager нь NMS-дээр ажиллаж байгаа хэрэглээний програм бөгөөд agent- ийн MIB-г өөрчлөх эсвэл мэдээлэл авах хүсэлт дамжуулах үүрэгтэй. SNMP протокол нь manager болон agent хооронд SNMP мессэжүүдийг дамжуулах, хүлээн авах үүрэгтэй. Managed Device SNMP manager-ээр удирдуулж байгаа төхөөрөмж ба энэ нь таны хянах, удирдахыг хүсэж байгаа төхөөрөмж юм. Үүнд Routers, switches, servers, workstations, printers, UPSs, Projector гэх мэт орно.
MIB файл нь төхөөрөмжийн sensor-д харгалзан байгаа утга ба manager-тэдгээр утгуудыг дуудаж мэдээллээ олж авдаг. Жишээ нь Server-ын Хард дискний мэдээлэл, сүлжээний картны траффик мэдээлэл, CPU ба санах ойн (System Health Sensor) мэдээлэл хэрэгтэй гэж үзвэл энэ тус бүрд харгалзах утгуудийг MIB агуулж байдаг. Хэрвээ таны төхөөрөмж MIB-д  таны мониторинг хийхийг хүсэж байгаа sensor байгаа эсэхийг мэдэх хэрэгтэй. MIB-ийн бүтэц ба OID MIB бол сүлжээ, төхөөрөмжийг удирдахад зориулагдсан мэдээллийн цуглуулга. 

 
MIB нь Object Identifier(OID) гэсэн нэртэй объектуудаас бүтдэг. MIB-д обьект бүр object identifier (OID) болон нэртэй байна. MIB tree бүтэц.  Яг үнэн хэрэг дээрээ бол ОID нь маш олон тооны цэгээр тусгаарлагдсан дараалал байдаг. Жишээ нь: Cisco router-ийн санах ойн OID нь дараах хэлбэртэй байна. 1.3.6.1.4.1.9.9.48.1.1.1.6.1 1.3 
#### OID гэж юу вэ? 
OID нь цор ганц байх бөгөөд цэгээр тусгаарлагдан 10-тын тооллын системээр дүрслэгдэнэ.  Эдгээр объектууд нь дараалсан тоон утга байдаг. Объект бүр нь өвөрмөц дахин давтагдахгүй бөгөөд тус төхөөрөмжийн онцлог шинж чанарыг илэрхийлнэ.  Жишээ нь Прожектор нь төхөөрөмж гэж үзвэл. Прожектор дээр заавал байх MIB (lamp time life of projector, temperature,), байх шаардлагагүй MIB гэж байна. Тиймээс төхөөрөмж бүр мөн үйлдвэрлэгч бүр өөр өөр MIB-тэй байдаг. Manager асуух үед эдгээр утгууд өөр өөр утга дамжуулж болно. Хоёр төрлийн ОбъектID байдаг.  Scalar ба Tabular. Эдгээрийг жишээн дээр тайлбарлах нь илүү тустай байх. Scalar: Та төхөөрөмжийн үйлдвэрлэгчийн нэрийг энэ төрлөөр харвал дараах хэлбэртэй байна. (As definition says: "Scalar Object define a single object instance") Tabular: Та Quad процессорын CPU –ны ачааллыг харахыг хүсвэл. Энэ төрөл нь CPU тус бүрийн үр дүнг тус тусаар нь харна. Энд 4 CPU-ны үр дүн гарна. Дараах хэлбэрээр гарна. (As definition says: "Tabular object defines multiple related object instance that are grouped together in MIB tables") ОбъектID бүр нь MIB дотор шаталж үечилсэн бүтэцтэй байдаг. MIB-ийн энэ бүтэц нь мод хэлбэрийн байдаг.
#### OID-ын үүрэг юу вэ?  
OID нь өгөгдлийн объект (data objects) зааж байдаг. Энэ нь SNMP мессежын субъект юм. SNMP төхөөрөмж TRAP эсвэл GetResponse –ийг илгээх үед OID-ын цуваа дамжигддаг. Энэ цуваа нь яг одоогийн байгаа утгаа авч дамждаг. 
#### OID ямар хэлбэртэй харагддаг вэ? 
Жишээ нь: 1.3.6.1.4.1.2681.1.2.102 2.15  
Гэхдээ эдгээр тоон дараалал ямар учиртай вэ? гэхээр OID бол хаягчлалын нэгэн хэлбэр юм. Яг л IP хаягтай адил. Эдгээр тоонууд нь SNMP системд байгаа элементийн байрлалыг зааж байдаг. Нэр томьёонуудыг хэрхэн тодорхойлсон байна. Энд нэгээс олон элемент тодорхойлогдсон байна. Жишээ нь 1.3.6.1.4 бол enterprises заана . 2681 бол dpsInc заана. Дараагийн томьёо бол dpsAlarmControl юм. Мөн хамгийн сүүлийн оронгоос буцан явахад ROOT хэсэг рүү очно.
#### MIB юу хийдэг вэ? 
Удирдлагын мэдээллийн бааз суурь (MIB-Management information base ) нь сүлжээнд орж гарч байгаа SNMP хүсэлт болон хариуг хадгалж  удирдахад хэрэглэгддэг өгөгдлийн бааз юм.  Администратор нь SNMP ашиглан төхөөрөмжийн ажиллагааг хянах, тохиргоо хийх, гарч байгаа алдааг илрүүлэх, сүлжээ сайжруулах, шинээр сүлжээ төлөвлөх зэрэг үйл ажиллагааг хийх боломжтой. Үндсэн зорилго бол ОID байгаа дараалсан олон тоог хүний нүдэнд уншигдаж байхаар харуулах. SNMP төхөөрөмж trap эсвэл өөр мессэж илгээж байхад түүний ОID байгаа өгөгдөл бүрийн утгыг тодорхойлох. MIB нь ОID-ийг текстэн мэдээллээр хангадаг. SNMP manager нь codebook гэх зүйлийг ашиглаж OID тоонуудыг хүний уншиж болохуйц мэдээлэл рүү хөрвүүлдэг. 
#### Яагаад надад MIB хэрэгтэй вэ? 
Таны manager төхөөрөмжид agent –ээс ирж байгаа мэдээллийг боловсруулахын тулд MIB хэрэгтэй хэрвээ MIB байхгүй бол ямар утга үгүй тоон дараалал та харах болно.
#### Хэрхэн MIB-ийг өөрийн SNMP менежер болгох вэ?  
Таны SNMP manager хөрвүүлэгч хэмээх (compiling) нэрлэдэг программ ашиглаж MIB-ийг импортлон оруулж ирнэ. Хөрвүүлэгч нь ASCII хэлбэрт байгаа MIB-ийг хоёртын тооллын систем руу хөрвүүлж дараан нь SNMP manager ашиглах боломжтой болно. 
#### Яагаад MIB чухал вэ?  
Хэрвээ таны төхөөрөмж дээр SNMP –ийн MIB байхгүй бол та тэр төхөөрөмжийг SNMP-гээр дамжуулан удирдах, хянаж чадахгүй. Жишээ нь таны төхөөрөмж дээр температур мэдрэгчтэй гэвэл та тэр төхөөрөмжөөс температурын өгөгдөл хүлээж авна. Тиймээс та тус төхөөрөмжийн MIB-ийг олж мэдэх хэрэгтэй. Хэрвээ тус төхөөрөмжийн MIB-д температурын sensor байхгүй бол тус төхөөрөмж хэзээ ч TRAP –аар температурын мэдээлэл илгээхгүй. 
#### Яагаад MIB-ийг ойлгох хэрэгтэй вэ? 
MIB гэдэг бол SNMP төхөөрөмжийн яг үнэн боломжуудыг олж мэдэж болох хөтөч л гэсэн үг. Та шууд ямар ямар TRAP дамжихыг нь мэдэх үү ? Магадгүй энэ сонин санагдаж байгаа ч үүнийг заавал мэдэж байх хэрэгтэй. IPv6-руу ихэнх улс шилжин дуусаж байна. Ирээдүйд бүх эд зүйлс сүлжээнд холбогдож ажиллах болно энэ үед SNMP төрлийн протоколууд маш их хэрэглэгдэх болно. Зарим үйлдвэрлэгч MIB-ийг төхөөрөмж дээрээ тэмдэглэж оруулаагүй байдаг тал бий. Гэвч амьдрал дээр бол ихэнх төхөөрөмжүүд MIB-ийн бүдүүвчийг хавсаргасан байдаг. Энэ MIB – нь бүх төрлийн sensor-ийг дэмжинэ гэсэн үг биш юм. Хэрвээ та SNMP мониторинг хийхийг хүсэж байгаа бол заавал MIB-ийн бүтэц, түүний утгуудыг ойлгож байх хэрэгтэй. Энэ нь тус SNMP төхөөрөмжийн SNMP-ээр хийж чадах боломжууд гэсэн үг юм. Та SNMP төхөөрөмжийг худалдаж авах гэж байгаа бол худалдаж авахаасаа өмнө MIB- файлыг маш анхааралтай шалгахыг зөвлөж байна. 
#### Ямар нэр томьёонууд MIB-д байдаг вэ?  
MIB байгаа бүх элементүүд тодорхойлогдсон байх ёстой. MIB-д байгаа элемент тус бүр өөр өөрийн объект ID –тай байх ёстой. OID дугаар нь SNMP ертөнцөд дахин давтагдашгүй дугаар байна. OID бүр өөр өөрийн дугаараас гадна хүнд ойлгомжтой байлгах үүднээс өөр өөрийн текстэн label-тэй байна.
#### MIB-ийг хэрхэн харах вэ?  
MIB файл нь ASCII тексттэй адил, та ямар нэгэн текст уншигчаар нээж чадна. Жишээ нь Windows Notepad. Зарим үйлдвэрлэгчид 2-тын тооллын систем дээр бичсэн байдаг. Тэднийг шууд уншиж чадахгүй. Та MIB файлын ASCII хэлбэрийг үүсгэх хэрэгтэй. Тайлбар: Зарим MIB файл Unix –ийн текст байдаг. Unix текст формат бол Windows/DOS текст файлын бүтцээс маш их ялгаатай. DOS/Windows текст буцах ба мөрийн төгссгөл нь мөр бүрийн төгсгөлд байдаг бол Unix текст файл зөвхөн мөрийн төгсгөлд байдаг. Хэрвээ та MIB файлыг Windows PC дээр нээхийг хүсэж байгаа бол үйлдвэрлэгчээс нь DOS – д зориулсан формат байгаа эсэхийг асуух хэрэгтэй. Эсвэл текст хооронд хөрвүүлэгч ашиглаж болно.
#### Ямар үед MIB –ийг засварлах вэ?  
MIB файл нь enduser-д зориулагдаж гаргаагүй. Онолын хувьд та илүү хялбар байдлаар MIB- ийг зохион байгуулж болох ч гол зорилго болох Managed төхөөрөмжид л дэлгэц дээр харуулахад хялбар байх хэрэгтэй.
#### MIB –н ямар объект нь танд хэрэгтэйг яаж мэдэх вэ?  
1. Энэ төхөөрөмж өөр ямар RFC-ийн MIB-ыг дэмждэгийг мэдэх хэрэгтэй.

2. Тус төхөөрөмж ямар ямар TRAP-ийг manager-руу дамжуулдгыг мэдэх хэрэгтэй. Үүний тулд та дараах байдлаар харж болно.

Trap-ууд нь ихэвчлэн alarm-аар тэмдэглэгдсэн байдаг. Маш олон Traps статус мессежтэй байдаг. SNMP v1 MIB –д Trap-ууд нь үргэлж TRAP-TYPE гэсэн текстэн мэдээлэлтэй (text label) байдаг.Бидний жишээн дээр MIB –д дараах хэлбэртэй байна. DPS Telecom NetGuardian RTU:: psRTUp8005Set TRAP-TYPE ENTERPRISE dpsRTU VARIABLES { sysDescr, sysLocation, dpsRTUDateTime, dpsRTUAPort, dpsRTUCAddress, dpsRTUADisplay, dpsRTUAPoint, dpsRTUAPntDesc, dpsRTUAState } DESCRIPTION “Generated when discrete point 5 is set.” ::= 8005

## Ашигласан материал 
* https://www.snmp.com
* https://www.google.com
* https://web.archive.org/web/20200422165411/https://en.wikipedia.org/
*“SNMP -ийн MIB, OID-ыг хэрхэн унших, ойлгох, ашиглах вэ?”  by Khunbish.N 

Ангилал:Интернэт хэрэглээний протокол