网络自动化:API与意图驱动网络详解
1. 自动化的风险与API的引入
自动化在网络领域有着巨大的潜力,但不良的自动化可能会带来严重的问题。计算机执行任务的速度远快于人类工程师,一个有问题的自动化脚本可能会迅速造成不良后果。因此,我们要尽可能降低自动化脚本出错的概率。
在与网络设备交互时,以往使用Pexpect和Paramiko等工具进行交互式操作,虽然能模拟用户在终端输入命令并获取输出,但当输出内容较多时,计算机程序解析这些输出变得困难。为了解决这个问题,互联网社区引入了应用程序编程接口(API)。
API是一组明确定义的软件组件间的通信方法,它为开发者提供了构建计算机程序所需的基础模块。在网络场景中,API能让Python程序与目标设备进行清晰的通信。
2. 以代码和数据建模看待基础设施
网络工程师应更关注网络的意图,而非设备层面的交互。例如,在安装路由器开通帧中继链路时,若只是盲目执行命令,而不理解其背后的含义,遇到问题将难以解决。网络工程的核心是构建高效的服务传输路径,命令和输出只是实现目标的手段。
使用API能让我们更接近意图驱动的网络状态,因为它抽象了在目标设备上执行的具体命令,使我们专注于网络意图。比如,要阻止某个IP进入网络,不同厂商设备的配置命令不同,但使用API时,程序可以询问执行者的意图,而无需关注具体的设备类型。
3. 屏幕抓取与API结构化输出对比
以检查设备接口是否处于“up/up”状态为例,人类工程师通过执行“show IP interface brief”命令,能轻松从输出中判断接口状态。但计算机解析这些输出则需要复杂的步骤:
1.
超级会员免费看
订阅专栏 解锁全文
1868

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



