簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)

字號(hào):

作為一名網(wǎng)絡(luò)顧問或網(wǎng)絡(luò)管理員,在你安裝完網(wǎng)絡(luò)并且設(shè)置了用戶帳號(hào)與應(yīng)用程序之后,你的工作并沒有完成。你的下一個(gè)職責(zé)就是網(wǎng)絡(luò)管理,它就好比是一場永遠(yuǎn)也不會(huì)結(jié)束的戰(zhàn)斗一樣。
    目前存在著兩種類型的網(wǎng)絡(luò)管理問題:一種是與軟件相關(guān)的,例如數(shù)據(jù)安全性和存取許可;另一種是與硬件相關(guān)的問題。這里注重討論第二種,即通過使用簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)和在處理與軟件相關(guān)的管理問題時(shí)所用到的一些思想,把網(wǎng)絡(luò)硬件作為一個(gè)整體進(jìn)行管理。
    介紹SNMP的英文網(wǎng)站很多,但相關(guān)的中文網(wǎng)站寥寥無幾,這正是鄙人設(shè)立本站的初衷所在。這里將從基本原理著手,介紹到底什么是 SNMP,并引導(dǎo)新手如何親自動(dòng)手實(shí)踐。在不久的將來我將給出LINUX和SOLARIS上基于X WINDOWS的簡單發(fā)布和源碼。
    1.什么是網(wǎng)絡(luò)管理?
    網(wǎng)絡(luò)管理分為兩類。第一類是網(wǎng)絡(luò)應(yīng)用程序、用戶帳號(hào)(例如文件的使用)和存取權(quán)限(許可)的管理。它們都是與軟件有關(guān)的網(wǎng)絡(luò)管理問題。這里不作討論。
    網(wǎng)絡(luò)管理的第二類是由構(gòu)成網(wǎng)絡(luò)的硬件所組成。這一類包括工作站、服務(wù)器、網(wǎng)卡、路由器、網(wǎng)橋和集線器等等。通常情況下這些設(shè)備都離你所在的地方很遠(yuǎn)。正是由于這個(gè)原因,如果當(dāng)設(shè)備有問題發(fā)生時(shí)網(wǎng)絡(luò)管理員可以自動(dòng)地被通知的話,那么一切事情都好辦。但是你的路由器不會(huì)象你的用戶那樣,當(dāng)有一個(gè)應(yīng)用程序問題發(fā)生時(shí)就可以打電話通知你,而當(dāng)路由器擁擠時(shí)它并不能夠通知你。
    為了解決這個(gè)問題,廠商們已經(jīng)在一些設(shè)備中設(shè)立了網(wǎng)絡(luò)管理的功能,這樣你就可以遠(yuǎn)程地詢問它們的狀態(tài),同樣能夠讓它們?cè)谟幸环N特定類型的事件發(fā)生時(shí)能夠向你發(fā)出警告。這些設(shè)備通常被稱為"智能"設(shè)備。
    網(wǎng)絡(luò)管理通常被分為四類:
    當(dāng)設(shè)計(jì)和構(gòu)造網(wǎng)絡(luò)管理的基礎(chǔ)結(jié)構(gòu)時(shí),你需要記住下列兩條網(wǎng)絡(luò)管理的原則:
    1.由于管理信息而帶來的通信量不應(yīng)明顯的增加網(wǎng)絡(luò)的通信量。
    2.被管理設(shè)備上的協(xié)議代理不應(yīng)明顯得增加系統(tǒng)處理的額外開銷,以致 于該設(shè)備的主要功能都被削弱了。
    2.什么是SNMP?
    簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)首先是由Internet工程任務(wù)組織(Internet Engineering Task Force)(IETF)的研究小組為了解決Internet上的路由器管理問題而提出的。許多人認(rèn)為 SNMP在IP上運(yùn)行的原因是Internet運(yùn)行的是TCP/IP協(xié)議,然而事實(shí)并不是這樣。
    SNMP被設(shè)計(jì)成與協(xié)議無關(guān),所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的傳輸協(xié)議上被使用。
    SNMP是一系列協(xié)議組和規(guī)范(見下表),它們提供了一種從網(wǎng)絡(luò)上的設(shè)備中收集網(wǎng)絡(luò)管理信息的方法。SNMP也為設(shè)備向網(wǎng)絡(luò)管理工作站報(bào)告問題和錯(cuò)誤提供了一種方法。
    名字 說明
    MIB 管理信息庫
    SMI 管理信息的結(jié)構(gòu)和標(biāo)識(shí)
    SNMP 簡單網(wǎng)絡(luò)管理協(xié)議
    從被管理設(shè)備中收集數(shù)據(jù)有兩種方法:一種是只輪詢(polling-only)的方法,另一種是基于中斷(interrupt-based)的方法。
    如果你只使用只輪詢的方法,那么網(wǎng)絡(luò)管理工作站總是在控制之下。而這種方法的缺陷在于信息的實(shí)時(shí)性,尤其是錯(cuò)誤的實(shí)時(shí)性。你多久輪詢一次,并且在輪詢時(shí)按照什么樣的設(shè)備順序呢?如果輪詢間隔太小,那么將產(chǎn)生太多不必要的通信量。如果輪詢間隔太大,并且在輪詢時(shí)順序不對(duì),那么關(guān)于一些大的災(zāi)難性的事件的通知又會(huì)太饅。這就違背了積極主動(dòng)的網(wǎng)絡(luò)管理目的。
    當(dāng)有異常事件發(fā)生時(shí),基于中斷的方法可以立即通知網(wǎng)絡(luò)管理工作站(在這里假設(shè)該設(shè)備還沒有崩潰,并且在被管理設(shè)備和管理工作站之間仍有一條可用的通信途徑)。然而,這種方法也不是沒有他的缺陷的,首先,產(chǎn)生錯(cuò)誤或自陷需要系統(tǒng)資源。如果自陷必須轉(zhuǎn)發(fā)大量的信息,那么被管理設(shè)備可能不得不消耗更多的時(shí)間和系統(tǒng)資源來產(chǎn)生自陷,從而影響了它執(zhí)行主要的功能(違背了網(wǎng)絡(luò)管理的原則2)。
    而且,如果幾個(gè)同類型的自陷事件接連發(fā)生,那么大量網(wǎng)絡(luò)帶寬可能將被相同的信息所占用(違背了網(wǎng)絡(luò)管理的原則1)。尤其是如果自陷是關(guān)于網(wǎng)絡(luò)擁擠問題的時(shí)候,事情就會(huì)變得特別糟糕。克服這一缺陷的一種方法就是對(duì)于被管理設(shè)備來說,應(yīng)當(dāng)設(shè)置關(guān)于什么時(shí)候報(bào)告問題的閾值(threshold)。但不幸的是這種方法可能再一次違背了網(wǎng)絡(luò)管理的原則2,因?yàn)樵O(shè)備必須消耗更多的時(shí)間和系統(tǒng)資源,來決定一個(gè)自陷是否應(yīng)該被產(chǎn)生。
    結(jié)果,以上兩種方法的結(jié)合:面向自陷的輪詢方法(trap-directed polling)可能是執(zhí)行網(wǎng)絡(luò)管理最為有效的方法了。一般來說,網(wǎng)絡(luò)管理工作站輪詢?cè)诒还芾碓O(shè)備中的代理來收集數(shù)據(jù),并且在控制臺(tái)上用數(shù)字或圖形的表示方式來顯示這些數(shù)據(jù)。這就允許網(wǎng)絡(luò)管理員分析和管理設(shè)備以及網(wǎng)絡(luò)通信量了。
    被管理設(shè)備中的代理可以在任何時(shí)候向網(wǎng)絡(luò)管理工作站報(bào)告錯(cuò)誤情況,例如預(yù)制定閾值越界程度等等。代理并不需要等到管理工作站為獲得這些錯(cuò)誤情況而輪詢他的時(shí)候才會(huì)報(bào)告。這些錯(cuò)誤情況就是眾所周知的SNMP自陷(trap)。