編程網管
1. 『求助』我是一名網管,學什麼編程語言好
如果樓主以前沒有編程的經驗,
那麼先學習C語言吧,這樣會比較好,容易打好基礎,
然後可以學習Java, C++,或者.NET等高級編程語言,
最後希望樓主刻苦,不懂就問,祝好運!
2. 網管要不要會編程
大網站的網管,其實也並不是一個全面手,若很全面,可能人家反而不會要你。有的精通UNIX,有的則精通WinDows,有的熟悉ASP,有的則熟悉JSP或是php等等。
而對於網吧的網管,一般就得具有全面的知識和動手能力,這是基本的。
不過合格的網管學的東西還是很多的 看看吧: 網路管理員的知識結構
僅僅是計算機相關專業畢業,離一名合格的網管還相距很遠。在網路技術日新月異的今天,課本內容已顯得非常落伍與陳舊。因此,應當廣泛涉獵與網路管理相關的領域,完成最基本的知識積累。
●了解網路設計
擁有豐富的網路設計知識,熟悉網路布線規范和施工規范,了解交換機、路由器、伺服器等網路設備,掌握區域網基本技術和相關技術,規劃設計包含路由的區域網絡和廣域網路,為中小型網路提供完全的解決方案。
●掌握網路施工
掌握充分的網路基本知識,深入了解TCP/IP網路協議,獨立完成路由器、交換機等網路設備的安裝、連接、配置和操作,搭建多層交換的企業網路,實現網路互聯和Internet連接。掌握網路軟體工具的使用,迅速診斷、定位和排除網路故障,正確使用、保養和維護硬體設備。
●熟悉網路安全
設計並實施完整的網路安全解決方案,以降低損失和攻擊風險。在Internet和區域網絡中,路由器、交換機和應用程序,乃至管理不嚴格的安全設備,都可能成為遭受攻擊的目標。網路必須全力以赴加強戒備,以防止來自黑客、外來者甚至心懷不滿的員工對信息安全、信息完整性以及日常業務操作的威脅。
●熟悉網路操作系統
熟悉Windows和linux操作系統,具備使用高級的Windows和Linux平台,為企業提供成功的設計、實施和管理商業解決方案的能力。
●了解Web資料庫
了解Web資料庫的基本原理,能夠圍繞Web資料庫系統開展實施與管理工作,實現對企業數據的綜合應用。
網管的素質能力
一個真正的網管,應當對網路硬體和操作系統都有較為深入的了解。也就是說,作為網管,應當熟悉網路設備的性能、連接與配置,掌握網路服務的搭建、配置與管理,深入了解網路協議和網路安全,熟練使用網路診斷軟體工具,及時排除網路故障。
●自學能力
網管應當擁有強烈的求知慾和非常強的自學能力。第一,網路知識和網路技術不斷更新,需要繼續學習的內容非常多。第二,學校課本知識大多過於陳舊,並且脫離於網路管理實際,許多知識都要從頭學起。第三,網路設備和操作系統非常繁雜,各自擁有不同的優點,適用於不同的環境和需求,需要全面了解、重點掌握。
●英文閱讀能力
由於絕大多數新的理論和技術都是英文資料,網路設備和管理軟體說明書大多也是英文,所以,網管必須掌握大量的計算機專業詞彙,從而能夠流暢地閱讀原版的白皮書和技術資料。提高閱讀能力最簡單的方法,就是先選擇自己熟悉的技術,然後,登錄到廠商的官方網站,閱讀技術白皮書,從而了解技術文檔的表述方式。遇到生詞時,可以使用電子詞典在線翻譯。
●動手能力
作為網管,需要親自動手的時候非常多,如網路設備的連接、網路服務的搭建、交換機和路由器的設置、綜合布線的實施、伺服器擴容與升級,等等。所以,網管必須擁有一雙靈巧的手,具備很強的動手能力。當然,事先應認真閱讀技術手冊,並進行必要的理論准備。
●創造和應變能力
硬體設備、管理工具、應用軟體所提供的直接功能往往是有限的,而網路需求卻是無限的。利用有限的功能滿足無限的需要,就要求網管具有較強的應變能力,利用現有的功能、手段和技術,創造性的實現各種復雜的功能,滿足用戶各種需求。以訪問列表為例,利用對埠的限制,除了可以限制對網路服務的訪問外,還可用於限制蠕蟲病毒的傳播。
●觀察和分析判斷能力
具有敏銳的觀察能力和出色的分析判斷能力。出錯信息、日誌記錄、LED指示燈等,都會從不同側面提示可能導致故障的原因。對故障現象觀察的越細致、越全面,排除故障的機會也就越大。另外,通過經常、認真的觀察,還可以及時排除潛在的網路隱患。網路是一個完整的系統,故障與原因關系復雜,既可能是一因多果,也可能是一果多因。所以,網管必須用全面、動態和聯系的眼光分析問題,善於進行邏輯推理,從紛繁復雜的現象中發現事物的本質。
小 結
知識和能力是相輔相成的,知識是能力的基礎,能力是知識的運用。因此,兩者不可偏廢。應當本著先網路理論,再實際操作的原則,在搞清楚基本原理的基礎上,提高動手能力。建議利用VMWare虛擬機搭建網路實驗環境,進行各種網路服務的搭建與配置實驗。「興趣是最好的老師。」只要您熱愛網路管理這個職業,相信經過自己的努力,一定會迅速成長為一名合格的網管!
其實:我覺得做一個網吧網管最需要的是 1.熱心,積極,服務 2.技術一般即可(初來乍到,何必強求技術上) 3.要有平常心,和善忘心理。被那些流氓客人為難的時候能快速忘記
3. 網路工程師/系統管理員是否需要學習編程
既然windows方面沒問題,是不是要搞一下linux方面的系統,一些大型的應用都是架在linux伺服器上的,作為網管更應該傾向於對linux系統的精通,什麼網路配置,防火牆,一些必要的服務,比如apache,ftp,php都是要掌握的。對於linux,系統解析命令一般都是shell進行的,是否也要把shell學好,c或者c++語言學習一下也沒有壞處,畢竟開發平台還是在linux和windows下進行的,但不是主要任務。網管更傾向於系統和網路,編程開發的事情就交給開發人員吧。
4. Python網路編程6-使用Pysnmp實現簡單網管
簡單網路管理協議SNMP(Simple Network Management Protocol)用於網路設備的管理。SNMP作為廣泛應用於TCP/IP網路的網路管理標准協議,提供了統一的介面,從而實現了不同種類和廠商的網路設備之間的統一管理。
SNMP協議分為三個版本:SNMPv1、SNMPv2c和SNMPv3。
SNMP系統由網路管理系統NMS(Network Management System)、SNMP Agent、被管對象Management object和管理信息庫MIB(Management Information Base)四部分組成。
SNMP查詢是指NMS主動向SNMP Agent發送查詢請求,如圖1-3所示。SNMP Agent接收到查詢請求後,通過MIB表完成相應指令,並將結果反饋給NMS。SNMP查詢操作有三種:Get、GetNext和GetBulk。SNMPv1版本不支持GetBulk操作。
不同版本的SNMP查詢操作的工作原理基本一致,唯一的區別是SNMPv3版本增加了身份驗證和加密處理。下面以SNMPv2c版本的Get操作為例介紹SNMP查詢操作的工作原理。假定NMS想要獲取被管理設備MIB節點sysContact的值,使用可讀團體名為public,過程如下所示:
SNMP設置是指NMS主動向SNMP Agent發送對設備進行Set操作的請求,如下圖示。SNMP Agent接收到Set請求後,通過MIB表完成相應指令,並將結果反饋給NMS。
不同版本的SNMP Set操作的工作原理基本一致,唯一的區別是SNMPv3版本增加了身份驗證和加密處理。下面以SNMPv3版本的Set操作為例介紹SNMP Set操作的工作原理。
假定NMS想要設置被管理設備MIB節點sysName的值為HUAWEI,過程如下所示:
SNMPv1和SNMPv2c的Set操作報文格式如下圖所示。一般情況下,SNMPv3的Set操作信息是經過加密封裝在SNMP PDU中,其格式與SNMPv2c的Set操作報文格式一致。
SNMP Traps是指SNMP Agent主動將設備產生的告警或事件上報給NMS,以便網路管理員及時了解設備當前運行的狀態。
SNMP Agent上報SNMP Traps有兩種方式:Trap和Inform。SNMPv1版本不支持Inform。Trap和Inform的區別在於,SNMP Agent通過Inform向NMS發送告警或事件後,NMS需要回復InformResponse進行確認。
在Ensp中搭建網路環境,在R2上啟用SNMP作為SNMP agent,Linux主機作為NMS;為方便觀察SNMP報文格式,在R2使用SNMP的版本為v2c。
通過下面的Python腳本獲取R2的系統信息與當前的主機名
運行結果如下
在R2介面上抓包結果如下,Linux主機向R2的161埠發送SNMP get-request報文,可以看到SNMP使用的版本為v2c,設置的團體名為public,隨機生成了一個request-id,變數綁定列表(Variable bindings),即要查詢的OID,但Value為空;值得注意的是這些信息都是明文傳輸的,為了安全在實際環境中應使用SNMPv3。
通過下面的Python腳本獲取R2的介面信息。
運行結果如下:
在R2介面抓包結果如下,getBuikRequest相比get-request設置了一個max-repetitions欄位,表明最多執行get操作的次數。Variable bindings中請求的OID條目只有一條。
下面Python腳本用於設置R2的主機名為SNMPv2R2。
運行結果如下
在路由器上可以看到主機名有R2變為了SNMPv2R2。
get-response數據包內容與set-request中無異。
下面Python腳本用於接收,R2發送的Trap,並做簡單解析。
先運行該腳本,之後再R2上手動將一個介面shutdown,結果如下:
介面上抓包結果如下,此時團體名用的是public,data部分表明是trap。
由於Ensp中的通用路由器認證演算法只支持des56,而pysnmp不支持該演算法,因此使用AR路由器配置SNMPv3。
使用下面Python腳本發送snmpv3 get報文獲取設備系統信息。
抓包結果如下,首先發送get-resques進行SNMPv3認證請求,隨機生成一個msgID,認證模式為USM,msgflgs中Reportable置1要求對方發送report,其他為置0,表示不進行加密與鑒權;另外安全參數,認證參數、加密參數都為空,此時不攜帶get請求數據。
路由器給NMS回復report,msgID與resquest一致,Msgflgs中各位都置0,同時回復使用的安全引擎,認證與加密參數為空,不進行認證與加密,因此能看到data中的數據。
AR1收到請求後進行回復,數據包中msgflags標志位中除reportable外其他位都置1,表示不需要回復,同時進行加密與鑒權。同樣也可以看到認證用戶為testuser,認證參數與加密參數都有填充,data部分也是同樣加密。
參考:
什麼是SNMP - 華為 (huawei.com)
AR100-S V300R003 MIB參考 - 華為 (huawei.com)
SNMP library for Python — SNMP library for Python 4.4 documentation (pysnmp.readthedocs.io)