久久青草精品A片狠狠,日韩欧美视频一区二区,亚洲国码AV日韩,国产精品黄在

SNMP概述–運維必知的協(xié)議基礎(chǔ)

2016-09-19 14:11:40 13743

一、什么是SNMP?

 

SNMP是  “Simple Network Management Protocol” 的縮寫,中文意思是簡單網(wǎng)絡(luò)管理協(xié)議,它是由互聯(lián)網(wǎng)工作小組在RFC1157中定義的應(yīng)用層協(xié)議,用于在網(wǎng)絡(luò)實體或節(jié)點之間交換管理或監(jiān)控信息。

 

二、為什么需要SNMP?

 

作為運維人員,我們很大一部分的工作就是為了保證我們的網(wǎng)絡(luò)能夠正常、穩(wěn)定的運行。因此監(jiān)控,控制,管理各種網(wǎng)絡(luò)設(shè)備成了我們?nèi)粘5墓ぷ鳌T诰W(wǎng)絡(luò)興起的早期,維護(hù)方式就是運維人員蹲在近端對設(shè)備進(jìn)行各?操作,當(dāng)網(wǎng)絡(luò)設(shè)備越來越多,網(wǎng)絡(luò)規(guī)模越來越大時,管理工作會變得越來越單調(diào)乏味,這樣的近端維護(hù)方式也近乎不可能。因此,遠(yuǎn)程管理網(wǎng)絡(luò)的需求日益迫切,SNMP應(yīng)運而生。使用SNMP,一個運行網(wǎng)管軟件的工作站就能對成千上萬的網(wǎng)絡(luò)設(shè)備進(jìn)行監(jiān)控和信息采集,這些信息可以用來構(gòu)建網(wǎng)絡(luò)或者定位網(wǎng)絡(luò)中的問題。

三、SNMP的優(yōu)點

如其名字所述,這個協(xié)議簡單易懂,部署的開銷成本也小。正因為它足夠簡單,所以被廣泛的接受,事實上它已經(jīng)成為了主要的網(wǎng)絡(luò)管理標(biāo)準(zhǔn)。在一個網(wǎng)絡(luò)設(shè)備上實現(xiàn)SNMP的管理比絕大部分其他管理方式都簡單直接。

使用SNMP將帶來如下好處:

標(biāo)準(zhǔn)化的協(xié)議:SNMP是TCP/IP網(wǎng)絡(luò)的標(biāo)準(zhǔn)網(wǎng)絡(luò)管理協(xié)議。互聯(lián)網(wǎng)標(biāo)準(zhǔn)協(xié)議是由互聯(lián)網(wǎng)組織志愿貢獻(xiàn)的開放、非專利性的,SNMP的維護(hù)及將來所有的增強(qiáng)都將基于現(xiàn)有的協(xié)議標(biāo)準(zhǔn)。

廣泛認(rèn)可:所有主流供應(yīng)商都支持SNMP。所有SNMP管理的設(shè)備使用相同的管理接口以支持通用的管理消息集合。

可移植性:SNMP獨立于操作系統(tǒng)和編程語言。SNMP的功能設(shè)計同樣是可移植的。同時它定義了一套核心操作集,所有支持SNMP的設(shè)備都需要支持這套操作。

輕量級:SNMP增強(qiáng)對設(shè)備的管理能力的同時不會對設(shè)備的操作方式或性能產(chǎn)生沖擊。網(wǎng)絡(luò)?備可以以極小的資源消耗和些微的負(fù)載作為代價增加SNMP的管理支持。

可擴(kuò)展性:在所有SNMP管理的設(shè)備上都會支持相同的一套核心操作集。SNMP也支持計算機(jī)網(wǎng)絡(luò)設(shè)備中各種類型的設(shè)備信息的交互,設(shè)備加入網(wǎng)絡(luò)也變得簡單。

廣泛部署:SNMP是最流行的管理協(xié)議,最為受設(shè)備供應(yīng)商關(guān)注,被廣泛部署在各種各樣的設(shè)備上。

四、SNMP的關(guān)鍵特征

SNMP一般主要由三個組件構(gòu)成,這三個組件分別是:

網(wǎng)絡(luò)設(shè)備:一般是指網(wǎng)絡(luò)中需要監(jiān)控和管理的設(shè)備或管理對象。

Agent:agent是網(wǎng)絡(luò)設(shè)備和管理組件的中間件,是駐留在網(wǎng)絡(luò)設(shè)備中的程序進(jìn)程,它收集設(shè)備的管理信息并與管理組件交互。

一個典型的agent應(yīng)有如下特征:

    ●支持完整的SNMP協(xié)議

    ●保存與檢索定義在MIB中的管理信息

    ●收集與維護(hù)本地設(shè)備的信息

    ●發(fā)送事件給管理組件

    ●作為某些非SNMP可管理的節(jié)點上的代理

