久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

SNMP從入門到開發(fā):基礎(chǔ)篇

 lycbje 2013-12-18

SNMP協(xié)議入門

1、引言

基于TCP/IP的網(wǎng)絡(luò)管理包含3個(gè)組成部分:

1) 一個(gè)管理信息庫MIBManagement Information Base)。管理信息庫包含所有代理進(jìn)程的所有可被查詢和修改的參數(shù)。RFC 1213[McCloghrie and Rose 1991]定義了第二版的MIB,叫做MIB-II,。

2)  關(guān)于MIB的一套公用的結(jié)構(gòu)和表示符號(hào)。叫做管理信息結(jié)構(gòu)SMIStructure of Management Information)。這個(gè)在RFC 1155 [Rose and McCloghrie 1990] 中定義。例如:SMI定義計(jì)數(shù)器是一個(gè)非負(fù)整數(shù),,它的計(jì)數(shù)范圍是 0~4294967295,當(dāng)達(dá)到最大值時(shí),,又從0開始計(jì)數(shù)。

3) 管理進(jìn)程代理進(jìn)程之間的通信協(xié)議,,叫做簡單網(wǎng)絡(luò)管理協(xié)議SNMPSimple Network Management Protocol)。在RFC 1157 [Case et al. 1990]中定義。SNMP包括數(shù)據(jù)報(bào)交換的格式等。盡管可以在傳輸層采用各種各樣的協(xié)議,但是在SNMP中,用得最多的協(xié)議還是UDP

 

2,、SNMP協(xié)議概述

簡單網(wǎng)絡(luò)管理協(xié)議(SNMPSimple Network Management Protocol)是由互聯(lián)網(wǎng)工程任務(wù)組(IETFInternet Engineering Task Force )定義的一套網(wǎng)絡(luò)管理協(xié)議。該協(xié)議基于簡單網(wǎng)關(guān)監(jiān)視協(xié)議(SGMPSimple Gateway Monitor Protocol)。利用SNMP,一個(gè)管理工作站可以遠(yuǎn)程管理所有支持這種協(xié)議的網(wǎng)絡(luò)設(shè)備,包括監(jiān)視網(wǎng)絡(luò)狀態(tài),、修改網(wǎng)絡(luò)設(shè)備配置、接收網(wǎng)絡(luò)事件警告等,。 雖然SNMP開始是面向基于IP的網(wǎng)絡(luò)管理,但作為一個(gè)工業(yè)標(biāo)準(zhǔn)也被成功用于電話網(wǎng)絡(luò)管理。

 

3SNMP的發(fā)展史

SNMP經(jīng)過了一個(gè)相對(duì)較長的發(fā)展過程,到目前為止一共經(jīng)歷了三個(gè)版本,。當(dāng)下使用最廣泛是SNMPv2

l  1989年發(fā)布了第一個(gè)版本的SNMP,,稱為SNMPv1,。

l  1991年發(fā)布SNMP的一個(gè)補(bǔ)充---RMON(Remote Network Monitoring,,遠(yuǎn)程網(wǎng)絡(luò)監(jiān)視),。RMON擴(kuò)充了SNMP的功能,,包括對(duì)LAN的管理以及對(duì)依附于這些網(wǎng)絡(luò)設(shè)備的管理,。注:RMON沒有修改和增加SNMP協(xié)議本身以及SMI,,只是增加了SNMP監(jiān)視子網(wǎng)的能力,,把整個(gè)子網(wǎng)當(dāng)成一個(gè)個(gè)體來監(jiān)視,提供了新的MIB庫及相關(guān)的MIB行為,。

l  1993SNMPv1的升級(jí)版被提出,,SNMPv2,。

l  1995SNMPv2正式發(fā)布,v2增加了SNMPv1的功能,,并規(guī)定了如何在基于OSI的網(wǎng)絡(luò)中使用SNMP,。同時(shí)RMON于本年度擴(kuò)展為RMONv2

l  1998SNMPv3發(fā)布,一系列文檔定義了SNMP的安全性,,并定義了將來改進(jìn)的總體結(jié)構(gòu)。SNMPv3可以和v2,、v1一起使用。

 

4SNMP的工作原理

