【云驻共创】AOC一触即发,玩转L3VPN业务开发
一 背景
什么是智能云网,业务上云,智驱行业新价值,围绕“数字化、智能化、服务化”,华为打造端到端智能云网解决方案,以数赋智,提供云园区网络、云广域网络、数通网络开放可编程、超融合数据中心网络、数通网络设备开放社区五大场景,让企业上好云、用好云。
本直播实战AOC开发L3VPN业务。
二 AOC核心机制及相关概念
AOC的核心机制:模型驱动、映射机制、事物机制、配置预览和历史记录等。
• 模型驱动:
• AOC可以根据Yang模型自动生成Web UI和RestConf。
• Yang模型在配置下方的时候可以存储备份,和同步设备上的配置
• Yang同时起到了屏蔽南向协议的作用,例如NetConf和STelnet。
映射机制:AOC的映射机制将SSP的网源模型映射为AOC中data store的网源模型进行自动比较,形成一些列操作,对开发者非常的友好。
事务机制:针对于复杂业务,可能有多个设备,也可能一个设备多条配置,事物机制在实时监控配置下发过程,如果出现异常进行回滚
配置预览:基于AOC任何下发的配置,在页面上可以看到预览信息,可以看到下发的报文什么样子的。
历史记录:在AOC上做的任务配置,可以记录用户针对AOC的北向记录配置,同时也可以记录AOC对设备的配置记录,这样非常方便的进行审计。
2.1 SSP定义
Specific Service Plugin 缩写,也称为业务包。业务是指 针对一款或多款设备设计的,利用一台或多台设备的能力共同达 成某种目的的应用程序。在一个SSP包中,定义了完成一套网络级 业务配置对应的数据YANG模型、 Python脚本、Jinja2模板。
• 业务YANG模型描述了业务的相关参数。
• Python脚本可以对输入业务Yang模型数据进行进一步校验或 者逻辑处理,AOC在open-api中提供了很多接口方便用户处 理。
• Jinja2模板通过使用Jinja2语法诸如插值、条件判断、循环等 完成对网元的Yang模型数据结构描述。
2.2 作用
业务包可支撑业务跨设备、跨厂商快速部署,当在开放可编程中导入一 个SSP后,用户就可以基于业务Yang模型对对应的网络业务进行配置 发放,并且支持查看由业务分解出的网元级配置等。
三 开发全景
开发全景如下步骤:
1.业务分析
2.开发SSP包
• 创建SSP包模板
• 编辑pkg.json
• 业务开发YANG模型
• 开发Python映射代码
• 开发Jinja2模板
• 编写测试用例
3.编译SSP包
4.验证SSP包
在开发SSP包步骤中是一个循环的步骤。
四 L3VPN业务分析
4.1 环境
• IDE:本地IDE或者在线IDE环境
• AOC:在线AOC环境或者本地实验室AOC环境
4.2 设计
L3vpn的组网以及配置比较复杂,当前由于时间及环境的关系 我们只挑选PE节点中的部分配置下发,其他的节点及配置类似, 假定业务分析设计阶段已完成,网元层最终要下发给设备的模 型数据已确定,只需要针对PE节点下发vpn相关属性,以及接 口相关属性
4.3 目标
编写Yang,编写分解逻辑以及模板,最终AOC试运行产生的配置数 据符合预期
4.4 命令行解析
假设设备上VPN的全局配置已经配置完成。现在 只需要下发如下配置:
1. 创建VPN实例5G-RAN,配置RT和RD值。
2. 创建子接口,配置接口地址、vlan并绑定 VPN实例。
3. 配置VPN路由,引入静态路由和直连路由, 配置BGP对等体。
4. 使能YANG接口下发bgp配置。
上图为Yang模型对应的格式报文,最终写的jinja2模版报文也类似。
4.5 整理网络配置的输入参数
根据l3vpn业务梳理出网络配置的输入参数:
1. 标识哪个VPN业务下发到哪台设备,提取出 设备名称和VPN名称两个参数,作为组合 key标识一个VPN业务。
2. VPN需要配置RT和RD值,过滤路由信息, 提取出RD和RT两个参数。
3. 接口需要配置IPv4地址、绑定VPN、配置 vlan,提取出子接口名称、接口描述、接口 IP和掩码4个参数。
4. 配置BGP对等体,提取出对等体的IP。
五 开发业务YANG模型
5.1 编写业务YANG模型
1. 在SSP包模板的yang模型中,服务名称对应 业务YANG module的名称,业务定义点对 应业务YANG模型的“app:applicationdefinition”。
2. 在yang模型中定义业务标识,本例中使用设 备名称和VPN名称作为组合key。
3. 在yang模型中定义VPN业务的RD和RT值。
4. 在yang模型中定义子接口配置。
5. 在yang模型中定义对等体信息。
5.2 校验YANG文件
运行命令
D:\yang-offline-util>java -jar yang-offline-util.jar validate console path .
yang-offline-util.zip获取地址: https://devzone.huawei.cn/test/aoc/resDownload.html
1. 从AOC开发者社区上下载YANG文件校验工具。
2. 然后解压“yang-offline-util.zip”。
3. 将软件包“yang”目录下的业务YANG模型文件, 复制到“yang-offline-util.zip” 的解压路径下。
4. 从离线工具包中获取业务YANG模型文件依赖的 YANG文件huawei-ac-applications.yang和ietfinet-types.yang,并放到和业务YANG模型文件 的同一个目录下。
5. 打开CMD并切换到校验工具所在目录,执行命令 验证YANG模型的正确性。当运行结果为空时, 表明YANG文件格式正确。
六 开发Python映射
6.1 开发python映射代码
1. 在编写python代码前,需要引入必要的头 文件中的相关类。
2. 复写“ncs_map” 方法,将用户业务 YANG定义的业务数据填充到jinja模板。
3. 定义一个方法,用于更新VRF描述信息。
4. 定义一个方法,用于校验主接口是否存在。
5. 添加Jinja模板过滤器,用于在Jinja模板中 实现SSP业务映射到不同款型设备。
6.2 开发Jinja2模板
1. 根据ifm、network-instance、bgp的配置,制 作Jinja2模板,在业务分析涉及阶段已分析,并获取 到了对应的网元Jinja2模型。
2. 将具体值提取出变量,完成后将模板放入到模板 文件(L3VPN>template>l3vpn>NE8000M8.j2)中。
3. 如果有多种类型设备,可以将业务扩展映射到不 同款型的设备。
4. 将编写好的模板放入到模板文件 (L3VPN>template>l3vpn>servicepoint.j2)中。
6.3 编写测试用例
编写测试用例
1. 编写llt测试代码,并保存到test > l3vpn路径下的脚本文件中。
2. 运行测试脚本文件,可以看到 生成的报文,检查报文格式和 值是否正确。
6.4 加载SSP 包
1. 在AOC软件的“包仓库”页 面,先删除原来的SSP包模 板。
2. 然后导入新开发的SSP包和 签名文件。
3. 单击“操作”列中的“部 署”,激活SSP包。
6.5 下发网络业务
1. 进入“业务管理”页面,选中 业务模型“l3vpn”,单击 “增加”。
2. 在打开的页面中,填写设备名 称和VRF名称后,单击“创 建”。
3. 再填写 子接口与和bgp 等配置 信息 。
4. 单击“试运行”,查看将要下 发的配置报文 。
七 实战
在CloudIDE进行编码
设配配置
包仓库中创建包模版
最终完成开发及测试运行。
本文整理自华为云社区内容共创活动:【内容共创系列】中秋月圆至,人间好时节——签约作者征集令,推荐/参与活动有奖。
查看活动详情:https://bbs.huaweicloud.cn/blogs/298594
- 点赞
- 收藏
- 关注作者
评论(0)