走進SNMP協議與SNMP報文的知識
一條SNMP報文由三個部分組成:版本域(version field),分區域(community field)和SNMP協議數據單元域(SNMP protocol data unit field),數據包的長度不是固定的。
SNMP協議也定義了執行以上三個SNMP命令時的SNMP報文流, 但它沒有定義其它的設備管理代理SNMP命令,可應用于MIB數據對象的操作只有Set和Get命令,這兩個命令的目標是數據對象的值。
比如說,SNMP協議中沒有定義reboot(重啟)SNMP命令;然而,管理代理軟件把MIB數據對象和設備的內部SNMP命令聯系起來,這樣就可以實現某些特殊的命令操作。如果現在想要重啟某個設備,管理系統就把某個與重啟有關的MIB數據對象的值設為1(我們的假定)。
這樣就會觸發管理代理執行重新啟動設備的SNMP命令,同時還把這個MIB數據對象重新設置為原來的狀態。
版本域:這個域用于說明現在使用的是哪個版本的SNMP協議。目前,version 1是使用最廣泛的SNMP協議。
分區域:分區(community)是基本的安全機制,用于實現SNMP網絡管理員訪問SNMP管理代理時的身份驗證。
分區名(Community name)是管理代理的口令,管理員被允許訪問數據對象的前提就是網絡管理員知道網絡代理的口令。如果把配置管理代理成可以執行Trap命令,當網絡管理員用一個錯誤的分區名查詢管理代理時,系統就發送一個autenticationFailure trap SNMP報文。
協議數據單元域:SNMPv1的PDU有五種類型,有些是SNMP報文請求(Request),有些則是響應(Response)。它們包括:GetRequest、GetNextRequest、SetRequest、GetResponse、Trap 。SNMPv2又增加了兩種PDU:GetBulkRequest和InformRequest 。
SNMP管理員使用GetRequest從擁有SNMP代理的網絡設備中檢索信息,SNMP代理以GetResponse消息響應GetRequest??梢越粨Q的信息很多,如系統的名字,系統自啟動后正常運行的時間,系統中的網絡接口數等等。GetRequest和GetNextRequest結合起來使用可以獲得一個表中的對象。
GetRequest取回一個特定對象;而使用GetNextRequest則是請求表中的下一個對象。使用SetRequest可以對一個設備中的參數進行遠程配置。Set-Request可以設置設備的名字,關掉一個端口或清除一個地址解析表中的項。Trap即SNMP陷阱,是SNMP代理發送給管理站的非請求消息。SNMP報文的知識,我們就講解到這里。
【編輯推薦】