由于安全需要,需要定期对接入层交换机配置进行合规检查,避免不规范配置服务器托管存在的漏洞给公司网络带来安全风险。
如下案例是通过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 #发现“!”后,记录以上匹配到的内容,并开始进行下一个查找。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqt服务器托管g.net
相关推荐: 基于多反应堆的高并发服务器【C/C++/Reactor】(中)在EventLoop的任务队列中添加新任务
任务队列是一个链表,每个节点包含channel类型、文件描述符和操作类型。 在添加节点时,需要考虑线程同步,并确保节点被正确地添加到链表中。 节点的操作可以写到另一个函数中,以便于程序的维护。 在添加任务节点时,需要加互斥锁,因为有可能是当前线程或主线程进行添…