SNMP采用特殊的客戶機(jī)/服務(wù)器模式,,即代理/管理站模型。對(duì)網(wǎng)絡(luò)的管理與維護(hù)是通過管理工作站與SNMP代理間的交互工作完成的。每個(gè)SNMP從代理負(fù)責(zé)回答SNMP管理工作站(主代理)關(guān)于MIB定義信息的各種查詢。

SNMP的應(yīng)用場景如圖1所示:

 管理站和代理端使用MIB進(jìn)行接口統(tǒng)一,MIB定義了設(shè)備中的被管理對(duì)象,。管理站和代理都實(shí)現(xiàn)相應(yīng)的MIB對(duì)象,,使得雙方可以識(shí)別對(duì)方的數(shù)據(jù),,實(shí)現(xiàn)通信,。管理站向代理請(qǐng)求MIB中定義的數(shù)據(jù),代理端識(shí)別后,,將管理設(shè)備提供的相關(guān)狀態(tài)或參數(shù)等數(shù)據(jù)轉(zhuǎn)換成MIB定義的格式,最后將該信息返回給管理站,,完成一次管理操作。

 

5,、SNMP的報(bào)文類型

SNMP中定義了五種消息類型:Get-Request,、Get-ResponseGet-Next-Request,、Set-RequestTrap ,。

(1)Get-Request Get-Next-RequestGet-Response

SNMP 管理站用Get-Request消息從擁有SNMP代理的網(wǎng)絡(luò)設(shè)備中檢索信息,,而SNMP代理則用Get-Response消息響應(yīng),。Get-Next- Request用于和Get-Request組合起來查詢特定的表對(duì)象中的列元素。

(2)Set-Request 

SNMP管理站用Set-Request 可以對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行遠(yuǎn)程配置(包括設(shè)備名,、設(shè)備屬性,、刪除設(shè)備或使某一個(gè)設(shè)備屬性有效/無效等)。

(3)Trap 

SNMP代理使用TrapSNMP管理站發(fā)送非請(qǐng)求消息,一般用于描述某一事件的發(fā)生,,如接口UP/DOWN,,IP地址更改等。

上面五種消息中Get-Request,、Get-Next-RequestSet-Request是由管理站發(fā)送到代理側(cè)的161端口的,;后面兩種Get-ResponseTrap 是由代理進(jìn)程發(fā)給管理進(jìn)程的,其中Trap消息被發(fā)送到管理進(jìn)程的162端口,,所有數(shù)據(jù)都是走UDP封裝,。SNMP工作流程如圖2

6SNMP的報(bào)文格式

SNMP代理和管理站通過SNMP協(xié)議中的標(biāo)準(zhǔn)消息進(jìn)行通信,,每個(gè)消息都是一個(gè)單獨(dú)的數(shù)據(jù)報(bào),。SNMP使用UDP(用戶數(shù)據(jù)報(bào)協(xié)議)作為第四層協(xié)議(傳輸協(xié)議),進(jìn)行無連接操作,。SNMP消息報(bào)文包含兩個(gè)部分:SNMP報(bào)頭和協(xié)議數(shù)據(jù)單元PDU,。

    在實(shí)際網(wǎng)絡(luò)傳輸環(huán)境下,SNMP報(bào)文的長度取決于其所采用的編碼方式,。SNMP統(tǒng)一采用BER(Basic Encoding Rule)的編碼規(guī)則,,同時(shí)在正式SNMP規(guī)范中使用的是ASN.1語法,Abastract Syntax Notation v1,,即抽象語法描述語言,。這兩個(gè)概念在后面實(shí)踐環(huán)節(jié)再做進(jìn)一步介紹,這里只要稍微了解一下即可,,不妨礙我們對(duì)協(xié)議本身的分析,。這里我們簡單解釋一下BER編碼規(guī)則:

    BER作為ANS.1的基本編碼規(guī)則,描述具體的ANS.1對(duì)象如何編碼為比特流在網(wǎng)絡(luò)上進(jìn)行傳輸,。BER編碼規(guī)則由三部分組成:

    SNMP中定義了幾種基本的數(shù)據(jù)類型,,其中v1v2版有些改動(dòng),具體參見相應(yīng)的RFC文檔,。這里我們只介紹幾種最常見的類型:

