Linux SNMP中的命令和代理詳解
在SNMP協(xié)議的學習中,我們一直都在對Linux SNMP這部分知識進行深化講解。那么接下來我們主要針對兩部分內(nèi)容進行解析。首先是對SNMP命令的介紹,之后再對SNMP代理進行分析。希望從中能讓大家掌握到Linux SNMP中重要的知識。
SNMP命令
SNMP命令是我們操作Linux SNMP的一些快捷方式。SNMP協(xié)議(Simple Network Management Protocol)即簡單網(wǎng)絡管理協(xié)議,它為網(wǎng)絡管理系統(tǒng)提供了底層網(wǎng)絡管理的框架。
SNMP協(xié)議定義了數(shù)據(jù)包的格式,及網(wǎng)絡管理員和管理代理之間的信息交換,它還控制著管理代理的MIB數(shù)據(jù)對象。因此,可用于處理管理代理定義的各種任務。SNMP協(xié)議之所以易于使用,這是因為它對外提供了三種用于控制MIB對象的基本操作SNMP命令。
它們是:Set 、Get 和 Trap :
Set:它是一個特權(quán)SNMP命令,因為可以通過它來改動設備的配置或控制設備的運轉(zhuǎn)狀態(tài)。
Get:它是SNMP協(xié)議中使用率***的一個SNMP命令,因為該SNMP命令是從網(wǎng)絡設備中獲得管理信息的基本方式。
Trap:它的功能就是在網(wǎng)絡管理系統(tǒng)沒有明確要求的前提下,由管理代理通知網(wǎng)絡管理系統(tǒng)有一些特別的情況或問題發(fā)生了。
SNMP協(xié)議也定義了執(zhí)行以上三個SNMP命令時的報文流, 但它沒有定義其它的設備管理代理SNMP命令,可應用于MIB數(shù)據(jù)對象的操作只有Set和Get命令,這兩個命令的目標是數(shù)據(jù)對象的值。
比如說,SNMP協(xié)議中沒有定義reboot(重啟)SNMP命令;然而,管理代理軟件把MIB數(shù)據(jù)對象和設備的內(nèi)部SNMP命令聯(lián)系起來,這樣就可以實現(xiàn)某些特殊的命令操作。如果現(xiàn)在想要重啟某個設備,管理系統(tǒng)就把某個與重啟有關(guān)的MIB數(shù)據(jù)對象的值設為1(我們的假定)。
這樣就會觸發(fā)管理代理執(zhí)行重新啟動設備的SNMP命令,同時還把這個MIB數(shù)據(jù)對象重新設置為原來的狀態(tài)。
你可能聽說過許多關(guān)于“Linux SNMP可管理設備”、“與Linux SNMP兼容的設備”或者“被Linux SNMP管理的設備”的說法。但是它們到底什么?它們與“智能設備”又是怎么區(qū)別的呢?
簡單地說,以上所有說法的意思都是“一個包含網(wǎng)絡管理代理實現(xiàn)的網(wǎng)絡設備”。這些話也意味著這種代理支持Linux SNMP協(xié)議來進行信息交換。正如前面所提到的,一個智能設備可能并不需要使用或支持Linux SNMP協(xié)議。那么什么是一個代理呢?
SNMP代理
管理代理(agent)是一種特殊的軟件(或固件),它包含了關(guān)于一個特殊設備和/或該設備所處環(huán)境的信息。當一個代理被安裝到一個設備上時,上述的設備就被列為“被管理的”。換句話說,代理就是一個數(shù)據(jù)庫。
數(shù)據(jù)庫中所包含的數(shù)據(jù)隨被安裝設備的不同而不同。舉例來說,在一個路由器上,代理將包含關(guān)于路由選擇表、接收和發(fā)送包的總數(shù)等信息。而對于一個網(wǎng)橋來說,數(shù)據(jù)庫可能包含關(guān)于轉(zhuǎn)發(fā)包數(shù)目和過濾表等信息。
代理是與網(wǎng)絡管理控制臺通信的軟件或固件。在這個控制臺的“鏈路”上可以執(zhí)行以下任務:
◆網(wǎng)絡管理工作站可以從代理中獲得關(guān)于設備的信息。
◆網(wǎng)絡管理工作站可以修改、增加或者刪除代理中的表項,例如在由代理所維護的數(shù)據(jù)庫中的路由選擇表表項。
◆網(wǎng)絡管理工作站可以為一個特定的自陷設置閾值。
◆可以向網(wǎng)絡管理工作站發(fā)送自陷。
請記住,在被管理設備中的代理并不是自愿提供信息的,除非當有一個閾值被超過的事件發(fā)生時。
在一些偶然的情況下,在一個特定的設備上可能因為系統(tǒng)資源的缺乏,或者因為該設備不支持Linux SNMP代理所需要的傳輸協(xié)議,而不能實現(xiàn)一個Linux SNMP代理。這是否就意味著你不能監(jiān)視這個設備呢?答案并不是這樣的,在這種情況下并不是完全沒有辦法的。你可以使用受托代理(proxy agent),它相當于外部設備(foreign device)。
受托代理并非在被管理的外部設備上運行,而是在另一個設備上運行。網(wǎng)絡管理工作站首先與受托代理聯(lián)系,并且指出(通過某種方法)受托代理與外部設備的一致性。然后受托代理把它接收到的協(xié)議命令翻譯成任何一種外部設備所支持的管理協(xié)議。在這種情況下,受托代理就被稱為應用程序網(wǎng)關(guān)(application gateway)。
如果外部設備不支持任何管理協(xié)議,那么受托代理必須使用一些被動的方法來監(jiān)視這個設備。舉例來說,一個令牌環(huán)網(wǎng)橋的受托代理可以監(jiān)視它的性能,并且如果它檢測到任何由網(wǎng)橋所報告的擁擠錯誤時,它就會產(chǎn)生自陷。
幸運的是,目前大多數(shù)網(wǎng)際互聯(lián)設備類型都是支持Linux SNMP可管理設備的,所以你可以很容易地使用一個Linux SNMP可管理設備,例如集線器、網(wǎng)橋和路由器。有一些廠商甚至還在他們的網(wǎng)卡上提供Linux SNMP代理。