管理組件:一個管理組件或者說管理系統(tǒng)是一個遠(yuǎn)程部署的獨立實體(區(qū)別于agent部署于被管理設(shè)備上)。一般典型可視為一臺部署了管理組件的計算機(jī),并且可能從地理位置上都與網(wǎng)絡(luò)設(shè)備相隔甚遠(yuǎn),管理者只需要通過這臺計算機(jī)就能夠?qū)υO(shè)備進(jìn)行各種監(jiān)控與管理操作。

一個典型的管理組件應(yīng)有如下特征:

    ●實現(xiàn)網(wǎng)絡(luò)管理系統(tǒng)

    ●支持完整的SNMP協(xié)議

    ●查詢agent,獲取agent 的響應(yīng)消息,設(shè)置agent的變量,告知agent異步事件已收到等

通訊:管理組件與agent之間以協(xié)議數(shù)據(jù)單元進(jìn)行通訊( Protocol Data Units,PDUs),數(shù)據(jù)在進(jìn)行網(wǎng)絡(luò)傳輸前必須進(jìn)行分塊和封裝,SNMP傳輸?shù)倪^程中,數(shù)據(jù)首先會被封裝成PDU,PDU再被UDP協(xié)議封裝進(jìn)行傳輸。

SNMP消息的格式可以參考下圖

snmp_message_format

1.msgVersion 指定SNMP的版本

2.msgID 指定SNMP消息唯一辨識符

3.msgMaxSize 指定交互SNMP實體所能接收的最大消息大小

4.msgFlags 指定消息的安全級別

5.msgSecurityModel 指定消息所使用的安全模式.SNMPv3為USM

6.msgAuthoritativeEngineID 此消息交互的SNMP實體的 SNMP EngineID

7.msgAuthoritativeEngineBoots 此消息交互的SNMP實體啟動的次數(shù)

8.msgAuthoritativeEngineTime 此消息交互的SNMP實體自上次啟動后所過去的時間

9.msgUserName 此消息交互的SNMP實體所使用的用戶名

10.msgAuthoritaticationParameters 認(rèn)證協(xié)議的參數(shù)

11.msgPrivacyParameters 加密協(xié)議的參數(shù)

12.contextEngineID 作為實現(xiàn)了某個具體管理功能上下文的唯一辨識符

13.contextName 用來標(biāo)記一個上下文的名稱

14.pdu SNMP實體間通信數(shù)據(jù)單元

管理模式:SNMP 對于管理組件和agent的實現(xiàn)一般可劃分為如下三個層面:

    ●協(xié)議,定義SNMP的基本操作和管理組建與agent間消息交換的格式

    ●管理信息結(jié)構(gòu)(Structure of Management Information (SMI)),定義SNMP該以何種形式訪問管理對象的規(guī)?集合

    ●管理信息庫(Management Information Base (MIB)),定義管理對象屬性的集合

MIB和SMI使用一種叫做ASN.1(Abstract Syntax Notation One)的表示法來描述,這是一種以ASCII文本格式清晰描述數(shù)據(jù)的表示法。MIB的數(shù)據(jù)通過SNMP消息進(jìn)行網(wǎng)絡(luò)傳輸,傳輸前會通過簡單編碼規(guī)則( Basic Encoding Rules (BER))進(jìn)行編碼。

 

五、SNMP的基本操作

SNMP是一個請求-響應(yīng)式的協(xié)議,它的基本操作可以分類如下:

    ●檢索數(shù)據(jù)

    ●修改變量

    ●接收主動上報消息

檢索數(shù)據(jù):管理組件向agent發(fā)送請求以獲取數(shù)據(jù),有如下操作類型:

    ●GET:GET請求用以從agent上獲取指定OID對應(yīng)的一條或多條值。

    ●GETNEXT:與GET請求類似,最明顯的區(qū)別是GETNEXT獲取指定OID在系統(tǒng)樹種所處位置的下一個OID。

    ●GETBULK:用于從agent上獲取大表中的大量數(shù)據(jù)。

修改變量:管理組件有時會希望能夠修改設(shè)備上的一些變量:

    ●SET:管理組件使用這個命令來修改設(shè)備的一些配置值。

接收主動上報消息:

    ●TRAP: 當(dāng)agent遇到數(shù)據(jù)傳輸問題,或設(shè)備出現(xiàn)故障希望上層管理組件知曉時,使用TRAP操作上報此信息。

六、SNMP的版本

