自己搭建自动化巡检系统(四) 处理邻居列表
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

Tablecdp_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这个工具包的使用笔记在评论中的连接


相关内容

热门资讯

内塔尼亚胡支持率下滑,英媒:以... 【文/观察者网 陈思佳】当地时间6月3日,黎巴嫩、以色列和美国发表联合声明称,黎以同意停火,前提是黎...
从“怕”签合同到登上华为发布会... 6月1日,华为发布会现场,一款名为“像素匠PRO”的应用闪亮登场。掌声未落,台下的四个年轻人却红了眼...
网络机柜厂家梳理:适配数据中心... 导语:网络机柜作为数据中心、企业机房等场景的核心基础设施,其稳定性、适配性及服务能力直接影响整体系统...
“特级治淮劳动模范”李秀英逝世 据阜阳日报6月5日消息,“特级治淮劳动模范”李秀英于2026年6月1日21时30分逝世,享年99岁。...
“芒种”练兵备战海报发布 时至芒种暑盛风燥今天我们迎来二十四节气中的“芒种”芒种时节训练场骄阳炽烈、热浪翻涌官兵的练兵劲头也一...
燃气灶一个灶点火另一个也点火怎... 原因:有可能是开关进水了,连电了,检查插头是不是有 水迹,拔开看看是不是有生锈的痕迹,氧化铜是导电的...
消息称SK海力士将在大连二厂建... IT之家 6 月 4 日消息,据韩媒 the bell 当地时间 5 月 28 日报道,SK 海力士...
燃气灶打火后就灭怎么回事 原因是燃气灶电池盒的正负极生锈,线路接触不良,需要将铁锈清除掉,准确连接线路。还有可能是因为燃气灶电...
燃气灶打火砰一下怎么回事 燃气灶打火砰一下的原因大概有着几点:1、煤气灶的点火针出现了故障;2、燃气灶出现了泄漏的情况;3、旋...
燃气灶一会就灭是什么原因 原因可能是电池没电,可以用新的电池把原有电池替换掉,或者是热电偶发生故障,检查热电偶,查看是否有损坏...