SNMP是什麼鬼東西?

2021-02-19 網絡工程師阿龍

分享、傳播有價值的知識

阿龍希望每一個讀者去認識、學習一個新的東西的時候,能帶著這樣疑問句句式去學習新技術。xxx是什麼鬼東西?為什麼會有它的出現?why?

SNMP是什麼鬼東西?為什麼會有它的出現?

早期,網絡可能比較單一、設備的數量也較少,那時如果要去管理、查看設備上的信息就一臺一臺登錄到設備上,逐個查看。但是網絡發展到今天,企業的業務利用網絡越來越豐富了,設備數量急劇增加,如果再一臺臺去登錄管理,那麼企業的管理員工作量就非常大了。so,SNMP就出現了。有了這個協議,企業就部署一臺snmp伺服器,來它為管理員做一部分工作。snmp伺服器可以定期去採集設備的信息,例如,看看設備的內存還剩多少啊?看看設備當前的CPU溫度多高啊? 我舉個例子吧!這種工作模式,就有點像生活中的醫院,在醫院每層樓都有個服務臺,和許多病房(這病房裡的病人就好比設備。)護士,會定期去測量病人體溫(好比SNMP定期去採集設備的溫度)。護士,把所有病人的體溫統一收集到服務臺,一般服務臺有個信息欄,xxx病房 xxx病人 體溫為xxx。這樣,醫生只要在服務臺查看,就能了解病人的狀態了。無需到每個人病人去測體溫。醫生的工作量也就減少了。

SNMP還有個trap功能,這個功能就好比病人如果突然感到不適了,或者輸液藥水輸完了,只需按一下床頭的按鈕,就可以呼叫護士了。  設備也是這樣的,如果設備出現異常,就會主動通過trap報文告知snmp伺服器。snmp伺服器上可以設置簡訊告警,然後管理員就可以通過收到簡訊獲悉了。

來看看,官方的定義是如何解釋的?

定義

簡單網絡管理協議SNMP(Simple Network Management Protocol)是廣泛應用於TCP/IP網絡的網絡管理標準協議。SNMP提供了一種通過運行網絡管理軟體的中心計算機(即網絡管理工作站)來管理設備的方法。SNMP的特點如下:

目的

隨著網絡技術的飛速發展,在網絡不斷普及的同時也給網絡管理帶來了一些問題:

在這種背景下,SNMP應運而生。通過「利用網絡管理網絡」的方式,SNMP實現了對網絡設備的高效和批量的管理;同時,SNMP協議也屏蔽了不同產品之間的差異,實現了不同種類和廠商的網絡設備之間的統一管理。

版本演進

1990年5月,RFC 1157定義了SNMP的第一個版本SNMPv1。RFC 1157提供了一種監控和管理計算機網絡的系統方法。SNMPv1基於團體名認證,安全性較差,且返回報文的錯誤碼也較少。

後來,IETF頒布了SNMPv2c。SNMPv2c中引入了GetBulk和Inform操作,支持更多的標準錯誤碼信息,支持更多的數據類型(Counter64、Counter32)。

鑑於SNMPv2c在安全性方面沒有得到改善,IETF又頒布了SNMPv3的版本,提供了基於USM(User Security Module)的認證加密和基於VACM(View-based Access Control Model)的訪問控制。

受益

網絡管理員可以利用SNMP平臺在網絡上的任意節點完成信息查詢、信息修改和故障排查等工作,工作效率得以提高。

屏蔽了設備間的物理差異,SNMP僅提供最基本的功能集,使得管理任務與被管理設備的物理特性、網絡類型相互獨立,因而可以實現對不同設備的統一管理,管理成本低。

設計簡單、運行代價低,SNMP採用「儘可能簡單」的設計思想,其在設備上添加的軟體/硬體、報文的種類和報文的格式都力求簡單,因而運行SNMP給設備造成的影響和代價都被最小化。

想要學好SNMP,一定要記住四個組件。把這4個組件記牢了,帶著這四個組件去學習,相信,聰明的你,很快就能掌握SNMP了。

