国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 網絡通信 > 正文

簡單網絡管理協議(SNMP)

2019-11-04 12:04:16
字體:
來源:轉載
供稿:網友

  作為一名網絡顧問或網絡治理員,在你安裝完網絡并且設置了用戶帳號與應用程序之后,你的工作并沒有完成。你的下一個職責就是網絡治理,它就好比是一場永遠也不會結束的戰斗一樣。
  
  目前存在著兩種類型的網絡治理問題:一種是與軟件相關的,例如數據安全性和存取許可;另一種是與硬件相關的問題。這里注重討論第二種,即通過使用簡單網絡治理協議(SNMP)和在處理與軟件相關的治理問題時所用到的一些思想,把網絡硬件作為一個整體進行治理。
  
  介紹SNMP的英文網站很多,但相關的中文網站寥寥無幾,這正是鄙人設立本站的初衷所在。這里將從基本原理著手,介紹到底什么是 SNMP,并引導新手如何親自動手實踐。在不久的將來我將給出linux和SOLARIS上基于X WINDOWS的簡單發布和源碼
  
  1.什么是網絡治理?
  網絡治理分為兩類。第一類是網絡應用程序、用戶帳號(例如文件的使用)和存取權限(許可)的治理。它們都是與軟件有關的網絡治理問題。這里不作討論。
  
  網絡治理的第二類是由構成網絡的硬件所組成。這一類包括工作站、服務器、網卡、路由器、網橋和集線器等等。通常情況下這些設備都離你所在的地方很遠。正是由于這個原因,假如當設備有問題發生時網絡治理員可以自動地被通知的話,那么一切事情都好辦。但是你的路由器不會象你的用戶那樣,當有一個應用程序問題發生時就可以打電話通知你,而當路由器擁擠時它并不能夠通知你。
  
  為了解決這個問題,廠商們已經在一些設備中設立了網絡治理的功能,這樣你就可以遠程地詢問它們的狀態,同樣能夠讓它們在有一種特定類型的事件發生時能夠向你發出警告。這些設備通常被稱為"智能"設備。
  
  網絡治理通常被分為四類:
  

  當設計和構造網絡治理的基礎結構時,你需要記住下列兩條網絡治理的原則:
  
  1.由于治理信息而帶來的通信量不應明顯的增加網絡的通信量。
  2.被治理設備上的協議代理不應明顯得增加系統處理的額外開銷,以致 于該設備的主要功能都被削弱了。
  
  2.什么是SNMP?
  簡單網絡治理協議(SNMP)首先是由Internet工程任務組織(Internet Engineering Task Force)(IETF)的研究小組為了解決Internet上的路由器治理問題而提出的。許多人認為 SNMP在ip上運行的原因是Internet運行的是TCP/IP協議,然而事實并不是這樣。
  
  SNMP被設計成與協議無關,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的傳輸協議上被使用。
  
  SNMP是一系列協議組和規范(見下表),它們提供了一種從網絡上的設備中收集網絡治理信息的方法。SNMP也為設備向網絡治理工作站報告問題和錯誤提供了一種方法。
  
  名字 說明
  MIB 治理信息庫
  SMI 治理信息的結構和標識
  SNMP 簡單網絡治理協議
  
  從被治理設備中收集數據有兩種方法:一種是只輪詢(polling-only)的方法,另一種是基于中斷(interrupt-based)的方法。
  
  假如你只使用只輪詢的方法,那么網絡治理工作站總是在控制之下。而這種方法的缺陷在于信息的實時性,尤其是錯誤的實時性。你多久輪詢一次,并且在輪詢時按照什么樣的設備順序呢?假如輪詢間隔太小,那么將產生太多不必要的通信量。假如輪詢間隔太大,并且在輪詢時順序不對,那么關于一些大的災難性的事件的通知又會太饅。這就違反了積極主動的網絡治理目的。
  
  當有異常事件發生時,基于中斷的方法可以立即通知網絡治理工作站(在這里假設該設備還沒有崩潰,并且在被治理設備和治理工作站之間仍有一條可用的通信途徑)。然而,這種方法也不是沒有他的缺陷的,首先,產生錯誤或自陷需要系統資源。假如自陷必須轉發大量的信息,那么被治理設備可能不得不消耗更多的時間和系統資源來產生自陷,從而影響了它執行主要的功能(違反了網絡治理的原則2)。
  
  而且,假如幾個同類型的自陷事件接連發生,那么大量網絡帶寬可能將被相同的信息所占用(違反了網絡治理的原則1)。尤其是假如自陷是關于網絡擁擠問題的時候,事情就會變得非凡糟糕。克服這一缺陷的一種方法就是對于被治理設備來說,應當設置關于什么時候報告問題的閾值(threshold)。但不幸的是這種方法可能再一次違反了網絡治理的原則2,因為設備必須消耗更多的時間和系統資源,來決定一個自陷是否應該被產生。
  
  結果,以上兩種方法的結合:面向自陷的輪詢方法(trap-directed polling)可能是執行網絡治理最為有效的方法了。一般來說,網絡治理工作站輪詢在被治理設備中的代理來收集數據,并且在控制臺上用數字或圖形的表示方式來顯示這些數據。這就答應網絡治理員分析和治理設備以及網絡通信量了。
  
  被治理設備中的代理可以在任何時候向網絡治理工作站報告錯誤情況,例如預制定閾值越界程度等等。代理并不需要等到治理工作站為獲得這些錯誤情況而輪詢他的時候才會報告。這些錯誤情況就是眾所周知的SNMP自陷(trap)。
  
  在這種結合的方法中,當一個設備產生了一個自陷時,你可以使用網絡治理工作站來查詢該設備(假設它仍然是可到達的),以獲得更多的信息。
  
  3.什么是被治理設備?
  你可能聽說過許多關于“SNMP可治理設備”、“與SNMP兼容的設備”或者“被SNMP治理的設備”的說法。但是它們到底什么?它們與“智能設備”又是怎么區別的呢?
  
  簡單地說,以上所有說法的意思都是“一個包含網絡治理代理實現的網絡設備”。這些話也意味著這種代理支持SNMP協議來進行信息交換。正如前面所提到的,一個智能設備可能并不需要使用或支持SNMP協議。那么什么是一個代理呢?
  
  代理
  治理代理(agent)是一種非凡的軟件(或固件),它包含了關于一個非凡設備和/或該設備所處環境的信息。當一個代理被安裝到一個設備上時,上述的設備就被列為“被治理的”。換句話說,代理就是一個數據庫
  
  數據庫中所包含的數據隨被安裝設備的不同而不同。舉例來說,在一個路由器上,代理將包含關于路由選擇表、接收和發送包的總數等信息。而對于一個網橋來說,數據庫可能包含關于轉發包數目和過濾表等信息。
  
  代理是與網絡治理控制臺通信的軟件或固件。在這個控制臺的“鏈路”上可以執行以下任務:
  
  ● 網絡治理工作站可以從代理中獲得關于設備的信息。
  ● 網絡治理工作站可以修改、增加或者刪除代理中的表項,例如在由代理所維護的數據庫中的路由選擇表表項。
  ● 網絡治理工作站可以為一個特定的自陷設置閾值。
  ● 可以向網絡治理工作站發送自陷。
  
  請記住,在被治理設備中的代理并不是自愿提供信息的,除非當有一個閾值被超過的事件發生時。
  
  在一些偶然的情況下,在一個特定的設備上可能因為系統資源的缺乏,或者因為該設備不支持SNMP代理所需要的傳輸協議,而不能實現一個SNMP代理。這是否就意味著你不能監視這個設備呢?答案并不是這樣的,在這種情況下并不是完全沒有辦法的。你可以使用受托代理(PRoxy agent),它相當于外部設備(foreign device)。
  
  受托代理并非在被治理的外部設備上運行,而是在另一個設備上運行。網絡治理工作站首先與受托代理聯系,并且指出(通過某種方法)受托代理與外部設備的一致性。然后受托代理把它接收到的協議命令翻譯成任何一種外部設備所支持的治理協議。在這種情況下,受托代理就被稱為應用程序網關(application gateway)。
  
  假如外部設備不支持任何治理協議,那么受托代理必須使用一些被動的方法來監視這個設備。舉例來說,一個令牌環網橋的受托代理可以監視它的性能,并且假如它檢測到任何由網橋所報告的擁擠錯誤時,它就會產生自陷。幸運的是,目前大多數網際互聯設備類型都是支持SNMP可治理設備的,所以你可以很輕易地使用一個SNMP可治理設備,例如集線器、網橋和路由器。有一些廠商甚至還在他們的網卡上提供SNMP代理。
  
  MIB
  我們通常很少把在一個被治理設備中的數據庫稱為一個數據庫。在SNMP術語中它通常被稱為治理信息庫(MIB)。
  
  一個MIB描述了包含在數據庫中的對象或表項。每一個對象或表項都有以下四個屬性:
  
  ● 對象類型(Object Type)
  ● 語法(Syntax)
  ● 存取(access
  ● 狀態(Status)
  在SNMP規范之一的治理信息結構與標識(SMI;RFC 1155/1065)規范中定義了這些屬性。SMI對于MIB來說就相當于模式對于數據庫。SMI定義了每一個對象“看上去象什么”。
  
  對象類型
  這個屬性定義了一個特定對象的名字,例如sysUpTime。它只不過是一個標記。在表示數據時,SMI使用了ASN.1(Abstract Syntax Notation One)。對象必須被“標識”。對于互聯網絡治理MIB來說,用ASN.1記法來表示的標識符開頭如下:
  
  internet OBJECT IDENTIFIER : : = { iso org(3) dod(6) 1 }
  
  或者用一種簡單的格式:
  
  1.3.6.1
  
  這是從ASN.1文檔中抽取的。它為標識符定義了一個樹形的格式。該樹是由一個根及與之相連接的許多被標記的節點組成。每一個節點由一個非負整數值和盡可能簡明的文字說明所標識。每一個節點可能也擁有同樣被標記的子節點。
  
  當描述一個對象標識符(OBJECT INDENTIFIER)時,你可以使用幾種格式,最簡單的格式是列出由根開始到所討論的對象遍歷該樹所找到的整數值。   從根一級開始,這里有三個節點(如圖):
  
  ● ccitt(0)
  ● iso(1)
  ● joint-iso-ccitt(2)
  
  其中每一個“分支”都被標記中所示的治理組織所治理。
  
  語法
  這個屬性指定了數據類型,例如整數、8位組串數字(字符串;范圍為0至255)、對象標識符(預先定義的數據類型別名)或NULL。NULL是留待的后使用的空位。
  
  存取
  存取表明了這個特定對象的存取級別。合法的值有:只讀、讀寫、只寫和不可存取。
  
  狀態
  狀態定義了這個對象的實現需要:必備的(被治理節點必須實現該對象);可選的(被治理對象可能實現該對象);或者已廢棄的(被治理設備不需要再實現該對象)。
  
  簡單網絡治理協議
  簡單網絡治理協議答應網絡治理工作站軟件與被治理設備中的代理進行通信。這種通信可以包括來自治理工作站的詢問消息、來自代理的應答消息或者來自代理給治理工作站的自陷消息。
  
  為了保證因網絡治理而帶來的通信量是最小的(網絡治理原則1),SNMP使用了一種異步客戶機/服務器方法。這意味著一個SNMP實體(治理工作站或被治理設備)在發出一條消息后不需要等待一個應答;然而,除了自陷的情況以外應答都是要被產生的。假如需要的話該實體可以發送另一條消息,或者也可以繼續它預先被定義的功能。SNMPv1實現起來很簡單并且對資源占用不多,它只有5個請求/響應原語:
  
  ● get-request
  ● set-request
  ● get-next-request
  ● get-reponse
  ● trap
  
  網絡治理工作站可以把感愛好的變量值提取到其應用程序中,只要發出get-request或get-next-request報文即可。前者是指定對象的讀操作,后者則提供了一個樹遍歷操作符,便于確定一個代理進程支持哪些對象。網絡治理工作站可以修改代理進程中的變量值,只要發出set-request報文即可。
  
  假如沒有發生錯誤,代理進程可以用get-reponse原語回答這些請求。另外,利用trap原語,代理進程可以異步地發送告警給網絡治理工作站,告訴它發生了某個滿足預設條件的事件。
  
  實現中的經驗和設計過程中的不斷完善給SNMPv2帶來了協議改進意見,即給網絡治理工作站增加一個成塊讀操作get-bulk-request報文。當需要用一個請求原語提取大量數據(如讀取某個表的內容)時就可以調用它以提高效率。SNMPv2也引進治理進程和治理進程之間的通信進行狀況報告,為此增加了一條原語inform-request,并把get-response簡化成更加合理的名稱reponse。trap報文則已改為snmpv2-trap,并與所有的協議報文具有同樣的格式。
  
  4.巧妙而有效地治理你的網絡
  網絡治理的兩種方法是積極主動(pro-active)的方法和被動反應(re-active)得分方法。在大多數的時間里,我們總是要對一個事件作出反應,但這并不是有效的網絡治理。
  
  在積極主動的方式中,你所有現存的資源都得到了充分使用。假如你有智能集線器,那么請你把它找出來。幾乎所有現存的路由器都至少在MIB-I級別上支持SNMP協議。假如你不能確定的話,請你和廠商聯系。
  
  當治理網絡時,你需要明確的第一件事情就是要知道什么時候網絡出問題。但是,你怎樣辨別網絡出問題了呢?對于人類來說,你會尋找以下癥狀,你會檢查體暖和脈搏。你網絡上的癥狀也可以被監視,例如帶寬利用率隨時間的變化、服務器和路由器上的CPU利用率及通常在網線上的錯誤量(你總有以下錯誤)。請你使用網絡治理工作站來跟蹤這些統計數據一段時間,不如說兩個星期,并且統計出一天中不同時候的平均值。這將成為你的基準線(baseline)。
  
  一個基準線就是一系列數字,這些數字反映出了一個“健康”的網絡。對于人類來說,一個“正常而且健康”的體溫是37度。這就是你區分一個人是否發燒的基準線。你也需要一個基準線來決定你的網絡是否出了問題。通過監視被治理設備中的網絡閾值設置,并且尋找故障的征兆,你就可以擁有一個提前報警的系統了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁津县| 察隅县| 巴彦县| 石门县| 莒南县| 沅陵县| 清水县| 铁力市| 纳雍县| 寻甸| 庆阳市| 沽源县| 松原市| 阿勒泰市| 临安市| 宁波市| 阿合奇县| 五原县| 开平市| 射阳县| 井研县| 铁岭市| 正安县| 镇坪县| 扬中市| 郧西县| 天等县| 白朗县| 金昌市| 盈江县| 沅江市| 武安市| 社会| 垫江县| 灵山县| 沧源| 赤峰市| 吉水县| 咸阳市| 慈利县| 和平县|