浅析SR隧道路径批量构造方法

为什么要仿真PCE LSP下发隧道路径?

在大型的多区域网络中,路径计算非常复杂。在某些场景下,为了完成路径计算,需要在控制器上部署特殊的计算组件,并需要不同区域中的节点之间协作。这使得网元在进行路径计算时效率低,还会降低网元本身的转发性能。
PCE最早是为了解决大型的多区域网络路径计算问题而被提出,通过PCE可以为TE计算跨域路径。如下图所示,PCEP网络包含如下3个部分:

  • PCE(Path ComputationElement,路径计算单元):PCE是能够基于网络拓扑信息计算满足约束的路径的部件。PCE可以部署在路由设备中,也可以部署在一个独立的服务器中。大多数时候,PCE和控制器是集成在一起的。
  • PCC(Path ComputationClient,路径计算客户端):PCC是请求路径计算单元执行路径计算的客户端应用程序。PCC向PCE发送路径请求,并接受PCE返回的路径计算结果。一般情况下,路由设备集成了PCC功能,可以认为路由设备就是PCC。
  • PCEP(Path ComputationElementProtocol,路径计算单元通信协议):PCEP是PCE和PCC、PCE和PCE之间的通信协议。
    图1 应用拓扑
    在这里插入图片描述

自动化生成PCE LSP能解决什么问题?

使用仪表模拟PCE时,需要手工创建PCE LSP,并且涉及转发路径标签的确定,Adj-Sid在每次建立SR邻居时都是随机分配标签值,创建隧道路径又必须明确标签值,在创建大量的隧道路径情况下,使用自动化读取SR隧道数据方法创建PCE LSP可节省大量仪表配置精力。

如何使用自动化构造PCE LSP

