API与意图驱动网络:网络自动化新视角
1. 自动化的双刃剑
糟糕的自动化会加速不良后果的产生。计算机执行任务的速度远超人类工程师,若同样的操作流程由人类和脚本分别执行,脚本往往会更快完成,且有时在流程之间缺乏可靠的反馈机制。网络上有很多按下回车键后就后悔的案例,因此我们要尽可能降低自动化脚本出错的概率。
2. API:解决网络交互难题的钥匙
在以往与设备交互时,使用Pexpect和Paramiko工具虽能模拟用户在终端输入命令,但当输出内容增多时,计算机程序难以解析。而API(应用程序编程接口)的出现解决了这一问题。API是一组用于构建应用程序软件的子程序定义、协议和工具,它为不同软件组件之间提供了清晰定义的通信方法。在我们的场景中,API就是Python程序与目标设备之间的通信桥梁。
2.1 关注网络意图
网络工程师应更关注网络要达成的目标,而非设备层面的交互。以安装路由器开通帧中继链路为例,若只是盲目执行命令,而不理解其含义,遇到问题将难以解决。使用API能让我们更接近意图驱动的网络状态,因为它抽象了在目标设备上执行的具体命令,使我们专注于网络意图。例如,若要阻止某个IP进入网络,不同厂商设备有不同命令,但使用API时,程序可询问执行者意图,而无需关注具体设备类型。
2.2 屏幕抓取与API结构化输出对比
以检查设备接口是否处于“up/up”状态为例,人类工程师通过“show IP interface brief”命令的输出能轻松判断,但计算机解析该输出却很复杂。以下是解析Paramiko输出的伪代码步骤:
1. 通过换行符分割每一行。
2. 可选择是否需要包含执
超级会员免费看
订阅专栏 解锁全文
923

被折叠的 条评论
为什么被折叠?



