本发明涉及一种分段路由技术,尤其是涉及一种IPv6实现分段路由的方法及装置。

背景技术:

分段路由(SegmentRouting,简称SR)是指网络被分隔成若干路由段,报文在网络中转发时,由源结点选择经过的最优段集合,把选出的段集合,依次携带在报文的分段路由栈中,中间结点通过分段路由栈中的段标识,选择相应的路径进行报文转发。

如图1所示,如果报文源设备A到终设备F,选择的路径可以通过上述路由段标识来描述,红色路径可表示成{路由段1,路由段4,路由段6,路由段8},源设备A选择路径后在报文中插入分段路由栈,{路由段1,路由段4,路由段6,路由段8},设备A根据路由段1的标识把报文转发到B,设备B根据路由段4的标识把报文转发到D,设备D根据路由段6标识把报文转发到E,设备E根据路由段8标识把报文转发到F,由于为F分段路由终点,所以移除分段路由栈恢复原业务报文。

目前业界段标识一般有两种:1.在MPLS/IPv4网络,采用MPLS的标签来标识段,转发面采用MPLS标签来转发。2.在IPv6中网络,采用分段路由扩展头,用IPv6地址来标识段,转发面采用IPv6地址来转发。

其中,如图2所示,IPv6的分段路由扩展头由源结点插入,其中字段Segment Left标识当前段标识栈的位置。设置Segment Left=3,Segment List[0]=路由段8,Segment List[1]=路由段6,Segment List[2]=路由段4,Segment List[3]=路由段1。设备A用Segment List[3]的值路由段1进行IPv6查找,得到下一路为设备B,同时把Semgnet Left-1;设备B用Semgnet Left=2,取Segment List[2]的值路由段4进行IPv6查找,得到下一种设备为D,同时把Semgnet Left-1;设备D用Semgnet Left=1,取Segment List[1]的值路由段6进行IPv6查找,得到下一种设备为E,同时把Semgnet Left-1;设备E用Semgnet Left=0,取Segment List[0]的值路由段8进行IPv6查找,得到下一种设备为E,同时把分段路由扩展头删除。

但是,上述方式由于分段路由栈采用的偏移指示位来标识,这样要求中间设备必须看到偏移指示位所指示的段标识,比如设备B必须能看到栈底,网络硬件解析报文深度有规格限制,这样要求分段路由栈必须小于网络硬件解析报文的深度的规格,这个不仅限制了分段路由栈部署的网络规模,也加大的网络硬件的成本。

技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供一种IPv6实现分段路由的方法及装置。

为实现上述目的,本发明提出如下技术方案:一种IPv6实现分段路由的方法,包括:

S1,选择报文由网络的源节点转发到目的节点所经过的路由段的集合,将所述路由段的集合用分段路由栈表示,且每个路由段用IPv6段标识表示,在报文中插入所述分段路由栈;

S2,源节点根据报文中所述分段路由栈的栈顶的IPv6段标识对应的路由段进行转发,将报文转发到下一中间节点,同时删除所述栈顶的IPv6段标识,更新分段路由栈;

S3,每个下一中间节点按照上一中间节点更新后的分段路由栈的栈顶的IPv6段标识对应的路由段进行转发,同时删除栈顶的IPv6段标识,直至将报文转发到最后一个中间节点;

S4,所述最后一个中间节点将报文根据分段路由栈内最后一个IPv6段标识对应的路由段转发给目的节点,同时删除报文中的分段路由栈。

优选地,所述分段路由栈采用IPv6扩展头,所述IPv6扩展头包括IPv6扩展头起始和多个IPv6段标识。

优选地,所述IPv6段标识在IPv6扩展头中按IPv6段标识[0]~IPv6段标识[n]顺序分布,其中,IPv6段标识[0]表示分段路由栈的栈顶的IPv6段标识,n为大于等于0的整数。

优选地,所述更新分段路由栈的过程包括:将分段路由栈中的其他IPv6段标识按栈顶到栈底的顺序重新编号。

优选地,所述按栈顶到栈底的顺序为按IPv6段标识[0]~IPv6段标识[n]顺序,n为大于等于0的整数。

本发明还揭示了另外一种技术方案:一种IPv6实现分段路由的装置,包括:分段路由栈插入模块、源节点、一个或多个中间节点和目的节点,其中,

