李楊
(廣西醫(yī)科大學(xué)第二附屬醫(yī)院 廣西壯族自治區(qū)南寧市 530007)
網(wǎng)絡(luò)在我們工作和生活當(dāng)中無(wú)所不在,而以太網(wǎng)作為當(dāng)前主流網(wǎng)絡(luò)協(xié)議,IP 地址是以太網(wǎng)重要組成部分,接入網(wǎng)絡(luò)每臺(tái)設(shè)備都分配1 個(gè)或者多個(gè)IP 地址作為網(wǎng)絡(luò)ID,使得設(shè)備間才能互聯(lián)互通,因此,IP 地址是我們重要網(wǎng)絡(luò)資源,在一個(gè)小的企業(yè)或網(wǎng)絡(luò)環(huán)境當(dāng)中,運(yùn)維人員只要簡(jiǎn)單分幾個(gè)IP子網(wǎng),分幾十和上百個(gè)IP 地址,不需要投入太多的時(shí)間和精力去管理。但在一個(gè)大的網(wǎng)絡(luò)環(huán)境當(dāng)中,幾十甚于幾百個(gè)子網(wǎng),幾千臺(tái)甚于幾萬(wàn)臺(tái)的終端,那分配、管理、維護(hù)這些IP,對(duì)于網(wǎng)絡(luò)管理人員來(lái)說(shuō)是一個(gè)大的挑戰(zhàn)。IP 管理上存在問題,容易造成網(wǎng)內(nèi)IP 沖突,造成網(wǎng)絡(luò)不穩(wěn)定甚于網(wǎng)絡(luò)不通,在出現(xiàn)故障或者安全事件時(shí),由于沒有IP 記錄,造成無(wú)法追查故障源及相關(guān)責(zé)任人。因此在一個(gè)大網(wǎng)絡(luò)環(huán)境當(dāng)中,IP管理是一個(gè)必要而且重要的工作。
對(duì)于很多網(wǎng)絡(luò)管理者,由于條件限制,大部分采用EXCEL 電子表格來(lái)記錄IP 地址,通過(guò)手工輸入及記錄設(shè)備IP 和MAC 信息,日常維護(hù)和管理通過(guò)電子表格刪除和添加、修改表格上條目。對(duì)于小型網(wǎng)絡(luò),由于要維護(hù)和操作的IP量少,由專人來(lái)管理,EXCEL 還能應(yīng)付。但對(duì)于大型網(wǎng)絡(luò)來(lái)說(shuō),要記錄及維護(hù)大量設(shè)備信息,EXCEL 記錄的方式就存在如下問題:
(1)存在多個(gè)版本,內(nèi)容不統(tǒng)一:由于要不斷去更新和維護(hù)IP 信息,存在不同的人去維護(hù)和更新IP 記錄表,大家手上版本可能不一致。
(2)IP 是靜態(tài)記錄,與現(xiàn)網(wǎng)運(yùn)行數(shù)據(jù)不一致:人工手動(dòng)錄入,存在漏錄和錄入錯(cuò)誤等問題。特別是12 個(gè)字母和數(shù)字的MAC 地址,很容易輸入錯(cuò)誤。
為了解決電子文檔管理和維護(hù)IP 信息存在問題,國(guó)內(nèi)外軟件公司和開發(fā)者開發(fā)一些IP 管理軟件,按是否收費(fèi)來(lái)分的話:可以分為收費(fèi)及開源兩種。
收費(fèi)比較有名軟件:solarwinds,開源比較有名軟件:PHPIPAM。收費(fèi)軟件費(fèi)用比較貴,對(duì)于很多單位和公司來(lái)說(shuō),IP 管理系統(tǒng)并不是生產(chǎn)效益型軟件,申請(qǐng)一筆購(gòu)買經(jīng)費(fèi)還是比較困難。
對(duì)于網(wǎng)絡(luò)管理人員來(lái)說(shuō),開源軟件就是一個(gè)比較好選擇。我們單位也部署有PHPIPAM,大概使用2年時(shí)間,PHPIPAM 使用PHP 開發(fā),以MYSQL 作后臺(tái)數(shù)據(jù)庫(kù)。雖然解決電子文檔式IP 管理方式的多個(gè)版本問題。但還是需要人工手動(dòng)錄入,也同樣存在錄入錯(cuò)誤及與設(shè)備運(yùn)行數(shù)據(jù)不一致問題。
我單位目前終端大概有4000 左右,子網(wǎng)數(shù)量大概有100 多個(gè),網(wǎng)絡(luò)設(shè)備總共200 多臺(tái),到今年年底由于單位新大樓正式啟用,網(wǎng)絡(luò)設(shè)備數(shù)增加到500 臺(tái)左右,終端也會(huì)增加到7000 左右。因此,傳統(tǒng)的IP 管理方式已經(jīng)不適合我們當(dāng)前網(wǎng)絡(luò)規(guī)模。
根據(jù)當(dāng)前我們當(dāng)前需求,開發(fā)一套適合自己的IP 管理系統(tǒng)。
采用當(dāng)前主流系統(tǒng)BS 架構(gòu),不需要開發(fā)和維護(hù)客戶端,減少開發(fā)及維護(hù)量。服務(wù)器前端建立WEB 服務(wù),客戶端使用瀏覽器對(duì)系統(tǒng)進(jìn)行訪問及操作。后臺(tái)采用數(shù)據(jù)庫(kù),將數(shù)據(jù)采集統(tǒng)一存放到數(shù)據(jù)庫(kù),方便前面對(duì)數(shù)據(jù)管理及檢索。這套IP 系統(tǒng)只給維護(hù)人員使用,共20 多個(gè)人訪問,數(shù)據(jù)量最多就是10 萬(wàn)條左右,由于數(shù)據(jù)量不大,所以本次后臺(tái)采用免費(fèi)的MYSQL 數(shù)據(jù)庫(kù),功能和性能都能滿足我們對(duì)IP 管理要求。服務(wù)器操作系統(tǒng)采用LINUX 系統(tǒng),相對(duì)于WINDOWS SERVER,LINUX 更穩(wěn)定,被病毒針對(duì)也會(huì)少很多,更適合作為服務(wù)器端操作系統(tǒng)。而且作為一名網(wǎng)絡(luò)和系統(tǒng)維護(hù)人員,我更喜歡命令行維護(hù)方式,簡(jiǎn)單、能復(fù)制、及使用維護(hù)腳本完成不少維護(hù)工作。
在開發(fā)工具上,我們?cè)贕OLANG 和python 上選擇,Golang 也就是我們常說(shuō)的 Go,是由 Google 開發(fā)的一種計(jì)算機(jī)編程語(yǔ)言。Golang 是一個(gè)帶有輕量并強(qiáng)大庫(kù)以及擁有優(yōu)越的性能和速度的靜態(tài)類型語(yǔ)言。
而Python 是一種多用途的編程語(yǔ)言, Python 是由一位荷蘭程序員 Guido van Rossum 編寫,于 1991年首次發(fā)布。Python 最重要的一方面是它是一種解釋型語(yǔ)言,這就意味著Python 代碼不會(huì)在運(yùn)行時(shí)被翻譯成機(jī)器語(yǔ)言,而大多數(shù)編程語(yǔ)言會(huì)在代碼編譯過(guò)程中完成這種轉(zhuǎn)換。這種編程語(yǔ)言(解釋型)也被稱為「腳本語(yǔ)言」,它們最初是被用來(lái)做一些小項(xiàng)目的。
我們IP 系統(tǒng)只定位于網(wǎng)絡(luò)和系統(tǒng)維護(hù)人員使用,訪問量和性能要求不是很高,因此,根據(jù)對(duì)比兩個(gè)語(yǔ)言特征,PYTHON 更適應(yīng)一些輕量系統(tǒng)開發(fā),而且PYTHON 有著更強(qiáng)大的庫(kù),它能使我們的開發(fā)工作更容易。因此,本系統(tǒng)選用PYTHON 做開發(fā)工具。
根據(jù)我們網(wǎng)絡(luò)和終端維護(hù)過(guò)程存在問題,我們的IP 管理除了解決IP 管理方向的問題,還有網(wǎng)絡(luò)設(shè)備信息采集與統(tǒng)計(jì)功能,目前具體功能如下:
(1)定時(shí)自動(dòng)采集所有網(wǎng)絡(luò)設(shè)備的ARP 表并記入數(shù)據(jù)庫(kù):
主要通過(guò)系統(tǒng)自動(dòng)采集網(wǎng)絡(luò)設(shè)備的ARP 表,從ARP 表提取出IP 和與其對(duì)應(yīng)的MAC 地址,再通過(guò)SQL 語(yǔ)句插入到數(shù)據(jù)庫(kù),完成IP 信息采集和記錄。
(2)使用者能通過(guò)WEB 界面登錄系統(tǒng),使用IP 和MAC、科室、姓名等關(guān)鍵字查找匹配IP 信息內(nèi)容。
我們用HTML 開發(fā)前臺(tái)的WEB 界面,并安裝部署WEB 服務(wù)器,該系統(tǒng)使用人員通過(guò)WEB 界面完成IP、MAC 與其對(duì)應(yīng)的科室、姓名及設(shè)備名稱等將IP 信息的搜索及維護(hù)。
(3)通過(guò)具體的MAC 地址查找該設(shè)備連接到哪臺(tái)交換機(jī)那個(gè)端口及分配的VLAN 號(hào)等信息。
由于我們單位目前有100 多臺(tái)交換機(jī),是一個(gè)大型網(wǎng)絡(luò),雖然大部分已經(jīng)做了堆疊,減少設(shè)備管理平面,但現(xiàn)在還有70 多個(gè)管理平面。由于網(wǎng)絡(luò)前期缺少規(guī)劃,單位內(nèi)存在亂接亂掛等問題,即有些設(shè)備網(wǎng)絡(luò)接入另1 個(gè)樓層的交換機(jī),在配置時(shí),有時(shí)要登錄好幾臺(tái)交換機(jī),才能確認(rèn)是從接入到哪臺(tái)交換機(jī)。為了能更快定位設(shè)備網(wǎng)絡(luò)接入點(diǎn),減少一些沒必要操作,通過(guò)系統(tǒng)使用接入設(shè)備的MAC 地址,搜索到該具體接入到哪個(gè)交換機(jī)的哪個(gè)端口和VLAN ID,就可以直接登錄該設(shè)備配置,減少登錄設(shè)備次數(shù),提高工作效率。
(4)能動(dòng)態(tài)采集網(wǎng)絡(luò)交換機(jī)廠商及序列號(hào)、軟件版本等信息。
在大型網(wǎng)絡(luò)里存在多臺(tái)網(wǎng)絡(luò)設(shè)備,但大家對(duì)設(shè)備信息采集、記錄、維護(hù)方式,以EXCEL 電子表格為主,也有部分企業(yè)和單位,購(gòu)買網(wǎng)管軟件,通過(guò)網(wǎng)管軟件來(lái)采集或者維護(hù)。我們單位也購(gòu)買過(guò)一套網(wǎng)管軟件,由于不好用,現(xiàn)在處于停用狀態(tài)。因此,本系統(tǒng)根據(jù)我們?nèi)粘9芾砗途S護(hù)要求,開發(fā)該功能,通過(guò)系統(tǒng)自動(dòng)采集設(shè)備的廠商、設(shè)備型號(hào)、軟件版本等信息,減少網(wǎng)絡(luò)維護(hù)人員工作量及保證設(shè)備信息準(zhǔn)確性。
2.4.1 自動(dòng)采集ARP
自動(dòng)采集方式有很多種,一般常用方式:
(1)登錄設(shè)備,命令行采集;
(2)通過(guò)SNMP 協(xié)議,SNMPWALK 利用各廠商的MIB 庫(kù)的ARP 表的OID 取回ARP 表內(nèi)容。
用第一種方式命令行采集,需要服務(wù)器不斷使用用戶名和密碼登錄設(shè)備,并使用命令:display arp 查看ARP 表,把輸出結(jié)果再通過(guò)程序來(lái)處理,采集到IP 和其對(duì)應(yīng)的MAC地址,有時(shí)遇到特殊情況,還需要程序與交換機(jī)CLI 界面互動(dòng),比較麻煩。用第二種方式,即利用SNMP 協(xié)議采集,我們只需要在各個(gè)網(wǎng)絡(luò)設(shè)備開啟SNMP 協(xié)議,服務(wù)器定時(shí)通過(guò)SNMP 協(xié)議采集回ARP 表,整個(gè)過(guò)程簡(jiǎn)單而且易于實(shí)現(xiàn)。
因此,本系統(tǒng)采用第二種SNMP 方式,PYTHON當(dāng)前有不少SNMP 模塊包,本次程序采用PYSNMP。SNMPWALK 采集函數(shù):我們只需輸入網(wǎng)絡(luò)設(shè)備的IP、community、ARP 的OID,即可采集回該網(wǎng)絡(luò)設(shè)備的APR 表,華為、H3C 交換機(jī)的ARP 的OID 值都是:1.3.6.1.2.1.4.22.1.2通過(guò)該函數(shù)傳回來(lái)的數(shù)據(jù),是包含SNMP 的值的格式如下:SNMPv2-SMI::mib-2.4.22.1.2.69.192.168.101.202 =0xc8a776d34749,需要對(duì)這些字符串做處理,從里面提出IP和MAC 地址。
這字符串經(jīng)過(guò)處理后,已經(jīng)提取到IP 和MAC 地址,IP格式:192.168.101.202,MAC 地址格式:c8a776d34749,為了采集到各網(wǎng)的網(wǎng)絡(luò)設(shè)備的ARP 表,需要對(duì)全網(wǎng)網(wǎng)絡(luò)設(shè)備做個(gè)遍歷,就可以實(shí)現(xiàn)。由于本系統(tǒng)包含網(wǎng)絡(luò)設(shè)備管理模塊,因此,只要從數(shù)據(jù)庫(kù)的設(shè)備表提取的各臺(tái)設(shè)備的IP 地址及SNMP 的community,就能使用該模塊功能實(shí)現(xiàn)全網(wǎng)的ARP動(dòng)態(tài)收集。
2.4.2 數(shù)據(jù)插入數(shù)據(jù)庫(kù)
在ARP 正常采集后,我們還需要將IP 和MAC 地址寫到數(shù)據(jù)庫(kù),以供前臺(tái)WEB 界面調(diào)用、檢索、查詢。本系統(tǒng)采用PYTHON 的pymysql。
2.4.3 WEB 服務(wù)器安裝及WEB 界面開發(fā)
由于開發(fā)工具采用PYTHON,因?yàn)椴捎肞YTHON 成熟的WEB 架構(gòu)django,能讓我們更快速開發(fā)、設(shè)計(jì)、部署網(wǎng)站。Django 本身基于 MVC 模型,即 Model(模型)+ View(視圖)+ Controller(控制器)設(shè)計(jì)模式,MVC 模式使后續(xù)對(duì)程序的修改和擴(kuò)展簡(jiǎn)化,并且使程序某一部分的重復(fù)利用成為可能。用戶的操作流程如下:
可以將不同功能模塊放置不同的APP,本次創(chuàng)建三個(gè)APP:ARP、MAC、DEVICE 分別對(duì)應(yīng)IP 管理模塊、MAC地址查找模塊、設(shè)備管理模塊。
2.4.4 定時(shí)數(shù)據(jù)采集
由于單位內(nèi)接入網(wǎng)絡(luò)的設(shè)備大概有4000 多臺(tái),而且設(shè)備開機(jī)的時(shí)間也不盡相同,為了盡可能采集到網(wǎng)絡(luò)內(nèi)的ARP信息,需要按一定周末采集ARP 信息。我們單位交換機(jī)廠商都是華為和H3C,ARP 的老化時(shí)間都是20 分鐘,即假如設(shè)備離線20 分鐘后,將在ARP 表項(xiàng)中清除,根據(jù)這個(gè)特點(diǎn)。我們每15 分鐘采集一次,采集一次需要1 分鐘就可以完全采集。因此,每15 分鐘采集一次不會(huì)占用太多服務(wù)器資源而影響到性能。服務(wù)器的linux 自帶的定時(shí)任務(wù):crontab
通過(guò)crontab 定義啟動(dòng)采集程序的時(shí)間,配置如下:
*/15 * * * * python3 /home/python/arp.py
2.4.5 根據(jù)MAC 地址查找對(duì)應(yīng)網(wǎng)絡(luò)設(shè)備及端口及VLAN
由于華為和H3C 的MID 庫(kù)的OID 值的不一樣,而且返回的值內(nèi)容和格式也不一樣。因此,該功能華為和H3C 采用不同的實(shí)現(xiàn)方式。
華為實(shí)現(xiàn)方式:
查詢 MAC 地址和接口的對(duì)應(yīng)關(guān)系,華為官方給出的MIB 內(nèi)容:
節(jié)點(diǎn):dot1dTpFdbAddress,OID:1.3.6.1.2.1.17.4.3.1.1 含義:表示MAC 地址。
節(jié)點(diǎn):dot1dTpFdbPort ,OID:1.3.6.1.2.1.17.4.3.1.2 含義:表示MAC 地址對(duì)應(yīng)的端口號(hào)。
節(jié)點(diǎn):dot1dBasePortIfIndex,OID:1.3.6.1.2.1.17.1.4.1.2 含義:端口號(hào)對(duì)應(yīng)的接口索引。
節(jié)點(diǎn):ifName ,OID:1.3.6.1.2.1.31.1.1.1.1 含義:接口索引對(duì)應(yīng)的接口名稱。
通過(guò)查看華為的文檔,通過(guò)MAC 地址來(lái)定位所在設(shè)備端口及VLAN,流程比較復(fù)雜,假如我要查MAC 地址:18.d7.93.00.22.1b 所在交換機(jī)端口,那具體流程如下:
(1)dot1dTpFdbPort+MAC 地址查找對(duì)應(yīng)端口數(shù)字。
其中要先把MAC 的十六進(jìn)制先轉(zhuǎn)換成十進(jìn)制。18.d7.9 3.00.22.1b=24.215.147.0.34.27
通過(guò)snmpget OID: 1.3.6.1.2.1.17.4.3.1.2.24.215.147.0.34.27,結(jié)果如下:
SNMPv2-SMI::mib-2.17.4.3.1.2.24.215.147.0.34.27 =INTEGER: 298
(2)通過(guò)dot1dBasePortIfIndex 查詢MAC 地址對(duì)應(yīng)接口的索引。
通過(guò)SNMPGET OID:10.9.250.11 1.3.6.1.2.1.17.1.4.1.2.298結(jié)果如下:
SNMPv2-SMI::mib-2.17.1.4.1.2.298 = INTEGER: 145
(3)通過(guò)ifName 查詢接口索引對(duì)應(yīng)的接口名稱。
那么用snmpget OID: 1.3.6.1.2.1.31.1.1.1.1.145 結(jié)果如下:
IF-MIB::ifName.145 = STRING: GigabitEthernet2/0/36
(4)由于單位網(wǎng)絡(luò)部分的子網(wǎng)的網(wǎng)關(guān)不是終結(jié)本樓層交換機(jī),存在二層往上透?jìng)鞯那闆r,存在同一個(gè)MAC會(huì)透?jìng)鞯狡渌粨Q機(jī)。我們單位交換機(jī)之間互聯(lián)都是采用TRUNK 方式,因此,我們還要進(jìn)一步判斷,查到MAC 所對(duì)應(yīng)端口的類型hwL2IfPortType 是不是ACCESS 或auto,即2 或7,假如是就是設(shè)備接入端口,假如不是,那就是通過(guò)這個(gè)端口透?jìng)魃蟻?lái)的,我們還要繼續(xù)到其他交換機(jī)去查找和匹對(duì)。
那么用snmpget OID: 1.3.6.1.4.1.2011.5.25.42.1.1.1.3.1.3.2 98,結(jié)果如下:
SNMPv2-SMI::enterprises.2011.5.25.42.1.1.1.3.1.3.298 =INTEGER: 2
(5)確定好接入端口后,就可以通過(guò)hwL2IfPVID 的值來(lái)獲取該端口的VLAN 號(hào)。
那么用snmpget oid:1.3.6.1.4.1.2011.5.25.42.1.1.1.3.1.4.2 98,結(jié)果如下:
SNMPv2-SMI::enterprises.2011.5.25.42.1.1.1.3.1.4.298 =INTEGER: 12
H3C 實(shí)現(xiàn)方式:
H3C 的官方文檔提供的MIB 庫(kù)信息如下:
節(jié)點(diǎn):dot1dTpFdbAddress,OID: 1.3.6.1.2.1.17.7.1.2.2.1.1含義:表示MAC 地址。
節(jié)點(diǎn):dot1dTpFdbPort ,OID: 1.3.6.1.2.1.17.7.1.2.2.1.2 含義:表示MAC 地址對(duì)應(yīng)的端口。
節(jié)點(diǎn):dot1dTpFdbStatus,OID: 1.3.6.1.2.1.17.7.1.2.2.1.3 含義:MAC 表項(xiàng)的狀態(tài)。
通過(guò)SNMPWALK OID 1.3.6.1.2.1.17.7.1.2.2.1 設(shè)備采回信息如下:
SNMPv2-SMI::mib-2.17.7.1.2.2.1.3.3813.72.125.46.229.227.25= INTEGER: 3
SNMPv2-SMI::mib-2.17.7.1.2.2.1.3.3813.112.58.166.93.167.105= INTEGER: 3
其中3813 是VLAN 號(hào),以點(diǎn)號(hào)作為分隔符,后面6 個(gè)數(shù)字就是MAC 地址轉(zhuǎn)換成十進(jìn)制表示形式。
我們只知道接入設(shè)備MAC 地址,沒有VLAN 信息,無(wú)法通過(guò)SNMPGET 直接取到某個(gè)具體MAC 地址所接入端口號(hào)信息。
(1)因此,對(duì)于H3C 交換機(jī),我們只能通過(guò)snmpwalk遍歷MAC 地址表,提取出MAC 地址,再判斷是否有等于我們所查找的MAC 地址條目。如我們要查找的MAC 地址:30.9c.23.c4.6d.83
假如snmpwalk 取回來(lái)的內(nèi)容包含如下信息就表明,該交換機(jī)的MAC 地址表中包含有30.9c.23.c4.6d.83,VLAN的信息也可能從這里提取,VLAN 的MAC 地址前面的數(shù)字就是VLAN 號(hào),本案例的VLAN 號(hào)就是81.
SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.81.48.156.35.196.109.131= INTEGER: 27
(2)根據(jù)該MAC 條目所對(duì)應(yīng)的端口index 信息,再去判斷端口的類型 hh3cifVLANType 的值是不是2,即端口類型為ACCESS,就是設(shè)備接入交換機(jī)端口,假如不是,那就是從其他交換機(jī)透?jìng)魃蟻?lái),還要繼續(xù)到其他交換機(jī)搜索和匹配。
通過(guò)snmpget oid :1.3.6.1.4.1.25506.8.35.1.1.1.5.27 結(jié)果如下:
SNMPv2-SMI::enterprises.25506.8.35.1.1.1.5.27 =INTEGER: 2
(3)通過(guò)ifName 查詢接口索引對(duì)應(yīng)的接口名稱。
用snmpget OID: 1.3.6.1.2.1.31.1.1.1.1.27 結(jié)果如下:
IF-MIB::ifName.27 = STRING: GigabitEthernet1/0/27 2.4.6 網(wǎng)絡(luò)設(shè)備廠商及主機(jī)名、型號(hào)、序列號(hào)采集
還是采用SNMP 方式,這部分OID 如下:
廠商和型號(hào)的都是sysDescr OID: 1.3.6.1.2.1.1.1.0
主機(jī)名sysName OID:1.3.6.1.2.1.1.5.0
我們?cè)谠摴δ軐?shí)現(xiàn)時(shí)還是采用PYSNMP 模塊,但由于SNMP 是取具體OID 的值,采用SNMPGET,而不是采用SNMPWALK(snmpwalk 是對(duì)OID 值的遍歷,比如某個(gè)OID 值下面有N 個(gè)節(jié)點(diǎn),則依次遍歷出這N 個(gè)節(jié)點(diǎn)的值)。在主機(jī)名方面華為和H3C 通過(guò)同一個(gè)sysName OID的SNMPGET 回來(lái)的值是一樣,不需要不同的方式來(lái)處理。格式如下:
S
NMPv2-MIB::sysName.0 = STRING: N-A-1B-1FRouDianjing-SW-12
但對(duì)于同一個(gè)sysDescr OID 的SNMPGET 回來(lái)的值的格式,華為和H3C 是不一樣的,需做不同處理。
華為的sysDescr 內(nèi)容格式:
H3C 的sysDescr 內(nèi)容格式:
SNMPv2-MIB::sysDescr.0 = STRING: H3C Comware Platform Software, Software Version 7.1.070, Release 6113
H3C S5130S-52P-EI
Copyright (c) 2004-2017 New H3C Technologies Co., Ltd.All rights reserved.
因此我們需要對(duì)SNMPGET 取回的內(nèi)容,根據(jù)不同廠商做不同處理,才能取出廠商,設(shè)備型號(hào)及軟件版本號(hào)。
但對(duì)于序列號(hào),華為和H3C 采用OID 前綴也基本一樣:1.3.6.1.2.1.47.1.1.1.1.11 但采回來(lái)值格式也是不一樣,特別我們單位交換機(jī)都是做了堆疊,要同時(shí)采同個(gè)堆疊內(nèi)所有交換機(jī)的序列號(hào),那就更復(fù)雜。
華為堆疊設(shè)備ID,第1 臺(tái)的ID 是以67108873 為開始,后面那幾臺(tái)以1048576 為步進(jìn);而H3C 這套堆疊的設(shè)備ID,第1 臺(tái)的ID 是以2 為開始,后面那2 臺(tái)是1 為步進(jìn)。
根據(jù)這個(gè)規(guī)律,華為交換機(jī)通過(guò)SNMPGET 取序列號(hào)的OID 如下:
第1 臺(tái):1.3.6.1.2.1.47.1.1.1.1.11.67108873
第2 臺(tái): 1.3.6.1.2.1.47.1.1.1.1.11.68157449
第3 臺(tái): 1.3.6.1.2.1.47.1.1.1.1.11.69206025
第4 臺(tái): 1.3.6.1.2.1.47.1.1.1.1.11.70254601
……以此類推,在上1 臺(tái)基礎(chǔ)上加1048576,即為該臺(tái)設(shè)備ID 值。
假如交換機(jī)不做堆疊,就按第1 臺(tái)來(lái)的OID 來(lái)取序列號(hào)。
H3C 交換機(jī)通過(guò)SNMPGET 取序列號(hào)的OID 如下:
第1 臺(tái):1.3.6.1.2.1.47.1.1.1.1.11.2
第2 臺(tái): 1.3.6.1.2.1.47.1.1.1.1.11.3
第3 臺(tái): 1.3.6.1.2.1.47.1.1.1.1.11.4
第4 臺(tái): 1.3.6.1.2.1.47.1.1.1.1.11.5
假如交換機(jī)不做堆疊,就按第1 臺(tái)來(lái)的OID 來(lái)取序列號(hào)。
……以此類推,在上1 臺(tái)基礎(chǔ)上加1,即為該臺(tái)設(shè)備ID值。
2.5.1 登錄系統(tǒng)
由于IP 系統(tǒng),記錄全單位的IP 信息,對(duì)訪問系統(tǒng)的人要做權(quán)限及訪問控制。因此,需要輸入用戶名和密碼才能正常訪問系統(tǒng),結(jié)果如圖1。
圖1
2.5.2 IP 管理界面
由于在交換機(jī)的ARP 表上只有IP 和MAC 地址信息,因此科室及人員姓名/設(shè)備/辦公室等信息需要通過(guò)編輯界面來(lái)添加,根據(jù)單位管理要求,對(duì)于電腦設(shè)備,也需要通過(guò)編輯方式把電腦的設(shè)備廠商、設(shè)備型號(hào)、設(shè)備序列號(hào)、生產(chǎn)日期通過(guò)編輯界面來(lái)添加。同時(shí)搜索框可以基于IP 地址、MAC 地址、科室、人名等做模糊搜索,搜索結(jié)果如圖2。
圖2
2.5.3 MAC 地址搜索界面
以下截圖是基于搜索框里MAC 地址來(lái)找到該設(shè)備接入1 號(hào)樓弱電井內(nèi)網(wǎng)交換機(jī)標(biāo)識(shí)為11 交換機(jī)把第3/0/37,當(dāng)前端口的VLAN 號(hào)為36,同時(shí)也列出交換機(jī)的管理IP,當(dāng)我們需要維護(hù)和處理故障時(shí),就直接登錄到該交換機(jī)的查看或配置第3/0/37 端口數(shù)據(jù),方便我們?nèi)粘9ぷ鳎Y(jié)果如圖3。
圖3
2.5.4 設(shè)備管理界面
登錄設(shè)備管理界面,以模糊搜索,列出設(shè)備信息如下,為了方便資產(chǎn)管理,在該功能模塊添加該交換機(jī)是在哪個(gè)項(xiàng)目上采購(gòu)的,通過(guò)編輯界面來(lái)添加這部分內(nèi)容,搜索結(jié)查如圖4。
圖4
根據(jù)本單位IT 運(yùn)維遇到有關(guān)IP 及網(wǎng)絡(luò)接入等相關(guān)問題,我個(gè)人獨(dú)立完成該系統(tǒng)開發(fā),并于2022年3月正式上線。自上線以來(lái)的幾個(gè)月,該系統(tǒng)得到使用人員好評(píng),解決IP管理混亂,單位內(nèi)IP 經(jīng)常沖突問題;同時(shí)也解決由于原有部分科室網(wǎng)線無(wú)序接入到交換機(jī),需要登錄多臺(tái)設(shè)備才能完成設(shè)備配置問題,提高工作效率;而且也解決由于網(wǎng)絡(luò)交換機(jī)多,需要人工花不少時(shí)間一臺(tái)臺(tái)登錄設(shè)備收集設(shè)備信息問題。
由于IT 運(yùn)維人員經(jīng)常要到科室,為了方便他們隨時(shí)隨地訪問系統(tǒng),開通VPN,運(yùn)維人員可以隨時(shí)用手機(jī)通過(guò)VPN 接入該系統(tǒng),查找、維護(hù)該系統(tǒng)上的IP 等信息。