由于安全需要,需要定期对接入层交换机配置进行合规检查,避免不规范配置存在的漏洞给公司网络带来安全风险。

如下案例是通过textfsm 提取交换机接口的配置信息,进一步进行检查准入配置是否开启:

1、首先看接口下的配置

interface GigabitEthernet1/0/7
description user_0001
switchport access vlan 192
switchport mode access

authentication event server dead action reinitialize vlan 192
authentication event server alive action reinitialize
authentication port-control auto
authentication periodic
authentication timer reauthenticate server
authentication timer restart 36000
mab eap
dot1x pae authenticator
dot1x timeout tx-period 5
dot1x max-req 1
dot1x max-reauth-req 1
spanning-tree portfast edge
!

需要提取的信息已经用蓝色背景标注了,其中有接口名称,接口描述(可选),接口接入VLAN,接口模式,准入配置,端口生成树模式;其中接口名称,在交换机的配置文件中会有多种接口,比如vlan/vlanif,loopback,null 和链路聚合等情况,需要通过正则表达式的关键字进行过滤。

2、注意配置格式:

接口数据应该类似:{接口:(接口描述,接口接入VLAN,接口模式,准入配置,端口生成树模式)},向下查找的内容均属于该接口,直到发现有“!”。

重点在于提前记录这个接口,待查找完数据后,再进行下一个接口的数据匹配。

3、配置模板

这个模板正常地开始提取数据的点是在检测到

IntfaceName加接口名称的行时,然后进入Interface状态进行具体属性的匹配和提取。在Start状态下使用变量${IntfaceName}正确地设置了进入Interface状态的条件。
 1 Value IntfaceName (\S+Ethernet+\S+)
2 Value Interface_mode (\S+)
3 Value VLAN_id (\d+)
4 Value STPmode (\S+)
5 Value Desc (\S+)
6 Value dot1x_cfg (\S+)
7 Value AdminState (shut+\S+)
8
9 Start
10 ^interface ${IntfaceName} -> IntfaceName
11
12 IntfaceName
13 ^\sdescription ${Desc}
14 ^\sswitchport access vlan ${VLAN_id}
15 ^\sswitchport mode ${Interface_mode}
16 ^\s+${AdminState}
17 ^\sdot1x pae ${dot1x_cfg}
18 ^\sspanning-tree ${STPmode}
19 ^! -> Record Start
20 #发现“!”后,记录以上匹配到的内容,并开始进行下一个查找。

textfsm 案例分享的更多相关文章

  1. ArcGIS Add-in插件开发从0到1及实际案例分享

    同学做毕设,要求我帮着写个ArcGIS插件,实现功能为:遍历所有图斑,提取相邻图斑的公共边长及其他属性(包括相邻图斑的ID),链接到属性表中.搞定后在这里做个记录.本文分两大部分: ArcGIS插件开 ...

  2. Office 2010 KMS激活原理和案例分享

    Office 2010 KMS激活原理和案例分享     为了减低部署盗版(可能包含恶意软件.病毒和其他安全风险)的可能性,Office 2010面向企业客户推出了新的批量激活方式:KMS和MAK.这 ...

  3. Office 2010 KMS激活原理和案例分享 - Your Office Solution Here - Site Home - TechNet Blogs

    [作者:葛伟华.张玉工程师 ,  Office/Project支持团队, 微软亚太区全球技术支持中心 ] 为了减低部署盗版(可能包含恶意软件.病毒和其他安全风险)的可能性,Office 2010面向企 ...

  4. 老李案例分享:Weblogic性能优化案例

    老李案例分享:Weblogic性能优化案例 POPTEST的测试技术交流qq群:450192312 网站应用首页大小在130K左右,在之前的测试过程中,其百用户并发的平均响应能力在6.5秒,性能优化后 ...

  5. 性能调优案例分享:Mysql的cpu过高

    性能调优案例分享:Mysql的cpu过高   问题:一个系统,Mysql数据库,数据量变大之后.mysql的cpu占用率很高,一个测试端访问服务器时mysql的cpu占用率为15% ,6个测试端连服务 ...

  6. 老李案例分享:MAT分析应用程序服务出现内存溢出过程

    老李案例分享:MAT分析应用程序服务出现内存溢出过程   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loa ...

  7. 老李案例分享:定位JAVA内存溢出

    老李案例分享:定位JAVA内存溢出   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loadrunner的培 ...

  8. 性能调优案例分享:jvm crash的原因 1

    性能调优案例分享:jvm crash的原因   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...

  9. [转载]DevOps在传统企业的落地实践及案例分享

    内容来源:2017年6月10日,优维科技高级解决方案架构师黄星玲在“DevOps&SRE 超越传统运维之道”进行<DevOps在传统企业的落地实践及案例分享>演讲分享.IT 大咖说 ...

  10. mysql的"双1设置"-数据安全的关键参数(案例分享)

    mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...

