自己搭建自动化巡检系统(四) 处理邻居列表
admin
2023-07-17 01:22:30
0次

通过之前的三次实验,我们已经可以初步的使用python通过telnet来操作cisco设备,接下来开始新一期的实验

实验目的:网络巡检,之后将信息存储在数据库中

本次实验需要再次拓展新的拓扑,,且实验环境改为ubuntu,后续的拓展将改为在linux环境下经行。本地地址使用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

自己搭建自动化巡检系统(四) 处理邻居列表

为每台设备配置IP地址

由于需要批量配置,可以使用CRT的全局发送功能实现批量命令部署

自己搭建自动化巡检系统(四) 处理邻居列表

全部部署vty之后,开通三台设备以减少机器负担,后续再陆续开发

自己搭建自动化巡检系统(四) 处理邻居列表

检验连通性

自己搭建自动化巡检系统(四) 处理邻居列表

发现邻居名单

自己搭建自动化巡检系统(四) 处理邻居列表

检验代码的执行结果

自己搭建自动化巡检系统(四) 处理邻居列表

接下来的任务是通过系统抓包,对这些数据包进行分析,我们的任务就是通过抓取cdp数据包的形式,记录邻居关系,如果发生邻居关系变动则发出告警信息。

这里说一下思路:获取接受的这串字符串,进行信息处理,即只收取:R1 Fas0/0 Fas0/0,并存入本地数据库中,因此需要在数据库中建立一张邻居表,存储路由器编号、本地接口号,对端接口号。这里安装两个数据库,存储在两个地方,一来是灾备,二来是为了之后做实验,测试关系型数据库和非关系型数据库的在运行效率上的不同。

第一步:截取信息

处理这串字符:

'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>'

本次打算使用的字符串处理方法是进行切片,后续还可以尝试使用类似正则表达式的方法

自己搭建自动化巡检系统(四) 处理邻居列表

等待2秒是需要接收设备返回的邻居信息

自己搭建自动化巡检系统(四) 处理邻居列表

处理完成,美滋滋

自己搭建自动化巡检系统(四) 处理邻居列表

第二步:设计关系表,并建表

设计mysql

Database:NDB

Table:cdp_nei

RID

Char

Local_Int

Char

Port_ID

Char

First_record

Datetime

Change_record

Datetime

这里已经在mysql中的ndb里面建立一张表,存储的是cdp邻居的信息,基于当前的拓扑,可以预见当所有路由器运行之后,表中的信息条目应该是6*7=42

自己搭建自动化巡检系统(四) 处理邻居列表

First_record用于记录首次记录这个数据项的时间,Change_record则会自动记录每次修改这个数据项的时间,在查询的时候,可以通过查看修改数据项的时间,如果发生改变就可以直接提示这条链路发生抖动

第三步:写入数据库中

我们在调试界面试一下该命令可以通过

自己搭建自动化巡检系统(四) 处理邻居列表

查看效果

自己搭建自动化巡检系统(四) 处理邻居列表

好了之后可以在代码中写入相关指令,不过在这之前,先做一件刺激的事儿,先衫裤再跑路!

自己搭建自动化巡检系统(四) 处理邻居列表

代码:

这个是初始版本,后续为了开发方便封装在一个单独的类里面的

自己搭建自动化巡检系统(四) 处理邻居列表

写完之后记得同步数据才可以在数据库中查看到相关信息

自己搭建自动化巡检系统(四) 处理邻居列表

写入成功,美滋滋啊

自己搭建自动化巡检系统(四) 处理邻居列表

第四步:遍历所有设备的邻居信息

思路:依次telnet登录每台设备,对其使用show cdp nei,然后收集对端端口信息,写入数据库中

自己搭建自动化巡检系统(四) 处理邻居列表

这里就可以动态的将信息存储在数据库中,下个实验我们将通过编写脚本,将出错的信息告警


关于python-mysql的安装教程以及mysqldb这个工具包的使用笔记在评论中的连接


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...