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

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

创新互联长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为五龙口企业提供专业的网站设计、成都网站建设五龙口网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

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

本次实验需要再次拓展新的拓扑,,且实验环境改为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这个工具包的使用笔记在评论中的连接


网站题目:自己搭建自动化巡检系统(四)处理邻居列表
分享网址:http://pwwzsj.com/article/ghoccg.html