l  INTEGER:一個(gè)整數(shù)

l  OCTER STRING 0或多個(gè)8bit字節(jié),,每個(gè)字節(jié)在0~255之間取值

l  DisplayString0或多個(gè)8bit字節(jié),每個(gè)字節(jié)必須是ASCII碼,。在MIB-II中,,所有該類型變量不能超過255個(gè)字符(0個(gè)字符可以)

l  NULL:代表相關(guān)的變量沒有值

l  IpAddress4字節(jié)長的OCTER STRING,以網(wǎng)絡(luò)字節(jié)序表示IP地址

l  PhyAddress6字節(jié)長的OCTER STRING,,代表物理地址

l  Counter:非負(fù)整數(shù),,可以從0遞增到232-1()。達(dá)到最大值后歸0

l  TimeTicks:時(shí)間計(jì)數(shù)器,,以0.01秒為單位遞增,不同的變量可以有不同的遞增幅度。所以在定義這種類型的變量時(shí)需要制定遞增幅度

l  SEQUENCE:與C語言中的結(jié)構(gòu)體類似

l  SEQUENCE OF:一個(gè)向量,,參見后面ANS.1語法詳細(xì)介紹章節(jié)

SNMP報(bào)文在傳輸層是封裝在UDP報(bào)文中的,,而UDP又是基于IP網(wǎng)絡(luò)的,因此,,我們可以得到完整的報(bào)文描述結(jié)構(gòu),,如下圖所示:

    PDU類型其實(shí)包含兩個(gè)字節(jié),第一個(gè)字節(jié)表示真實(shí)的PDU的類型,;第二個(gè)字節(jié)表示后面報(bào)文所占的字節(jié)總數(shù),。針對(duì)SNMPv1,這個(gè)字段取值如下:

1 PDU類型

PDU類型

  

0

get-request

1

get-next-request

2

get-response

3

set-request

4

trap

    也就是說,,trap的類型是4,。但是在數(shù)據(jù)報(bào)文中,該字段一般表示為ax,,其中x[0,4],,即a0~a3表示相應(yīng)的getset等操作,,a4表示trap報(bào)文,。這里除了類型字段意外,其他字段均采用BER編碼方式:

實(shí)戰(zhàn)演練之報(bào)文格式分析

    Trap報(bào)文格式和上述圖5所展示的結(jié)構(gòu)有些差別,,這里我們只分析SNMPv1SNMPv2Trap報(bào)文格式,。trap報(bào)文前面的部分都一樣,區(qū)別在PDU協(xié)議數(shù)據(jù)單元部分,。


SNMPv1 Trap報(bào)文

SNMPv1Trap報(bào)文格式如下所示:

注意:除了PDU類型和PDU長度字段外,,后面的每個(gè)字段都是BER編碼方式。

    trap類型”可以取以下值,,其中0~6是已定義的特定trap,,7及其以后的類型由供應(yīng)商自定義。

2 trap類型,、名稱及描述信息

trap類型

名稱

描述信息

0

coldStart

代理進(jìn)程對(duì)自己初始化

1

warmStart

代理進(jìn)程對(duì)自己重新初始化

2

linkDown

一個(gè)接口已從工作狀態(tài)變?yōu)楣收蠣顟B(tài)(報(bào)文中的第一個(gè)變量標(biāo)識(shí)此接口)

3

linkUp

一個(gè)接口已從故障狀態(tài)變?yōu)楣ぷ鳡顟B(tài)(報(bào)文中的第一個(gè)變量標(biāo)識(shí)此接口)

4

authenticationFailure

SNMP管理進(jìn)程收到無效共同體的報(bào)文

5

egpNeighborLoss

一個(gè)EGP鄰站已變?yōu)楣收蠣顟B(tài)(報(bào)文中的第一個(gè)變量包含鄰站IP地址)

6

enterpriseSpecific

在這個(gè)特定的代碼段中查找trap信息

 

通過wireshark抓包工具,,捕獲一條如下的SNMP報(bào)文,接下來對(duì)其進(jìn)行仔細(xì)分析,。

