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