SNMP系統包括網絡管理系統NMS(Network Management System)、代理進程Agent、被管對象Management object和管理信息庫MIB(Management Information Base)四部分組成。

NMS作為整個網絡的網管中心,對設備進行管理。

每個被管理設備中都包含駐留在設備上的Agent進程、MIB和多個被管對象。NMS通過與運行在被管理設備上的Agent交互,由Agent通過對設備端的MIB的操作,完成NMS的指令。

網絡管理模型如圖1所示。

圖1 SNMP管理模型 

下面介紹網絡管理系統中各主要元素:

NMS

NMS在網絡中扮演管理者角色,是一個採用SNMP協議對網絡設備進行管理/監視的系統,運行在NMS伺服器上。

Agent

Agent是被管理設備中的一個代理進程,用於維護被管理設備的信息數據並響應來自NMS的請求,把管理數據匯報給發送請求的NMS。

Management object

Management object指被管理對象。每一個設備可能包含多個被管理對象,被管理對象可以是設備中的某個硬體,也可以是在硬體、軟體(如路由選擇協議)上配置的參數集合。

MIB

MIB是一個資料庫,指明了被管理設備所維護的變量(即能夠被Agent查詢和設置的信息)。MIB在資料庫中定義了被管理設備的一系列屬性:對象的名稱、對象的狀態、對象的訪問權限和對象的數據類型等。

通過MIB,可以完成以下功能:

SNMP的管理信息庫採用和域名系統DNS相似的樹型結構,它的根在最上面,根沒有名字。如圖2所示的是管理信息庫的一部分,它又稱為對象命名樹。每個OID(object identifier,對象標識符)對應於樹中的一個管理對象,如system的OID為1.3.6.1.2.1.1, interfaces的OID為1.3.6.1.2.1.2。

通過OID樹,可以高效且方便地管理其中所存儲的管理信息,同時也方便了對其中的信息進行批量查詢。

特別地,當用戶在配置Agent時,可以通過MIB視圖來限制NMS能夠訪問的MIB對象。MIB視圖實際上是MIB的子集合。

圖2 OID樹結構 

了解了四大組件後,再去研究SNMP不用版本之間差異,那snmp基本也學得差不多了。

NMPv1/SNMPv2c報文結構

如圖1所示,SNMPv1/SNMPv2c報文主要由版本、團體名、SNMP PDU三部分構成。

圖1 SNMPv1/SNMPv2c報文結構 

報文中的主要欄位定義如下:

版本:表示SNMP的版本,如果是SNMPv1報文則對應欄位值為0,SNMPv2c則為1。

團體名:用於在Agent與NMS之間完成認證,字符串形式,用戶可自行定義。團體名包括「可讀」和「可寫」兩種,執行GetRequest、GetNextRequest操作時,採用「可讀團體名」進行認證;執行Set操作時,則採用「可寫團體名」認證。

SNMPv1/SNMPv2c PDU:包含PDU類型、請求標識符、變量綁定列表等信息。其中SNMPv1 PDU包括GetRequest PDU、GetNextRequest PDU、SetRequest PDU、Response PDU和Trap PDU幾種類型,SNMPv2c PDU在SNMPv1的基礎上新增了GetBulkRequest PDU。

為了簡化起見,SNMP操作今後叫做Get、GetNext、Set、Response、Trap和GetBulk操作。

SNMPv1/SNMPv2c操作類型

如表1所示,SNMPv1/SNMPv2c規定了6種操作類型,用來完成NMS和Agent之間的信息交換。

表1 SNMPv1/SNMPv2c中涉及的操作

操作

描述

Get

Get操作可以從Agent中提取一個或多個參數值。

GetNext

GetNext操作可以從Agent中按照字典序提取下一個參數值。

Set

Set操作可以設置Agent的一個或多個參數值。

Response

Response操作可以返回一個或多個參數值。這個操作是由Agent發出的,它是GetRequest、GetNextRequest、SetRequest和GetBulkRequest四種操作的響應操作。Agent接收到來自NMS的Get/Set指令後,通過MIB完成相應的查詢/修改操作,然後利用Response操作將信息回應給NMS。

