问题描述
传统网络设备是一个封闭系统,提供的功能和服务都是固定的,不具有动态性和灵活性。随着网络的迅猛发展和不断普及,多样化、差异化的需求层出不穷,传统网络设备难以满足这些需求。部分用户要求设备提供不同层次的开放性,便于开发一些自定义的功能,部署一些私有的管理策略,实现自动化运维等功能,以降低管理成本。
试想下面的场景:
1)网络开局,硬件安装完成后,大批量设备需进行业务配置。
2)网络管理员希望设备出现某些告警时,自动执行相应处理动作。
3)网络管理员编写脚本远程下发命令,定时收集设备信息,遇到网络不通的情况。
传统网络设备已无法有效解决以上场景存在的问题及想要达成的需求。
解决方案
华为公司推出 OPS(Open Programmability System,开放可编程系统),提供网络设备的开放可编程能力,赋予用户二次开发的能力,充分释放设备潜力。
简单说,我们能够在华为网络设备中运行 Python 脚本。有了OPS功能,用户可以根据自己的需求编写脚本,导入网络设备进行运行,灵活高效。
原理简述
OPS 功能是用户编写 Python 脚本,将脚本安装到网络设备,脚本运行时发送HTTP请求,来实现对网络设备的管理。
1)用户编写 Python 脚本,其调用 OPS 定义的 RESTful API,并在设备上运行,
2)脚本通过发送 HTTP 请求(127.0.0.1)对网络设备的管理对象进行操作,
3)网络设备则会根据操作的执行结果返回 HTTP 响应消息。
特性特征
利用系统开放的 RESTful API,OPS 允许用户或第三方开发商,开发和部署自己的网络管理策略,从而迅速地实现业务功能扩展、自动部署和设备的智能化管理,降低运维成本和操作的复杂度。
应用场景
实现空配设备自动部署
使用OPS可以实现空配置设备自动部署,不需要管理员到安装现场,降低了人力成本,提升了部署效率。
1)DHCP Server:用来为自动部署的网络设备分配临时管理IP地址、缺省网关、脚本文件服务器地址等信息。
2)DHCP Relay:当需要自动部署的网络设备与DHCP服务器位于不同网段时,需要通过DHCP中继转发DHCP交互报文。
3)脚本文件服务器:用来保存网络设备自动部署时需要的脚本文件(Python脚本)。通过运行脚本文件,网络设备可以获取软件和配置文件服务器地址、版本文件、配置文件等信息。
4)软件和配置文件服务器:用来保存网络设备自动部署需要的系统软件、配置文件、补丁文件。
实现设备健康状态自检
通常情况下,对设备的健康状态进行检查时,用户需要登录设备并执行多条命令行,以查看设备的硬件、业务运行状态。
通过OPS功能,设备可以自动执行这些健康检查命令,定时收集执行结果并将其发送至服务器以供分析,减少维护工作量。因为这些命令是通过安装在网络设备系统中的Python脚本下发的,而不是用户通过网络远程下发的,因此也不需要担心网络不通的问题。
通过编写python脚本,可以实现下发命令,当网络不通时,将执行结果暂存在设备,等网络恢复再传输到Server的功能。因此,可以消减网络不通带来的影响。
实现自动备份配置文件
网络设备通过维护助手订阅配置文件保存事件,当配置被保存后,设备自动运行Python脚本,将配置文件发送至服务器进行备份,以减少手工备份的工作量。