對(duì)SNMP協(xié)議從原理到特點(diǎn)的分析
學(xué)習(xí)網(wǎng)絡(luò)管理,我們不得不接觸到SNMP協(xié)議,那么什么是SNMP呢?就是網(wǎng)絡(luò)總的管理協(xié)議,翻譯過(guò)來(lái)的中文名稱則是簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議。從文字上面分析,就知道,這個(gè)是網(wǎng)絡(luò)管理最基本的,也是我們需要重點(diǎn)掌握的內(nèi)容。
簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP)是基于TCP/IP的網(wǎng)絡(luò)管理,實(shí)際上就是一群標(biāo)準(zhǔn)的集合。80年代末期由IETF開(kāi)發(fā)后,開(kāi)始被廣泛應(yīng)用在各類(lèi)網(wǎng)絡(luò)設(shè)備中,成為一種網(wǎng)管的工業(yè)標(biāo)準(zhǔn)。SNMP又稱之為管理者和代理之間的通信協(xié)議,包括理解SNMP的操作、SNMP信息的格式及如何在應(yīng)用程序和設(shè)備之間交換信息。
就概念而言,SNMP為網(wǎng)管界定了管理者(Manager)和代理者(Agent,被管理設(shè)備)之間的關(guān)系。兩者之間的共同點(diǎn)是都運(yùn)行TCP/IP協(xié)議。管理者可對(duì)管理設(shè)備提出效能、配置、和狀態(tài)等信息的詢問(wèn),透過(guò)要求與回復(fù)(request/replay)的簡(jiǎn)單機(jī)制來(lái)擷取代理者身上的信息,而兩者之間的信息主要是通過(guò)PDU協(xié)議數(shù)據(jù)單元來(lái)載送。SNMP使用UDP作為IP的傳輸層協(xié)議。
在實(shí)現(xiàn)過(guò)程中,管理者會(huì)發(fā)送一個(gè)PDU給一個(gè)代理者(可以是路由器、交換機(jī)、防火墻……等可支持網(wǎng)管的設(shè)備),代理者收到管理者所發(fā)出內(nèi)含詢問(wèn)信息的PDU報(bào)文后,再透過(guò)PDU回傳給相關(guān)的管理者。在該過(guò)程中,代理者基本上只能處于被動(dòng)的狀態(tài),反復(fù)進(jìn)行一問(wèn)一答的模式,而唯一可由代理者自動(dòng)發(fā)出的只有Trap的不定期回報(bào)特殊狀況信息。
SNMP協(xié)議有兩個(gè)基本命令模式:read和read/write。read是可以通過(guò)SNMP協(xié)議觀察設(shè)備配置細(xì)節(jié),而使用read/write模式可以讓管理者有權(quán)限修改設(shè)備配置。以當(dāng)前市場(chǎng)流行的大多數(shù)被網(wǎng)管的設(shè)備為例,如果設(shè)備的默認(rèn)口令沒(méi)有改變,那么攻擊者就可以利用默認(rèn)的口令得到其配置文件,文件一旦被破解,攻擊者就能夠?qū)υO(shè)備進(jìn)行遠(yuǎn)程非法的配置,實(shí)行攻擊。 目前,絕大多數(shù)的網(wǎng)絡(luò)設(shè)備和操作系統(tǒng)都可以支持SNMP,如D-Link、Cisco、3Com等等。 #p#
SNMPv3實(shí)現(xiàn)更優(yōu)管理
目前SNMP的發(fā)展主要包括三個(gè)版本:SNMPv1、SNMPv2以及最新的SNMPv3。從市場(chǎng)應(yīng)用來(lái)看,目前大多數(shù)廠商普遍支持的版本是SNMPv1和v2,但從安全鑒別機(jī)制來(lái)看,二者表現(xiàn)較差。而SNMPv3采用了新的SNMP擴(kuò)展框架,在此架構(gòu)下,安全性和管理上有很大的提高。在當(dāng)前的網(wǎng)絡(luò)設(shè)備市場(chǎng)中,D-Link已經(jīng)率先推出了支持SNMPv3的網(wǎng)絡(luò)產(chǎn)品,如DES-3226S、DES-3250TG交換機(jī)等,在安全功能和管理功能上都有良好的表現(xiàn)。
總體來(lái)看,SNMPv1和v2版本對(duì)用戶權(quán)力的惟一限制是訪問(wèn)口令,而沒(méi)有用戶和權(quán)限分級(jí)的概念,只要提供相應(yīng)的口令,就可以對(duì)設(shè)備進(jìn)行read或read/write操作,安全性相對(duì)來(lái)的薄弱。雖然SNMPv2使用了復(fù)雜的加密技術(shù),但并沒(méi)有實(shí)現(xiàn)提高安全性能的預(yù)期目標(biāo),尤其是在身份驗(yàn)證(如用戶初始接入時(shí)的身份驗(yàn)證、信息完整性的分析、重復(fù)操作的預(yù)防)、加密、授權(quán)和訪問(wèn)控制、適當(dāng)?shù)倪h(yuǎn)程安全配置和管理能力等方面。
SNMPv3是在SNMPv2基礎(chǔ)之上增加、完善了安全和管理機(jī)制。RFC 2271定義的SNMPv3體系結(jié)構(gòu)體現(xiàn)了模塊化的設(shè)計(jì)思想,使管理者可以簡(jiǎn)單地實(shí)現(xiàn)功能的增加和修改。其主要特點(diǎn)在于適應(yīng)性強(qiáng),可適用于多種操作環(huán)境,不僅可以管理最簡(jiǎn)單的網(wǎng)絡(luò),實(shí)現(xiàn)基本的管理功能,還能夠提供強(qiáng)大的網(wǎng)絡(luò)管理功能,滿足復(fù)雜網(wǎng)絡(luò)的管理需求。
目前,市場(chǎng)上的網(wǎng)絡(luò)設(shè)備尚停留在SNMPv1/v2的范疇,并未廣泛支持SNMPv3,如何配置設(shè)備的SNMP服務(wù)以確保網(wǎng)絡(luò)安全、完善管理機(jī)制呢?以下幾個(gè)方面建議或許值得網(wǎng)管人員一試:由于基于SNMPv1/v2協(xié)議本身具有不安全性,所以在管理過(guò)程中,如果沒(méi)有必要,可以不要開(kāi)啟SNMP代理程序;可以限制未授權(quán)IP對(duì)SNMP的訪問(wèn),或者改變SNMP代理的默認(rèn)口令,并使用復(fù)雜的口令;在后續(xù)采購(gòu)設(shè)備中,盡可能選用支持SNMPv3的設(shè)備產(chǎn)品。
綜合SNMP的不同版本,顯然SNMPv3的應(yīng)用推廣勢(shì)在必行,必然會(huì)以突出的優(yōu)勢(shì)成為新的應(yīng)用趨勢(shì)。一些市場(chǎng)反應(yīng)敏捷的網(wǎng)絡(luò)設(shè)備制造商已經(jīng)推出了相關(guān)產(chǎn)品。據(jù)了解,D-Link在新一代產(chǎn)品推出時(shí),已將此技術(shù)列入基本的協(xié)議支持,包括DES-3226S、DES-3250TG在內(nèi)的多款交換機(jī)已經(jīng)率先支持SNMPv3。 #p#
SNMP優(yōu)勢(shì)與弱點(diǎn)并存
在對(duì)上述網(wǎng)絡(luò)管理理念的實(shí)施過(guò)程中,技術(shù)和工業(yè)標(biāo)準(zhǔn)或許是最為重要的環(huán)節(jié)。如果沒(méi)有統(tǒng)一的工業(yè)標(biāo)準(zhǔn),管理的復(fù)雜性和成本將成倍增加,網(wǎng)絡(luò)的穩(wěn)定性和可靠性將大幅度下降,智能、安全、開(kāi)放的目標(biāo)也無(wú)法實(shí)現(xiàn)。在現(xiàn)實(shí)中,普通網(wǎng)絡(luò)上的所有設(shè)備都支持工業(yè)標(biāo)準(zhǔn)協(xié)議,以便不同的設(shè)備之間可以實(shí)現(xiàn)暢通無(wú)阻的通信,而使用專(zhuān)用產(chǎn)品則還需要配套使用高價(jià)值的附加產(chǎn)品?;诖耍W(wǎng)絡(luò)管理的主流技術(shù)便在幾個(gè)主要的工業(yè)標(biāo)準(zhǔn)之上衍生而來(lái),其中SNMP (簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)、RMON (遠(yuǎn)程監(jiān)控)和RMON II等標(biāo)準(zhǔn)和技術(shù)無(wú)疑是最重要的部分。
用戶數(shù)據(jù)網(wǎng)絡(luò)通常是使用SNMP協(xié)議進(jìn)行管理的。SNMP(Simple Network Management Protocol,簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)是一種廣為執(zhí)行的網(wǎng)絡(luò)協(xié)議,它使用嵌入到網(wǎng)絡(luò)設(shè)施中的代理軟件來(lái)收集網(wǎng)絡(luò)通信信息和有關(guān)網(wǎng)絡(luò)設(shè)備的統(tǒng)計(jì)數(shù)據(jù)。代理不斷地收集統(tǒng)計(jì)數(shù)據(jù),如所收到的字節(jié)數(shù)等,并把這些數(shù)據(jù)記錄到一個(gè)管理信息庫(kù)(MIB,Management Information Base)中,網(wǎng)管員通過(guò)向代理的MIB發(fā)出查詢信號(hào)就可以得到這些信息,這個(gè)過(guò)程就叫做輪詢(polling),是SNMP最基本的特點(diǎn)。
SNMP是被廣泛接受并投入使用的工業(yè)標(biāo)準(zhǔn),它的目標(biāo)是保證管理信息在任意兩點(diǎn)中傳送,便于網(wǎng)絡(luò)管理員在網(wǎng)絡(luò)上的任何節(jié)點(diǎn)檢索信息、進(jìn)行修改、尋找故障,并完成故障診斷、容量規(guī)劃和報(bào)告生成。采用輪詢機(jī)制的SNMP能夠提供網(wǎng)絡(luò)管理最基本的功能集,最適合小型、快速、低價(jià)的網(wǎng)絡(luò)環(huán)境使用。由于SNMP只要求無(wú)證實(shí)的傳輸層協(xié)議UDP,因而受到許多產(chǎn)品的廣泛支持。 #p#
SNMP協(xié)議工作方式
SNMP以GET-SET方式替代了復(fù)雜的命令集,可以利用基本操作完成全部操作,同時(shí),用戶可以采用管理信息庫(kù)標(biāo)準(zhǔn)或按標(biāo)準(zhǔn)的方式來(lái)定義自己的MIB。這樣就可以通過(guò)降低網(wǎng)管系統(tǒng)中眾多代理部件的成本來(lái)降低整個(gè)網(wǎng)管系統(tǒng)的成本。
在SNMP中,網(wǎng)管站(NMS)是網(wǎng)絡(luò)管理的實(shí)體,網(wǎng)管站里運(yùn)行網(wǎng)絡(luò)管理軟件,它對(duì)網(wǎng)絡(luò)設(shè)備發(fā)送各種查詢報(bào)文,并接收來(lái)自被管設(shè)備的響應(yīng)及陷阱(Trap)報(bào)文,將結(jié)果顯示出來(lái)。網(wǎng)管站通常是一臺(tái)工作站、PC Server或者就是一臺(tái)PC機(jī),通過(guò)數(shù)據(jù)網(wǎng)絡(luò)本身與被管設(shè)備相連(如局域網(wǎng)口),它在網(wǎng)絡(luò)中就是一個(gè)主機(jī),因此在通常的網(wǎng)絡(luò)里面都是帶內(nèi)網(wǎng)管,即網(wǎng)管站與設(shè)備間的數(shù)據(jù)與普通的數(shù)據(jù)是相同的。當(dāng)然,在網(wǎng)絡(luò)設(shè)備里面可以設(shè)置QoS來(lái)對(duì)相應(yīng)的數(shù)據(jù)進(jìn)行保護(hù)。
網(wǎng)管代理(Agent)則是駐留在被管設(shè)備(如路由器、交換機(jī)等)上的一個(gè)進(jìn)程,負(fù)責(zé)接受、處理來(lái)自網(wǎng)管站的請(qǐng)求報(bào)文,然后將設(shè)備接口等特性管理變量的數(shù)值形成響應(yīng)報(bào)文,發(fā)送給NMS,并在一些緊急情況下,如接口狀態(tài)發(fā)生改變、呼叫成功等時(shí)候,主動(dòng)通知NMS(發(fā)送陷阱Trap報(bào)文)。網(wǎng)管軟件則根據(jù)這些響應(yīng)的數(shù)據(jù)包,通過(guò)構(gòu)建直觀的拓?fù)鋱D等方式,便于網(wǎng)管人員進(jìn)行設(shè)備的監(jiān)控及管理。SNMP就是用來(lái)規(guī)定NMS和Agent之間是如何傳遞管理信息的應(yīng)用層協(xié)議。 #p#
弱點(diǎn)不容忽視
然而,部分業(yè)內(nèi)人士也認(rèn)為,SNMP也存在著一定的問(wèn)題: 它使用嵌入到網(wǎng)絡(luò)設(shè)施中的代理軟件來(lái)收集網(wǎng)絡(luò)通信信息和有關(guān)網(wǎng)絡(luò)設(shè)備的統(tǒng)計(jì)數(shù)據(jù),代理不斷地收集統(tǒng)計(jì)數(shù)據(jù)并記錄到MIB中,網(wǎng)絡(luò)管理人員通過(guò)向代理的MIB發(fā)出查詢信號(hào)(輪詢)可以得到這些信息。因此,雖然MIB計(jì)數(shù)器將統(tǒng)計(jì)數(shù)據(jù)的總和記錄下來(lái)了,但它無(wú)法對(duì)日常通信量進(jìn)行歷史分析。當(dāng)然,為了能全面地查看一天的通信流量和變化率,管理人員必須不斷地輪詢SNMP代理,例如一天中的每分鐘都要輪詢一次。這樣,網(wǎng)管員可以使用SNMP來(lái)評(píng)價(jià)網(wǎng)絡(luò)的運(yùn)行狀況,并揭示出通信的趨勢(shì),如哪一個(gè)網(wǎng)段接近通信負(fù)載的最大能力或正在導(dǎo)致通信出錯(cuò),先進(jìn)的SNMP網(wǎng)管站甚至可以進(jìn)行編程來(lái)自動(dòng)關(guān)閉端口或采取其他矯正措施來(lái)處理歷史的網(wǎng)絡(luò)數(shù)據(jù)。
盡管如此,SNMP協(xié)議建立在輪詢上的管理依然存在著兩個(gè)明顯的弱點(diǎn):在大型的網(wǎng)絡(luò)中,輪詢會(huì)產(chǎn)生巨大的網(wǎng)絡(luò)管理通信量,因而導(dǎo)致通信擁擠情況的發(fā)生; 它將收集數(shù)據(jù)的負(fù)擔(dān)加在網(wǎng)絡(luò)管理控制臺(tái)上,管理站也許能輕松地收集8個(gè)網(wǎng)段的信息,但當(dāng)它們監(jiān)控48個(gè)網(wǎng)段時(shí)恐怕就難以應(yīng)付了。