Trap

Trap信息是Agent主動向NMS發出的信息,告知管理進程設備端出現的情況。

GetBulk

GetBulk操作實現了NMS對被管理設備的信息群查詢。

SNMPv1/SNMPv2c工作原理

SNMPv1和SNMPv2c的工作原理基本一致。SNMPv1/SNMPv2c的工作原理如圖2所示。

圖2 基本操作類型 

NMS:向Agent發送Get請求報文。報文中各欄位的設置如下:版本號為所使用的SNMP版本;團體名為public;PDU中PDU類型為Get類型,綁定變量填入MIB節點名sysContact。

Agent:首先對報文中攜帶版本號和團體名進行認證,認證成功後,Agent根據請求查詢MIB中的sysContact節點,得到sysContact的值並將其封裝到Response報文中的PDU,向NMS發送響應;如果查詢不成功,Agent會向NMS發送出錯響應。

GetNext操作

假定NMS想要獲取被管理設備MIB節點sysContact的下一個節點sysName值,使用可讀團體名為public,過程如下所示:

NMS:向Agent發送GetNext請求報文。報文中各欄位的設置如下:版本號為所使用的SNMP版本;團體名為public;PDU中PDU類型為GetNext類型,綁定變量填入MIB節點名sysContact。

Agent:首先對報文中攜帶版本號和團體名進行認證,認證成功後,Agent根據請求查詢MIB中的sysContact的下一個節點sysName,得到sysName的值並將其封裝到Response報文中的PDU,向NMS發送響應;如果查詢不成功,Agent會向NMS發送出錯響應。

Set操作

假定NMS想要設置被管理設備MIB節點sysName的值為HUAWEI,使用可寫團體名為private,過程如下所示:

NMS:向Agent發送Set請求報文。報文中各欄位的設置如下:版本號為所使用的SNMP版本;團體名為private;PDU中PDU類型為Set類型,綁定變量填入MIB節點名sysContact和需要設置的值HUAWEI。

Agent:首先對報文中攜帶版本號和團體名進行認證,認證成功後,Agent根據請求設置管理變量在管理信息庫MIB中對應的節點,設置成功後向NMS發送響應;如果設置不成功,Agent會向NMS發送出錯響應。

Trap操作

Trap不屬於NMS對被管理設備的基本操作,它是被管理設備的自發行為。當被管理設備達到告警的觸發條件時,會通過Agent向NMS發送Trap消息,告知設備側出現的異常情況,便於網絡管理人員及時處理。例如被管理設備熱啟動後,Agent會向NMS發送warmStart的Trap。

這種Trap信息是受限制的。只有在設備端的模塊達到模塊預定義的告警觸發條件時,Agent才會向管理進程報告。這種方法有其好處是僅在嚴重事件發生時才發送Trap信息,減少報文交互產生的流量。

SNMPv2c新增的操作如圖3所示。

圖3 SNMPv2c新增操作 

SNMPv3報文結構

SNMPv3定義了新的報文格式,其報文結構如圖1所示。

圖1 SNMPv3報文結構 

SNMP報文中的主要欄位定義如下:

版本:表示SNMP的版本,SNMPv3報文則對應欄位值為2。

報頭數據:主要包含消息發送者所能支持的最大消息尺寸、消息採用的安全模式等描述內容。

安全參數:包含SNMP實體引擎的相關信息、用戶名、認證參數、加密參數等安全信息。

Context EgineID:SNMP唯一標識符,和PDU類型一起決定應該發往哪個應用程式。

Context Name:用於確定Context EgineID對被管理設備的MIB視圖。

SNMPv3 PDU:包含PDU類型、請求標識符、變量綁定列表等信息。其中SNMPv3 PDU包括GetRequest PDU、GetNextRequest PDU、SetRequest PDU、Response PDU、Trap PDU和GetBulkRequest PDU。

SNMPv3的體系結構