分段路由栈插入模块,用于选择报文由网络的源节点转发到目的节点所经过的路由段的集合,将所述路由段的集合用分段路由栈表示,且每个路由段用IPv6段标识表示,在报文中插入所述分段路由栈;

源节点,用于根据报文中所述分段路由栈的栈顶的IPv6段标识对应的路由段进行转发,将报文转发到下一中间节点,同时删除所述栈顶的IPv6段标识,更新分段路由栈;

每个下一中间节点用于按照上一中间节点更新后的分段路由栈的栈顶的IPv6段标识对应的路由段进行转发,同时删除栈顶的IPv6段标识,直至将报文转发到到最后一个中间节点,所述最后一个中间节点将报文根据分段路由栈内最后一个IPv6段标识对应的路由段转发给目的节点,同时删除报文中的分段路由栈。

优选地,所述源节点或中间节点更新分段路由栈的过程包括:将分段路由栈中的其他IPv6段标识按栈顶到栈底的顺序重新编号。

本发明的有益效果是:通过定义一种新的IPv6分段路由扩展头,采用逐个弹出方式,中间设备在处理报文时,只需要看到分段路由栈顶的段标识,从而使分段路由栈大小与硬件解析规格无关,使分段路由适合大规模网络部署,降低网络硬件的成本。

附图说明

图1是报文在网络中转发的原理示意图;

图2是现有IPv6的分段路由扩展头示意图;

图3、图4是本发明IPv6的分段路由扩展头示意图;

图5是本发明方法的流程示意图;

图6是本发明装置框图。

具体实施方式

下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。

结合图3~图5所示,本发明所揭示的一种IPv6实现分段路由的方法,包括:

S1,选择报文由网络的源节点转发到目的节点所经过的路由段的集合,将路由段的集合用分段路由栈表示,且每个路由段用IPv6段标识表示,在报文中插入分段路由栈。

具体地,以图1所示为例进行说明,这里的源节点A选择到目的节点F所经过的最优路由段的集合为:路由段1、路由段4、路由段6、路由段8,将这些路由段的集合用分段路由栈表示。本实施例中,结合图3、图4所示,分段路由栈采用一种新的IPv6分段路由扩展头表示,其具体包括IPv6扩展头起始和多个IPv6段标识,其中,这里的IPv6扩展头起始是指图3中的前面8bytes,多个IPv6段标识在IPv6扩展头中按照IPv6段标识[0]~IPv6段标识[n]顺序分布,每个IPv6段标识对应一个路由段,本实施例中,因路由段的集合中有4个路由段,所以n设置为3,对应的:

IPv6段标识[0]=路由段1;

IPv6段标识[1]=路由段4;

IPv6段标识[2]=路由段6;

IPv6段标识[3]=路由段8。

也就是说,插入到源节点A的分段路由栈为上述表示,其栈顶的IPv6段标识[0]对应的路由段为路由段1。

当然,这里的IPv6段标识不限于以这里的IPv6段标识[0]~IPv6段标识[n]顺序编号,也可以用其他编号方式,如IPv6段标识[m]~IPv6段标识[n],其中,IPv6段标识[m]表示栈顶的IPv6段标识,IPv6段标识[n]表示栈底的IPv6段标识。

S2,源节点根据报文中分段路由栈的栈顶的IPv6段标识对应的路由段进行转发,将报文转发到下一中间节点,同时删除所述栈顶的IPv6段标识,更新分段路由栈。

具体地,还是以图1所示为例进行说明,源节点A根据栈顶的IPv6段标识[0]对应的路由段1进行转发,将报文转发到中间节点B,同时删除分段路由栈中已经使用过的IPv6段标识,即这里的IPv6段标识[0]。删除后,分段路由栈中还剩3个IPv6段标识,将这3个IPv6段标识重新按IPv6段标识[0]~IPv6段标识[2]顺序进行编号。这样,更新后的分段路由栈的栈顶的IPv6段标识[0]对应的路由段为路由段4,将更新后的分段路由栈插入到报文中发送给中间节点B。更新后的分段路由栈为:

IPv6段标识[0]=路由段4;

IPv6段标识[1]=路由段6;

IPv6段标识[2]=路由段8。

S3,每个下一中间节点按照上一中间节点更新后的分段路由栈的栈Pv6段标识对应的路由段进行转发,同时删除栈顶的IPv6段标识,直至将报文转发到目的节点。

