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

发布时间:2020-06-27 11:21:35 作者:yerikyu
来源:网络 阅读:2268

通过之前的三次实验,我们已经可以初步的使用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这个工具包的使用笔记在评论中的连接


推荐阅读:
  1. IS-IS 中间系统到中间系统
  2. 电商大数据项目-推荐系统实战之推荐算法(三)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

cisco python telnet远程登录

上一篇:Rake::TestTask 介绍

下一篇:EonStor GS为韩国专业电视台建立媒资库

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》