SNMPv3提出了一個新的SNMP體系結構,這個體系結構為各種基於SNMP的NMS提供了一個通用的實現模型,即SNMPv3實體。SNMPv3實體可以分為SNMPv3引擎(SNMPv3 Engine)和SNMPv3應用程式(SNMPv3 Application),引擎與應用程式均由多個小模塊組成。

SNMPv3實體這種模塊化的結構有以下優點:

適應性強:適用於多種操作環境,既可以管理最簡單的網絡,又能夠滿足複雜網絡的管理需求。

方便管理:SNMP框架體系由多個功能相對獨立的子系統或應用程式集合而成,因而可以很方便地對其進行管理。例如,若系統發生了故障,可以根據發生故障的功能類型,定位到相應的子系統。

擴展性好:通過SNMP實體,可以很方便地進行系統擴展。比如,為了應用新的安全協議,就可以在安全子系統中為其定義單獨的模塊,從而在SNMP中支持該協議。

SNMPv3由於採用了用戶安全模塊USM(User Security Model)和基於視圖的訪問控制模塊VACM(View-based Access Control Model),在安全性上得到了提升。

SNMPv3的工作原理

SNMPv3的實現原理和SNMPv1/SNMPv2c基本一致,唯一的區別是SNMPv3增加了身份驗證和加密處理。下面以Get操作為例介紹下SNMPv3的工作原理。

假定NMS想要獲取被管理設備MIB節點sysContact的值,使用認證加密方式,過程如圖2所示:

圖2 SNMPv3的Get操作 

NMS:向Agent發送不帶安全參數的Get請求報文,向Agent獲取Context EgineID、Context Name和安全參數(SNMP實體引擎的相關信息)。

Agent:響應NMS的請求,並向NMS反饋請求的參數。

NMS:再次向Agent發送Get請求報文,報文中各欄位的設置如下:

Agent:首先對消息進行認證,認證通過後對PDU進行解密。解密成功後,Agent根據請求查詢MIB中的sysContact節點,得到sysContact的值並將其封裝到Response報文中的PDU,並對PDU進行加密,向NMS發送響應。如果查詢不成功或認證、解密失敗,Agent會向NMS發送出錯響應。

讀而思網絡工程師阿龍

感謝您的關注。讓攻城獅們一起不斷成長!

宗旨:本公眾號唯一的宗旨就是分享價值,分享知識,分享經驗,共同參與討論,共同成長!三人行,必有我師焉!致力於幫助網絡工程師的疑難解答,讓這裡成為網絡工程師智慧互相碰撞的聚集地。


