用于解析网络设备输入配置的框架

Framework for parsing the input configuration of network devices

提问人:David Mayer 提问时间:9/5/2022 更新时间:10/6/2022 访问量:74

问:

Genie Parser 或 TextFSM 等框架会解析配置的输出。当您向设备询问配置的某些部分时,设备会回答这个问题,例如 或 。show ip routeshow access-lists

例如,这是 ACL 的输出,可以通过上述框架进行解析:

switch1#show access-lists
Standard IP access list acl-snmp-4
    10 permit 10.0.0.1
    20 permit 10.0.0.2
    30 permit 192.168.0.1
    40 permit 192.168.0.2

我正在寻找的是解析输入 - 人们在配置设备时需要输入的文本。当想要以编程方式验证配置标准是否正确时,这很有用。

例如,验证以下代码片段是否具有正确的 IP:

ip access-list standard ACL1

remark Server1
permit host 10.0.0.1
permit host 10.0.0.2
remark Server2
permit host 192.0.0.3
permit 54.101.80.0 0.0.0.63

我目前正在使用一些 for 循环和正则表达式,但是当您获得数十种设备类型、操作系统类型、配置样式时,它会变得混乱。

IOS 解析 Cisco

评论


答:

0赞 ubaumann 10/6/2022 #1

您可以看到操作数据,而不是直接查看配置,是的,Genie 或 TextFSM 是将操作文本输出转换为结构化数据的解决方案。show access-list

对于配置数据,我建议看一下 ttp

我不太确定您要解决的用例是什么。如果要生成配置,为什么不使用模板引擎呢?例如,jinja2

CLI 并不是真正为自动化而设计的,因此请检查您的设备是否具有适当的 API,例如 netconf-yang。