SNMPv1原始報(bào)文內(nèi)容:

00 23 5a 9e 58 b9 00 4c 41 49 50 55 08 00 45 00 00 48 00 00 40 00 40 11 a5 4e c0 a8 0a 01 c0 a8  0a 05 0c 00 00 a2 00 34 ff e0 30 2a 02 01 00 04 06 70 75 62 6c 69 63 a4 1d 06 0a 2b 06 01 04 01 bf 08 03 02 0a 40 04 c0 a8 0a 01 02 01 00 02 01 00 43 01 0e 30 00

 

目的MAC00 23 5a 9e 58 b9

MAC00 4c 41 49 50 55

協(xié)議類型:08 00 ,,為IP數(shù)據(jù)報(bào)

IP頭:45 00 00 48 00 00 40 00 40 11 a5 4e c0 a8 0a 01 c0 a8 0a 05 0c

UDP頭:0c 00 00 a2 00 34 ff e0

其余部分都為SNMP報(bào)文,接下來我們對(duì)照前面的報(bào)文結(jié)構(gòu)體來逐個(gè)分析一下,。

n  30 表示SNMP消息是ASN.1SEQUENCE類型,;

n  2a 表示該SNMP報(bào)文的總長度是42(0x2a)個(gè)字節(jié),該字段所表示的報(bào)文長度起始于它后面的第一個(gè)字節(jié)直到報(bào)文結(jié)束,;

n  02 01 00 表示版本號(hào),,可見其確實(shí)為BER編碼方式,。02表示該字段是INTEGER類型;01表示該字段占1個(gè)字節(jié),;00表示版本號(hào),,該值為“版本號(hào)-1

n  04 06 70 75 62 6c 69 63 表示團(tuán)體名,,04表示該字段為OCTET STRING類型,;06表示該字段占6個(gè)字節(jié);70 75 62 6c 69 63 表示團(tuán)體名的ANSII碼的十六進(jìn)制形式,,這里是“public”,;

n  a4 1d 其中a4中的“4表示這是一個(gè)trap報(bào)文,a4又叫報(bào)文的標(biāo)簽標(biāo)記,;1d表示后面還有29(0x1d)個(gè)字節(jié)的數(shù)據(jù),;

n  06 0a 2b 06 01 04 01 bf 08 03 02 0a 企業(yè)OID標(biāo)識(shí)。06表示該字段是個(gè)對(duì)象標(biāo)識(shí)符,,OBJECT IDENTIFIER,;0a表示該字段占10(0x0a)個(gè)字節(jié);關(guān)于SNMPOID的編碼方式有些奇特:例如1.3.6.1.2…. 取前兩個(gè)數(shù)字分別記為xy,。編碼時(shí)40*x+y,,這里x=1y=3,,因此結(jié)果為40*1+3=43,,即表示十六進(jìn)制的2b。因此,,這里的企業(yè)OID編碼即為1.3.6.1.4.1.8072.3.2.10,;

n  40 04 c0 a8 0a 01 同樣40表示該字段為OCTET STRING 類型;04表示IP地址占4個(gè)字節(jié),;IP地址為192.168.10.1,;

n  02 01 00 其中00表示trap類型為coldStart

n  02 01 00 其中00表示我們指定的trapspecific-trap也為coldStart類型,;

n  43 01 0e 43表示為TimeTicks類型,;01表示該字段占1個(gè)字節(jié);0e即十進(jìn)制的14表示時(shí)間標(biāo)簽為0.14秒,,這里時(shí)間計(jì)數(shù)器以0.01秒遞增,;

n  30 00 30表示“鍵-值”值對(duì)的編碼類型為SEQUENCE00表示該字段占0個(gè)字節(jié),,即沒有該字段,。


SNMPv2 Trap報(bào)文 
SNMPv2Trap報(bào)文格式如圖8所示:

同樣的,這里除了trap類型和報(bào)文長度是標(biāo)準(zhǔn)網(wǎng)絡(luò)字節(jié)序之外,,其余協(xié)議字段也均為BER編碼方式,??梢钥吹?/span>v2版的trap報(bào)文正在向統(tǒng)一的報(bào)文格式發(fā)展,已經(jīng)非常類似普通的SNMP請(qǐng)求,、響應(yīng)報(bào)文了,。