相關焦點

  • 軟體是非:應用snmp和agentx協議傳遞信息
    於是轉向試圖利用snmp協議來做。  用snmp有幾個原因:  1.snmp是基於udp協議的,具有udp的所有好處(數據狀態這種東西,用tcp是不合適的)  2.snmp比較成熟,周邊的軟體非常多,後面可以很方便的處理收集數據,繪圖等等一系列的功能。(rrdtool/cacti....)
  • 怕鬼?鬼是個什麼東西?
    我說:什麼是鬼?長什麼樣?漂亮嗎?男的女的?有錢嗎?有車嗎?有房嗎?友人瞬間笑噴:「我怎麼知道。」我怒,嗔道:你什麼都不知道,怕什麼鬼?友人反擊:「就是不知道,才可怕!」那人們怕的是什麼呢?他怕是的另外的,不確定的東西:能否考上?落榜?父母的期待、同學的嘲笑、日後的工作、前途、房子、車子、媳婦兒……凡此種種,憂思難解,欲罷不能。
  • Net-SNMP 5.7 發布
    SNMP over DTLS over IPv6, 6. an snmpwalk per-variable timer, 7. improved SNMP over SSH support, 8. the ability to build without USM, 9.
  • 鬼是靈魂,是夢,是影子?來用科學的眼光看看鬼到底是什麼東西
    鬼是靈魂嗎?答案是否定的。很多人相信鬼是人的靈魂所變,這是因為人們對於自己了解甚少,遠古時候的人並不知道死亡是怎麼回事情,因此想像出一個誰也無法看到的所謂靈魂來解釋人死亡以後的存在。清代就有人認為中國人說的鬼,就是西方人說的靈魂。
  • 牙根處會黑黑的到底是什麼鬼? 黑色東西為何物?
    牙根處會黑黑的到底是什麼鬼? 黑色東西為何物?時間:2016-11-16 12:06   來源:樂莎莎口腔   責任編輯:沫朵 川北在線核心提示:原標題:牙根處會黑黑的到底是什麼鬼? 黑色東西為何物? 不知道大家在「照鏡子」的時候,有沒有發現「牙齒背面」牙齦周圍有一圈黑黑的的東西?怎麼刷也刷不掉。
  • 鬼這東西,其實是可以預防的!
    4、鬼打牆的破法如果你突然發現自己在一個地方轉圈怎麼也出不去,不要慌,也不要念什麼口訣(可能會激怒和你開玩笑的小鬼),簡單的方法為對著空氣吐口水,其牆自解,如果是男生,比較激烈的手段就是撒泡尿,效果也一樣。
  • 白天夢見鬼是什麼預兆 白天夢見鬼是什麼意思
    白天夢見鬼是什麼預兆 以前看聊齋說的,三更雞叫,鬼魂回墳,所以,大白天見鬼是不可思議的事。但又有不少的人其實會信誓旦旦的和別人說,他在大白天有看到「鬼影」,當然,和陳鵬解夢說得多的,其實也就是夢見鬼,甚至鬼壓床的事更多了。大白天夢見鬼,意味著什麼呢?預示著什麼呢?
  • 鬼吃東西的時間,一定要儘量避免!!
    鬼吃東西的時間,一定要儘量避免!!在佛教裡對於使用飲食方面,早晨是天人吃飯的時候,中午是佛吃飯的時候,過中午之後就是畜生吃東西的時候,到晚間就是鬼吃東西的時候。本來鬼是找不著東西吃,可是我們人這兒吃東西,這碗和筷子一出動靜,它聽見聲音,就會來搶著吃。
  • 孩子害怕的那個「鬼」,到底是什麼鬼?
    很多年前看過一個「海爾兄弟」的段子,大概是這麼說的,「小孩看見不乾淨的東西大人千萬別不當回事,朋友說小時候就看見兩個小人在空調上,和家裡人說空調上有兩個人,家人嚇得夠嗆,又是請大神又是請半仙兒的一頓忙活,可再問還是能看見兩個小人,後來因為這事兒把北京二環的房子賣了,搬到了外地,家具家電都不要了
  • 從心理學層面來看「鬼」:為什麼你會怕鬼?鬼又是個什麼玩意?
    提起鬼這個詞語,或許不少人都會起雞皮疙瘩,大多數人從小都怕鬼,鬼歷來深入百姓家,是一種很神秘的東西。讓我印象很深刻的是,在我小時候,我親戚家一個剛出生沒多久的孩子天天哭,家裡人怕這樣哭下去,會哭出什麼毛病來,於是我奶奶就說:可能是撞鬼可,需要請法師來做做法,可見鬼是多麼的深入人心了。
  • 搞什麼鬼?鬼的形象變遷史
    但即使是《聊齋志異》,月夜疾行噴水的老嫗屍鬼和誘人上吊投河的城隍廟鬼,還是佔據了絕大多數篇章。那麼,他們這樣不憚煩厭地把真實的溶劑注射進虛幻的鬼怪身上的目的究竟是什麼呢?或者更確切地說,古人究竟在搞什麼鬼?釋鬼搞什麼鬼搞鬼的第一步,當然是要弄清什麼是鬼。
  • 這是什麼鬼地方?
    真是一個陰霾遮天蔽日的鬼地方,路邊的花也長得不對勁,根本不是正常的顏色,哪有紅裡泛黑綠裡泛黃的?像是被注射了毒液,我這樣懷疑不是沒有道理,你看兩旁的樹木,這不是陽間的樣子,哦,你看不到。一切都不對勁,透過雲層的陽光根本不是陽光,我感覺不到溫暖,它的顏色也不對,也像花草一樣被注射了毒液。冷嗎?
  • 夢見鬼是什麼意思
    自古以來,世間都流傳著鬼神的傳說。尤其是在古代,鬼神之說被統治者用作強化自身統治、愚民的工具而大加宣傳。這也導致了人們即便從未親眼見過鬼神,也對其深信不疑。那麼在夢裡見到鬼會預示著什麼呢?下面就為大家解析。
  • 草東沒有派對鬼的歌詞全文完整版 草東沒有派對鬼什麼意思
    草東沒有派對雖然是曲風比較燥的搖滾樂團,但是歌詞中大都透露著極度的喪,鬼這首歌是他們人氣比較高的一首歌曲,鬼的歌詞表達了什麼意思呢?草東沒有派對鬼的歌詞  從沒想過要傷害誰  對一切也都感到抱歉  可是我的自卑勝過了一切愛我的  於是我把愛人們都殺死了  可是你的傷悲勝過了一切愛你的  於是你把我給殺死了  是為了什麼而流著血  是為了誰而流眼淚  我躲在夜裡取笑著黑
  • 淘寶搜看鬼故事是什麼梗啥意思 真的會出現鬼嗎
    打開淘寶搜看鬼故事會出現什麼?是什麼梗有何內涵意思嗎?目前,網上正在流行這個玩法,據說其實搜看鬼故事並不是恐怖的東西,而是你的淘寶年度帳單,想看看自己消費了多少?不妨來看看本文提供的詳細介紹吧!
  • IP 是個什麼鬼?
    IP 是個什麼鬼?文/eLicht 視頻/宣琦 IP 是個什麼鬼?
  • 鬼究竟長什麼樣子?
    那鬼長什麼樣子呢?王充接著說,人死後與他生前的樣貌無異,只存在精氣神的區別。他用了一個形象的比喻,人活著的樣子就像裝滿米粒的袋子,飽滿精神,人死如袋破,鬼像是一個破破爛爛的米袋子,蔫了。這種描述是歷來人們對「鬼」的最普遍想像之一,想一想,很多恐怖片裡的鬼都是人生前的模樣再加上點異像。
  • 什麼鬼?!這個學校有鬼?
    每所美國大學或多或少都流傳著各種各樣好鬼或壞鬼的故事。這些傳說眾說紛紜,有著不同的版本。然而下面這幾所學校可就超出了開玩笑的界限。所以,當你看到一群類似印第安打扮的人騎著馬似乎要保衛什麼的不要害怕。如果你比較幸運,你可能會在學校走廊裡看到一個鬼走進一間廢棄的教室然後消失了;如果你不那麼幸運,你很有可能會被莫名其妙鎖在一間房間裡或者被隔空飛來的東西砸到
  • 《紅樓夢》裡的促狹鬼到底是個什麼鬼?
    促狹鬼到底是個什麼鬼?最先從《紅樓夢》中知道促狹鬼的存在,而且曹雪芹多處用到促狹鬼這個詞。查資料了解到,促狹的意思是氣量狹小,性情急躁。促狹鬼,是指喜歡捉弄人、使壞的那一類人,帶有一點小奸小惡的意思。但在不同情境下,促狹鬼並非實指,有時是一種戲謔的稱呼,就如「討厭鬼」「搗蛋鬼」一類的詞。
  • 「積食」是什麼鬼?
    「積食」這種說法最早來自明初一本叫《儒門事親》的書,距今已經快一千年了,再到後來的有本叫《症因脈治》的中醫書裡,提出了「食積咳嗽」、「食積喘逆」、「食積洩瀉」、「食積腹痛」這些說法,再到後來,中醫認為孩子的病大多由飲食引起的,食積是孩子生病的重要因素。和「上火」、「腎虛」這些中醫概念一樣,到底什麼是積食?中醫的定義也是含糊的。