SNMP發(fā)展到目前,一共經(jīng)歷了三個主要版本,SNMPv1,SNMPv2c,SNMPv3。對于當(dāng)今互聯(lián)網(wǎng)迅猛發(fā)展的今天,信息安全已經(jīng)是一個關(guān)乎產(chǎn)品命運的重要問題,曾經(jīng)的SNMP由于缺乏足夠的安全性而被人詬病甚至棄用,因此SNMPv3版本做了大量關(guān)于安全性的增強(qiáng),這里我們也主要關(guān)注于SNMPv3版本的特性。

SNMPv3的主要目的如下:

1.校驗收到的SNMP消息在網(wǎng)絡(luò)傳輸過程中是否被篡改。

2.校驗收到的SNMP消息其身份證明是否已經(jīng)被創(chuàng)建。

3.檢測收到的SNMP消息是否包含管理消息,是否是即時創(chuàng)建的。

4.保護(hù)每個收到的消息的內(nèi)容不會被公開。

為實現(xiàn)上述目標(biāo),SNMP為系統(tǒng)提供了一個安全的管理環(huán)境,涉及以下內(nèi)容:

    ●SNMP實體的身份證明以增強(qiáng)SNMP實體間的通信——每一個SNMP實體都會有一個叫SNMP EngineID的身份標(biāo)識符,SNMP通信只能發(fā)生在已知身份的SNMP實體間(TRAP和Notification不受此規(guī)則限制。)

    ●支持安全模式——一個安全模式定義了管理域或內(nèi)部網(wǎng)絡(luò)中的安全策略,SNMP包含USM安全模式的實現(xiàn)。

    ●定義消息安全的校驗服務(wù)規(guī)范:

        ○反信息篡改:保護(hù)校驗通過的實體所生成的消息在傳輸過程中不會被未經(jīng)校驗的SNMP實體所修改。

        ○反偽裝:防止SNMP實體通過偽裝成其他實體的身份來越權(quán)執(zhí)行某些操作。

        ○反消息流篡改:防止SNMP消息流被惡意重排序,推遲或重復(fù)從而施加未經(jīng)校驗的管理操作。

        ○反消息泄露:防止SNMP實體通信的信息被竊聽。

    ●USM的規(guī)格定義——USM一般由如下幾個通信機(jī)制組成:

        ○非認(rèn)證不加密通信

        ○認(rèn)證不加密通信

        ○認(rèn)證加密通信

    ●定義不同的認(rèn)證與加密協(xié)議——目前USM支持MD5和SHA認(rèn)證協(xié)議,DES和AES加密協(xié)議。

    ●定義發(fā)現(xiàn)流程:可以通過通信地址發(fā)現(xiàn)SNMP實體的SNMP EngineID

    ●定義時間同步流程:增強(qiáng)遠(yuǎn)程SNMP實體間認(rèn)證通信。

    ●定義SNMP 框架 MIB——增強(qiáng)對SNMP實體的管理和配置。

    ●定義USM的MIB——增強(qiáng)遠(yuǎn)程配置與管理的安全模式。

    ●定義VACM 的MIB——增強(qiáng)遠(yuǎn)程配置與管理的訪問控制。

七、SNMP的實現(xiàn)工具

上面講了很多關(guān)于SNMP原理的內(nèi)容,了解完之后肯定是要具使用,才有價值,這里介紹一個Linux上的SNMP實現(xiàn)工具。

1.安裝net_snmp服務(wù),這里我使用yum安裝

install_snmp

2.檢查安裝情況

check_install

3.啟動并檢查SNMP的運行狀態(tài)

check_running

4.驗證SNMP服務(wù)

1)安裝snmp管理工具:

snmp_util

2)執(zhí)行SNMP命令查詢系統(tǒng)主機(jī)名:

queryhost

5.配置SNMP服務(wù)

出于安全考慮,我們創(chuàng)建SNMPv3的安全用戶

1).停止SNMP服務(wù),并增加SNMPv3用戶,這里創(chuàng)建的用戶默認(rèn)是MD5認(rèn)證和DES加密

createuser

2).將認(rèn)證和加密協(xié)議分別修改為SHA和AES,提高安全性,然后啟動SNMP服務(wù)

authfile

modifyauthpri

3).測試該用?的通信消息,成功獲取。

vequery

4).一些其他功能

查看系統(tǒng)內(nèi)存總量OID:.1.3.6.1.4.1.2021.4.5.0

queryTotalMem

查看當(dāng)前可用內(nèi)存OID:.1.3.6.1.4.1.2021.4.6.0

queryavailableMem

查看當(dāng)前CPU負(fù)載OID:.1.3.6.1.4.1.2021.10.1.3.1

queryCPULoad

如果是遠(yuǎn)程查詢,將localhost修改成目標(biāo)主機(jī)的IP并指定SNMP的端口即可。

此外還有更多關(guān)于SNMP配置與開發(fā),


提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: