【云驻共创】AOC一触即发,玩转L3VPN业务开发

举报
kaliarch 发表于 2021/09/23 09:21:20 2021/09/23
【摘要】 一 背景什么是智能云网,业务上云,智驱行业新价值,围绕“数字化、智能化、服务化”,华为打造端到端智能云网解决方案,以数赋智,提供云园区网络、云广域网络、数通网络开放可编程、超融合数据中心网络、数通网络设备开放社区五大场景,让企业上好云、用好云。本直播实战AOC开发L3VPN业务。二 AOC核心机制及相关概念AOC的核心机制:模型驱动、映射机制、事物机制、配置预览和历史记录等。• 模型驱动:•...

一 背景

什么是智能云网,业务上云,智驱行业新价值,围绕“数字化、智能化、服务化”,华为打造端到端智能云网解决方案,以数赋智,提供云园网络、广域网络、数通网络开放可编程、超融合数据中心网络、数通网络设备开放社区五大场景,让企业好云、用好云。

本直播实战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.com/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.com/blogs/298594



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200