信而泰Renix平台提供了python API接口,可使用python API进行PCE LSP灵活定义。假设业务如下所示:

  • SR-TE单板转发性能:创建ISIS SR-TE业务

  • PCEP隧道托管:DUT与仪表之间建立SR-TE隧道,并把其中4000条隧道路径托管到PCE。
    图2 实验拓扑
    本文选择基础API使用信而泰API(renix_py_api、MiscLibrary),不另做定义,使用时需安装相关环境。代码解析如下:

  • 导入相关库:
    from renix_py_api.renix import *
    import logging
    import pandas as pd

  • 初始化:initialize为仪表初始化
    initialize(log=True,log_level=logging.INFO,log_handle=LogHandle.LOG_FILE)
    chassis_DY = “10.1.1.7”
    port_DY_1 = “//10.1.1.7/3/1”
    path = ‘D:\pcep\pceplsp.xls’
    data = pd.DataFrame(pd.read_excel(path))
    tunnelnum = 16000
    pcelspnum = 4000
    创建自动化前需收集隧道路径参数,格式如下表所示(提供前10供参考,本实验共计250条路径用于承载vpnv4流量,250条路径用于承载6vpe流量):
    在这里插入图片描述

  • 创建仪表基本配置
    sys_entry = get_sys_entry()
    sys_entry.edit(ProductType=1)
    chassis = ConnectChassisCommand(chassis_DY)
    chassis.execute()
    port_location = (‘//10.1.1.7/3/1’)
    port_1 = Port(upper=sys_entry, Location=port_location[0], name=‘port_1’)
    BringPortsOnlineCommand(PortList=[port_1.handle]).execute()

  • 配置pcep
    interface_1 = Interface(upper=port_1)
    build_ipv4_ipv6 = BuildInterfaceCommand(InterfaceList=‘Interface_1’, NetworkLayers=‘eth’, TopLayers=[‘ipv4’, ‘ipv6’])
    build_ipv4_ipv6.execute()
    eth_layer = interface_1.get_children(‘EthIILayer’)[0]
    eth_layer.edit(Address=‘00:10:99:00:00:01’)
    ipv4_layer = interface_1.get_children(‘Ipv4Layer’)[0]
    ipv4_layer.edit(Address=‘12.5.20.2’, Step=‘0.0.0.1’, Count=‘1’, Gateway=‘12.5.20.1’)
    ipv6_layer = interface_1.get_children(‘Ipv6Layer’)[0]
    ipv6_layer.edit(Address=‘12:5:14::2’, Step=‘::1’, Count=‘1’, Gateway=‘12:5:14::1’)
    PcepSession = PcepProtocolConfig(upper=port_1)
    PcepSession.edit(UseGatewayAsDutIp=False)
    PcepSession.edit(PeerIpv4Address=“10.48.48.1”)
    select_interface_1=SelectInterfaceCommand(ProtocolList=[PcepSession.handle], InterfaceList=[interface_1.handle])
    select_interface_1.execute()

  • 配置PCE LSP,根据Excel循环创建
    tunnelperpeer = int(tunnelnum/250)
    counter = 4000
    for x in range(250):
    for y in range(tunnelperpeer):
    PceLsp = PceLspConfig(upper=PcepSession)
    SymbolicName = ‘Tunnel’+str(x*tunnelperpeer+(y+1))
    PceLsp.edit(SymbolicName=SymbolicName)
    SourceIP = data.loc[x][1]
    PceLsp.edit(SourceIpv4Address=SourceIP)
    DestIP = data.loc[x][2]
    PceLsp.edit(DestinationIpv4Address=DestIP)
    PcepSrEroObject = PcepSrEroObjectConfig(upper=PceLsp)
    PcepSrEroSubObject = PcepSrEroSubObjectConfig(upper=PcepSrEroObject)
    PcepSrEroSubObject.edit(NaiType=3)
    PcepSrEroSubObject.edit(FFlag=True)
    Adjsid = int(data.loc[x][3])
    PcepSrEroSubObject.edit(SidLabel=Adjsid)
    PcepSrEroSubObject = PcepSrEroSubObjectConfig(upper=PcepSrEroObject)
    PcepSrEroSubObject.edit(NaiType=1)
    PcepSrEroSubObject.edit(FFlag=True)
    Nodesid = int(data.loc[x][4])
    PcepSrEroSubObject.edit(SidLabel=Nodesid)
    counter -=1
    if counter == 0:
    break
    if counter == 0:
    break

  • 保存Renix平台对应XCFG文件
    save_case = SaveTestCaseCommand(TestCase=‘D:\pcep\pcep.xcfg’, ProductType=1)
    save_case.execute()

  • 执行生成配置文件效果(PCE LSPs)
    在这里插入图片描述

  • PCE LSP对应路径(ERO Object)
    在这里插入图片描述

DarYu-X系列测试仪

DarYu-X系列高性能网络测试仪是信而泰推出的面向高端路由器等高端数通设备的测试产品,具有高性能、高密度、高速率等特点,配置信而泰基于PCT架构的新一代测试软件RENIX和X2系列测试模块,可为提供路由高效组网测试解决方案,为建立一张高SLA保证、确定性时延、业务感知、灵活业务路径调优的下一代网络保驾护航。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/127249.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

直播实时数仓基于DataLeap开放平台在发布管控场景的业务实践

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 背景 业务背景 随着字节业务的高速增长,业务场景越来越丰富,业务基于数据做的决策也越来越多,对数据的时效性要求也越来越高。…

layui table合计 totalRow 保留4位小数\ 异步请求数据的表格 新增行之后 如何更新数据

layui table合计 totalRow 保留4位小数: 例: totalRowMethod:(column: any, dataSource: any[]) > { let total 0; dataSource.forEach((item) > { total total Number(item[column.key]); …

Vite依赖预构建

本文使用的包管理工具是 npm 开发工具是 vscode 本文作为对 vite的了解性内容即可,实际开发中并不会做太多的工作 依赖预构建干了啥 首先vite会找到对应的依赖, 然后调用 esbuild(对js语法进行处理的一个库), 将其他规范的代码转换成 esmodu…

Web前端—CSS高级(定位、高级技巧、CSS修饰属性、综合案例:购物网站轮播图)

版本说明 当前版本号[20231108]。 版本修改说明20231107初版20231108对知识点(圆点)进行补充 目录 文章目录 版本说明目录day08-CSS高级01-定位相对定位绝对定位定位居中固定定位堆叠层级 z-index定位总结 02-高级技巧CSS精灵案例-京东服务HTML结构CS…

API是什么?解密API背后的奥秘

API,全称Application Programming Interface,是一种用于不同应用程序间通信的接口,它允许不同的应用程序之间交换数据和功能。API可以理解为应用程序提供给其他应用程序或开发者的接口,通过这个接口,其他应用程序或开发…

将 Ordinals 与比特币智能合约集成:第 4 部分

控制 BSV-20 代币的分配 在上一篇文章中,我们展示了智能合约可以在铸造后控制 BSV-20 代币的转移。 今天,我们演示如何控制此类代币的分发/发行。 无Tick模式 BSV-20 在 V2 中引入了无Tick模式,并采用了与 V1 不同的方法。 部署 (Deploy) …

openinstall携手途虎养车,赋能汽车服务数字化

近日,openinstall与中国领先的一站式汽车服务平台途虎养车再次续约,双方将开启第三年合作。过去两年,途虎在建设线上线下一体化数字平台的过程中,深度结合openinstall传参归因与渠道统计技术,打造出了一套高效的渠道来…

聚焦千兆光模块和万兆光模块的测试技术及设备

千兆光模块和万兆光模块的测试技术涉及多个方面,如光学性能测试、电气性能测试、动态性能测试、温度测试、环境和耐久性测试等。不同的测试技术可以验证不同的光模块的性能和稳定性,从而确保光模块在各种应用场景下的可靠性,下面将介绍一些常…

PSP - 蛋白质复合物结构预测 模版配对(Template Pair) 逻辑的特征分析

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/134328447 在 蛋白质复合物结构预测 的过程中,模版 (Template) 起到重要作用,提供预测结果的关于三维结构的先验信息&…

Ubuntu2004字体不清晰,排查流程

昨天一早来发现平时用的Ubuntu2004物理机的字体变得很模糊,之前还是好好的,这里记录一下解决方案。 解决方案 通过显示器物理按键设置“自适应”解决,我的显示器是长城的,“自适应”按钮是右边从下往上数第二个。 排查流程 我先…

WordPress Modown 6.2付费下载资源/付费查看内容 wp主题模板+erphpdown11.7

模板简介: 自适应响应式设计,兼容主流浏览器 网格样式与瀑布流样式任意切换 内置SEO优化 自带与主题UI完美兼容搭配的erphpdown前端用户中心页面(此功能若单独找我们定制也需要几百) 收费付费下载资源、付费查看内容、付费观看…

GoLong的学习之路(二十一)进阶,语法之并发(go最重要的特点)(协程的主要用法)

并发编程在当前软件领域是一个非常重要的概念,随着CPU等硬件的发展,我们无一例外的想让我们的程序运行的快一点、再快一点。Go语言在语言层面天生支持并发,充分利用现代CPU的多核优势,这也是Go语言能够大范围流行的一个很重要的原…

【Delphi】Android 开发HTTP请求出错解决方案

目录 一、故障现象 二、原因及解决方案 一、故障现象 在android内建的WebBrowser浏览器中通过http访问一个网站(注意不是https),出现如下错误提示: 在使用ntfy的时候,访问http定义的服务器地址(注意不是…

MySQL模糊查询/模式匹配(Pattern Match)

使用SQL查询数据时,时常会遇到这种情况,我们并不需要精确的匹配,而是要查找具有某类特点的数据。这种场景我们就要用到模糊查询。MySQL中常用的模糊查询方法有2种: like语句模糊查询regexp正则表达式模式匹配 目录 一、使用like模…

大厂面试题-为什么索引要用B+树来实现呢,而不是B树?

首先,常规的数据库存储引擎,一般都是采用B树或者B树来实现索引的存储。 (如图)因为B树是一种多路平衡树,用这种存储结构来存储大量数据,它的整个高度会相比二叉树来说,会矮很多。 而对于数据库来说,所有的…

【191】Java8在大比例尺小范围地图上,根据wgs84坐标系的经纬度计算两个点之间的方向和距离

场景 本文代码在大比例迟、小范围的地图上测试过。这些地图一般是县、区、镇、街道等范围的,其测试效果较好。由于地图范围较小,可以把经纬度近似看作直线。 问题分析 方向一共分东、南、西、北、东北、西北、西南、东南共八个方向。一周是 360 度&am…

最新GitHub学生认证,可以愉快的使用Copilot了(保姆级教程)

🎈博客主页:🌈我的主页🌈 🎈欢迎点赞 👍 收藏 🌟留言 📝 欢迎讨论!👏 🎈本文由 【泠青沼~】 原创,首发于 CSDN🚩&#x1f…

“深入理解机器学习性能评估指标:TP、TN、FP、FN、精确率、召回率、准确率、F1-score和mAP”

目录 引言 分类标准 示例:癌症检测 1. 精确率(Precision) 2. 召回率(Recall) 3. 准确率(Accuracy) 4. F1-score 5. mAP(均值平均精度) 总结与通俗解释 引言 机器…

电销行业获客的精准客源从哪里来的?

在电话营销行业中找到精确的客户资源对电话营销的成功至关重要。 这里有几种方法可以找到准确的客户资源: 1、自身数据库:首先,使用现有的客户信息数据库,如客户电话号码、电子邮件和地址,来推广和营销现有客户。 2…

django 批量 serializers listserializers

Django drf 序列化器 序列化器 扩展serializers的有用性是我们想要解决的问题。但是,这不是一个微不足道的问题,而是需要一些严肃的设计工作。— Russell Keith-Magee, Django用户组 序列化器允许把像查询集和模型实例这样的复杂数据转换为可以轻松渲染…