具体地,以图1所示为例进行说明,中间节点B接收到报文后,按报文中更新后的上述分段路由栈的栈顶的IPv6段标识对应的路由段进行转发,即根据这里的路由段4进行转发,将报文转发给中间节点D,与源节点操作一样,同时删除分段路由栈中已经使用过的IPv6段标识,即这里的路由段4对应的栈顶IPv6段标识[0],删除后分段路由栈中还剩2个IPv6段标识,将这2个IPv6段标识重新按IPv6段标识[0]~IPv6段标识[1]顺序进行编号。这样,更新后的分段路由栈的栈顶的IPv6段标识[0]对应的路由段为路由段6,将更新后的分段路由栈插入到报文中发送给中间节点D。更新后的分段路由栈为:

IPv6段标识[0]=路由段6;

IPv6段标识[1]=路由段8。

中间节点D接收到报文后,按报文中更新后的上述分段路由栈的栈顶的IPv6段标识对应的路由段进行转发,即根据这里的路由段6进行转发,将报文转发给中间节点E,与源节点操作一样,同时删除分段路由栈中已经使用过的IPv6段标识,即这里的路由段6对应的栈顶IPv6段标识[0],删除后分段路由栈中还剩1个IPv6段标识,将这1个IPv6段标识重新编号为IPv6段标识[0]。这样,更新后的分段路由栈的栈顶的IPv6段标识[0]对应的路由段为路由段8,将更新后的分段路由栈插入到报文中发送给最后一个中间节点F。更新后的分段路由栈为:

IPv6段标识[0]=路由段8。

S4,最后一个中间节点将报文根据分段路由栈内最后一个IPv6段标识对应的路由段转发给目的节点,同时删除报文中的分段路由栈。

具体地,最后一个中间节点E根据上述更新后的最后一个IPv6段标识对应的路由段8转发报文给目的节点F,同时删除报文中的分段路由栈。

这样,报文中的分段路由栈在分段路由中按照逐个弹出的方式,使得中间设备在处理报文时,只需要看到分段路由栈顶的段标识,从而使分段路由栈大小与硬件解析规格无关,使分段路由适合大规模网络部署,降低网络硬件的成本。

如图6所示,本发明对应揭示的一种IPv6实现分段路由的装置,包括栈插入模块、源节点、一个或多个中间节点和目的节点,其中,

分段路由栈插入模块,用于选择报文由网络的源节点转发到目的节点所经过的路由段的集合,将所述路由段的集合用分段路由栈表示,且每个路由段用IPv6段标识表示,在报文中插入所述分段路由栈;

源节点,用于根据报文中所述分段路由栈的栈顶的IPv6段标识对应的路由段进行转发,将报文转发到下一中间节点,同时删除所述栈顶的IPv6段标识,更新分段路由栈;

每个下一中间节点用于按照上一中间节点更新后的分段路由栈的栈顶的IPv6段标识对应的路由段进行转发,同时删除栈顶的IPv6段标识,直至将报文转发到到最后一个中间节点,所述最后一个中间节点将报文根据分段路由栈内最后一个IPv6段标识对应的路由段转发给目的节点,同时删除报文中的分段路由栈。

其中,栈插入模块、源节点、中间节点和目的节点的工作原理可参照上述方法中的具体描述,这里不再赘述。

本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。

