自己搭建自動化巡檢系統(tǒng)(四)處理鄰居列表

通過之前的三次實驗,我們已經(jīng)可以初步的使用python通過telnet來操作cisco設(shè)備,接下來開始新一期的實驗

創(chuàng)新互聯(lián)長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為五龍口企業(yè)提供專業(yè)的網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)五龍口網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

實驗?zāi)康模壕W(wǎng)絡(luò)巡檢,之后將信息存儲在數(shù)據(jù)庫中

本次實驗需要再次拓展新的拓?fù)?,,且實驗環(huán)境改為ubuntu,后續(xù)的拓展將改為在linux環(huán)境下經(jīng)行。本地地址使用10.10.10.142,通過兩臺管理交換機來控制六臺路由器,其地址分配

R1

10.10.10.101

R2

10.10.10.102

R3

10.10.10.103

R4

10.10.10.104

R5

10.10.10.105

R6

10.10.10.106

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

為每臺設(shè)備配置IP地址

由于需要批量配置,可以使用CRT的全局發(fā)送功能實現(xiàn)批量命令部署

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

全部部署vty之后,開通三臺設(shè)備以減少機器負(fù)擔(dān),后續(xù)再陸續(xù)開發(fā)

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

檢驗連通性

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

發(fā)現(xiàn)鄰居名單

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

檢驗代碼的執(zhí)行結(jié)果

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

接下來的任務(wù)是通過系統(tǒng)抓包,對這些數(shù)據(jù)包進行分析,我們的任務(wù)就是通過抓取cdp數(shù)據(jù)包的形式,記錄鄰居關(guān)系,如果發(fā)生鄰居關(guān)系變動則發(fā)出告警信息。

這里說一下思路:獲取接受的這串字符串,進行信息處理,即只收取:R1 Fas0/0 Fas0/0,并存入本地數(shù)據(jù)庫中,因此需要在數(shù)據(jù)庫中建立一張鄰居表,存儲路由器編號、本地接口號,對端接口號。這里安裝兩個數(shù)據(jù)庫,存儲在兩個地方,一來是災(zāi)備,二來是為了之后做實驗,測試關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫的在運行效率上的不同。

第一步:截取信息

處理這串字符:

'show cdp neighbors\r\nCapability Codes: R- Router, T - Trans Bridge, B - Source Route Bridge\r\n                  S - Switch, H - Host, I -IGMP, r - Repeater\r\n\r\nDevice ID       Local Intrfce     Holdtme    Capability Platform  Port ID\r\nR1               Fas 0/0            172        R S I      3640     Fas 0/0\r\nR6               Fas0/0            144        R S I      3640     Fas 0/0\r\nR4               Fas0/0            170        R S I      3640     Fas 0/0\r\nR2>'

本次打算使用的字符串處理方法是進行切片,后續(xù)還可以嘗試使用類似正則表達式的方法

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

等待2秒是需要接收設(shè)備返回的鄰居信息

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

處理完成,美滋滋

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

第二步:設(shè)計關(guān)系表,并建表

設(shè)計MySQL

Database:NDB

Table:cdp_nei

RID

Char

Local_Int

Char

Port_ID

Char

First_record

Datetime

Change_record

Datetime

這里已經(jīng)在mysql中的ndb里面建立一張表,存儲的是cdp鄰居的信息,基于當(dāng)前的拓?fù)?,可以預(yù)見當(dāng)所有路由器運行之后,表中的信息條目應(yīng)該是6*7=42

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

First_record用于記錄首次記錄這個數(shù)據(jù)項的時間,Change_record則會自動記錄每次修改這個數(shù)據(jù)項的時間,在查詢的時候,可以通過查看修改數(shù)據(jù)項的時間,如果發(fā)生改變就可以直接提示這條鏈路發(fā)生抖動

第三步:寫入數(shù)據(jù)庫中

我們在調(diào)試界面試一下該命令可以通過

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

查看效果

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

好了之后可以在代碼中寫入相關(guān)指令,不過在這之前,先做一件刺激的事兒,先衫褲再跑路!

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

代碼:

這個是初始版本,后續(xù)為了開發(fā)方便封裝在一個單獨的類里面的

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

寫完之后記得同步數(shù)據(jù)才可以在數(shù)據(jù)庫中查看到相關(guān)信息

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

寫入成功,美滋滋啊

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

第四步:遍歷所有設(shè)備的鄰居信息

思路:依次telnet登錄每臺設(shè)備,對其使用show cdp nei,然后收集對端端口信息,寫入數(shù)據(jù)庫中

自己搭建自動化巡檢系統(tǒng)(四) 處理鄰居列表

這里就可以動態(tài)的將信息存儲在數(shù)據(jù)庫中,下個實驗我們將通過編寫腳本,將出錯的信息告警

關(guān)于python-mysql的安裝教程以及mysqldb這個工具包的使用筆記在評論中的連接

網(wǎng)頁題目:自己搭建自動化巡檢系統(tǒng)(四)處理鄰居列表
鏈接分享:http://www.muchs.cn/article26/ghoccg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站虛擬主機、響應(yīng)式網(wǎng)站、App開發(fā)云服務(wù)器、網(wǎng)站設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化