随机推荐

  1. vscode 自动格式化md文件,搞得很是郁闷,加入 [markdown] 自定义配置 "editor.formatOnSave": false 搞定了。

    上下文: vscode做vue的项目开发,需要对代码进行格式化,用的vetur插件 正常来讲,代码保存的时候,需要进行格式化,所以配置文件会写成 "editor.formatOnSave&q ...

  2. 基于ADS1299的可穿戴设备调试之接口含义简析

    前言    几个项目都用到了ADS1299,没想到中间会出那么多的问题.在解决问题的时候,这里面暴露了团队的不少不足之处.看来做技术,还是需要不断地积累.思维不能留盲点啊.要经常总结,做笔记.   接 ...

  3. linux怎么添加用户

    在Linux中添加普通新用户 超级用户(也称为"root")是一个具有修改系统中任何文件权力的特别账号.在日常工作中,最好不要使用超级用户账号进入系统,因为任何错误操作都可能导致巨 ...

  4. display标签交替显示不同行颜色

    问题 想要一个更加简单的支持列表数据分页和排序的方法. 解决方案 使用Display标签库和JSP标签库. 例4.13介绍了一个JSP页,它使用4.5节中的数据模型显示美国总统列表.这个JSP页面使用 ...

  5. decltype总结

    decltype会识别const和引用 decltype一个表达式的时候会判断该表达式是左值还是右值,如果是左值就返回引用,否则就返回非引用. int &a = xx; const declt ...

  6. [.NET项目实战] Elsa开源工作流组件应用(一): Elsa工作流简介

    Elsa工作流简介 工作流是什么? 引用维基百科中对工作流的解释: 是对工作流程及其各操作步骤之间业务规则的抽象.概括.描述.工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以 ...

  7. RTMP录屏直播屏幕数据获取与MediaCodec编码

    目录 前言 RTMP直播实现流程 视频采集--MediaProjection 编码--MediaCodec 音频采集--AudioRecord RTMP音频包数据 RTMP视频数据 前言 本文介绍的是 ...

  8. 云VR给当今的教育行业带来哪些契机

    教育一直是国之根本大策,培养下一代高科技新型人才是新时代规划的重要建设目标.教育的授课方式也别出心裁,不断地涌现出教育的新模式.3DCAT 云VR别出心裁,为教育行业带来新的教学方式和简化管理的全新系 ...

  9. 快速排序遇到的小bug

     测试环境 Ubuntu 18.04, gcc 8.4 复习一下快排算法,不料却得到了非预期的结果.示例代码如下 1 #include <stdio.h> 2 3 void mySwap( ...

  10. 2024最新最全Java和Go面经,面试了30多场,终于上岸了!

    ​> 本文来自我们技术交流群群友的投稿,未经授权,禁止转载. 原文链接:太难了,Java和Go,面试了30多场,终于上岸了! 先听一下TA的故事 2023年10月份我就做好了离职跳槽的准备,做了 ...