linux 分段路由怎么添加,一种IPv6实现分段路由的方法及装置与流程相关推荐

  1. linux控制NVme硬盘点灯,硬盘点灯模式的设置方法及装置与流程

    本发明涉及自动化控制技术领域,更具体的,涉及一种硬盘点灯模式的设置方法及装置. 背景技术: 随着信息化的发展,客户对服务器的需求日益增多.不同客户在同款服务器机型中对硬盘配置参数可能要求各异,例如,一 ...

  2. linux添加ipv6静态路由命令,Debian下配置IPV6和静态路由

    一.编辑网卡文件 vi /etc/network/interfaces 二.修改网卡文件# This file describes the network interfaces available o ...

  3. Linux热插拔硬盘导致盘符漂移,一种解决热插拔时磁盘盘符漂移方法及装置与流程...

    本发明涉及磁盘管理技术领域,尤其是一种解决热插拔时磁盘盘符漂移方法及装置. 背景技术: 对于数据中心的运维人员来说,会遇到在服务器硬盘损坏时不停机的情况下更换硬盘的情况,也就是对硬盘进行热插拔.在对硬 ...

  4. 文档安全管理系统服务器地址是什么,一种文档安全管理系统登录方法及装置

    1. 一种文档安全管理系统登录方法,其特征在于,包括: S1:接收用户终端输入的登录帐号和登录密码: S2:将所述登录帐号和所述登录密码发送至企业帐号系统服务器,使得企业帐号系统 服务器检测所述登录帐 ...

  5. android 绘画笔迹回放_一种基于可缩放矢量图形的安卓平台笔迹回放方法及装置与流程...

    本发明涉及笔迹显示领域,更具体地,涉及一种基于可缩放矢量图形的安卓平台笔迹回放方法及装置. 背景技术: 智能移动设备平台上的回放技术已遍布许多安卓(Android)软件中,比如:字帖类软件,画图类软件 ...

  6. java dijkstra算法 指定源宿_一种路径计算的方法和装置与流程

    本发明涉及网络通信技术,尤其涉及一种路径计算的方法和装置. 背景技术: 随着软件定义网络(Software Defined Network,SDN).网络功能虚拟化(Network Function ...

  7. Android硬件扩展接口有哪些,一种安卓智能设备USB接口拓展的方法及装置与流程...

    本发明涉及安卓智能设备技术领域,特别是涉及一种安卓智能设备USB接口拓展的方法及装置. 背景技术: 安卓是一种以Linux为基础的开放源码操作系统,2007年正式推出后,在短短几年时间内得到了广泛的应 ...

  8. perclos嘴巴_一种基于视频分析的疲劳状态检测方法及装置与流程

    本发明涉及疲劳检测领域,特别是涉及一种基于视频分析的疲劳状态综合检测方法及装置. 背景技术: 疲劳状态检测技术在交通运输.生产安全.教育培训等许多领域应用广泛.目前,疲劳状态检测的方法一般可分为接触式 ...

  9. matlab实现谱聚类法图像分割代码,一种基于谱聚类的图像分割方法与系统与流程...

    本发明是一种基于谱聚类的图像分割方法与系统,涉及聚类.机器学习和人工智能领域.特别涉及通过相关性将已经学习到的知识运用到图像分割中,并在此基础上构造性地改造谱聚类方法,从而达到快速精确地分割彩色图像的 ...

最新文章

  1. u盘安装linux 提示no such device_Linux 网络基础设计
  2. copying mysql status_mysql慢查询copying to tmp table
  3. 【kafka】InconsistentGroupProtocolException: The group member‘s supported protocols
  4. torch--[Pytorch函数] .masked_fill_() ;关于pytorch中@和*的用处
  5. HiTool工具烧录uImage过程
  6. py3 写的基于GUI 的 旁注 wwwscan集成扫描工具
  7. 【模式识别-北理工】04线性分类器
  8. UART协议及其Verilog实现
  9. Android下磁盘分区表损坏,硬盘分区表丢失错误怎么修复TestDisk使用教程
  10. 解决双卡4G模式下不能接听和拨打电话问题
  11. 国外问卷调查回答问题有什么技巧?
  12. 国服和平精英服务器维护,和平精英辅助免费使用绝地求生12月19日正式服维护公告 今天维护要多久...
  13. 2017 Python 问卷调查结果初步分析
  14. 大数据必学Java基础(六十一):同步类容器对比应用
  15. java学习+JDK下载安装环境配置+IDEA安装下载简单使用
  16. java 文件 base64 转换
  17. 速学堂第七章作业编程题答案(自写)
  18. (经典Flash游戏)Zoom Keeper
  19. Allegro 16 板内挖孔
  20. 京东自动秒杀抢券php,京东秒杀抢购的小脚本和chorme的一个开发者插件

热门文章

  1. c#UDP发送接收消息
  2. 快速消费品行业的营销费用的管理(3)----营销费用预算管理
  3. 关于查询结果插入新表中 怪哉怪哉
  4. IEDevToolBar - 一个分析网页的有用的工具
  5. Hadoop集群启动时NameNode未启动解决方法
  6. 你需要知道的基础算法知识——STL和基础数据结构(三)
  7. jquery ajax传递data,基于jquery ajax中的data传递参数与后台工作的流程
  8. 学习hadoop需要什么基础
  9. Sublime Text 3 搭建Python3 IDE
  10. mysql必知必会第一节