SNMPv2原始報(bào)文內(nèi)容:

00 23 5a 9e 58 b9 00 4c 41 49 50 55 08 00 45 00 00 7b 00 00 40 00 40 11 a5 1b c0 a8 0a 01 c0 a8 0a 05 0c 01 00 a2 00 67 04 bb 30 5d 02 01 01 04 06 70 75 62 6c 69 63 a7 50 02 04 17 73 2c fb 02 01 00 02 01 00 30 42 30 0d 06 08 2b 06 01 02 01 01 03 00 43 01 0e 30 17 06 0a 2b 06 01 06 03 01 01 04 01 00 06 09 2b 06 01 06 03 01 01 05 01 30 18 06 0a 2b 06 01 06 03 01 01 04 03 00 06 0a 2b 06 01 04 01 bf 08 03 02 0a

 

目的MAC00 23 5a 9e 58 b9

MAC00 4c 41 49 50 55

協(xié)議類型:08 00IP報(bào)文

IP頭:45 00 00 7b 00 00 40 00 40 11 a5 1b c0 a8 0a 01 c0 a8 0a 05

UDP頭:0c 01 00 a2 00 67 04 bb

余下部分全為SNMP報(bào)文內(nèi)容,,這里我們做一下簡單的約定:

xx 標(biāo)注類型;xx 標(biāo)注長度,;xx 標(biāo)注真正的數(shù)據(jù),。

這樣一來上面這串原始數(shù)據(jù)就好分析多了J

n  30 5d 整個(gè)SNMP報(bào)文的編碼方式為30,即SEQUENCE類型,,報(bào)文長度93(0x5d)字節(jié),;

n  02 01 01 版本號(hào)01v2版本;

n  04 06 70 75 62 6c 69 63 團(tuán)體名70 75 62 6c 69 63  即英文的“public”,;

n  a7 50 a7表示trap類型為7,,即廠商自定義trap50表示PDU區(qū)段占80(0x50)字節(jié),;

n  02 04 17 73 2c fb 請(qǐng)求ID17 73 2c fb 十進(jìn)制的393424123,;

n  02 01 00 錯(cuò)誤狀態(tài)0

n  02 01 00 錯(cuò)誤索引0,;

n  30 42 “變量名-值”對(duì)編碼類型30 SEQUENCE類型,;“變量名-值”所占總字節(jié)0x42,即66字節(jié),;

n  30 0d 06 08 2b 06 01 02 01 01 03 00 43 01 0e 第一個(gè)“名-值”對(duì)區(qū)段編碼方式30 SEQUENCE類型,;第一個(gè)“名-值”對(duì)總長度0x0d13字節(jié),;第一個(gè)變量名的編碼類型0x06,,時(shí)間標(biāo)簽;第一個(gè)變量名占0x08個(gè)字節(jié),;第一個(gè)變量名2b 06 01 02 01 01 03 00,,為1.3.6.1.2.1.1.3.0;第一個(gè)變量值為0x0e,,即14,;

n  30 17 06 0a 2b 06 01 06 03 01 01 04 01 00 06 09 2b 06 01 06 03 01 01 05 01 第二個(gè)“名-值”對(duì);變量名1.3.6.1.6.3.1.1.4.1.0,;變量值1.3.6.1.6.3.1.1.5.1,;

n  30 18 06 0a 2b 06 01 06 03 01 01 04 03 00 06 0a 2b 06 01 04 01 bf 08 03 02 0a 第三個(gè)“名-值”對(duì);變量名1.3.6.1.6.3.1.1.4.3.0,;變量值1.3.6.1.4.1.8072.3.2.10,;

今天我們簡單對(duì)SNMP協(xié)議做個(gè)入門普及,,包括它的原理,應(yīng)用場景報(bào)文格式等,。下面的章節(jié),,我們將以開源net-snmp為例來向大家闡述多種代理開發(fā)流程和原理,以及要注意的問題,,其中每種擴(kuò)展mib的方式都對(duì)應(yīng)不同的開發(fā)需求,。

未完,待續(xù)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多