一种实现业务功能链的方法和装置与流程

文档序号:12623425阅读:221来源:国知局
一种实现业务功能链的方法和装置与流程

本发明涉及通信技术领域,尤其涉及的是一种实现业务功能链的方法和装置。



背景技术:

业务功能链(Service Function Chain,SFC)技术,即把所有的业务整合,虚拟出Service overlay层,形成自己的服务拓扑,和底层网络解耦合,不再受到底层网络结构的限制。

SFC架构如图1-1所示,包括如下组件:分类器Classifier,业务功能转发器(Service Function Forwarder,SFF),业务功能(Service Function,SF),网络业务头代理(Network Service Header Proxy,NSH Proxy)。其中,Classifier负责对流量进行分类,根据分类结果,对流量进行网络业务头(Network Service Header,NSH)的封装,即在Classifier上确定报文后续的业务功能路径,并进一步进行Service overlay层的封装和转发,通过overlay技术将报文转发到下一跳SFF,SFF收到报文,解封装Service overlay层,并对接收到的携带有NSH报文头的报文进行解析,根据NSH头中的信息,将报文转发给相应的SF处理;SF负责对接收到的报文进行相应的业务功能处理,处理完后,进一步更新NSH报文头并将更新后的报文转发给转发报文给自己的SFF;SFF进一步根据NSH报文中的信息查找对应的传输层封装,对NSH报文进行overlay的封装,并将报文转发给下一跳SFF。NSH Proxy主要代表SFF,与不感知NSH报文头的SF进行交互。图1-1中虚线所示为一条具体的业务功能路径(Service Function Path,SFP)。

从控制面来看,SFC的分类规则和业务功能链定义以及NSH由SFC控制器下发或者本地配置;从数据面封装来看,业务功能链的和业务相关的整个NSH如图1-2所示,包括基本头(Base Header),业务路径头(Service Path Header),以及元数据报文头(Context Header);其中,基本头(Base Header)主要标识版本号、长度、元数据类型以及下一个协议号;业务路径头最核心,标识整个业务功能链的业务功能路径相关信息,包括业务功能路径标识(Service Path ID或Service Function Path ID)和业务索引(Service Index),其中,业务功能路径标识(Service Path ID(SPID)或者Service Function Path ID(SFPID)均是业务功能路径标识)可以是本地配置,也可以是全局下发,一个业务功能路径标识对应一条具体的业务转发路径;节点根据业务功能路径标识和业务索引确认当前报文应该转发到哪一个业务功能链以及哪一个业务功能去处理;上下文数据报文头(Context Header)用于携带上下文信息,用于在分类器Classifier和业务功能SF之间、业务功能SF与业务功能SF之间、业务功能SF和业务功能转发器SFF之间分享信息和传递信息。举例如下,对于使用IPv4-GRE的overlay技术后,从Classifier发送出来的完整报文格式如图1-3所示,即在原始报文original packet外层封装上了NSH头,IPv4-GRE头,L2头。

段路由(Segment Routing,SR)技术也是当前IETF上比较热门的技术,主要原理是通过控制面给SR域内的头节点下发有序的段信息列表,每一个段信息标识报文必须经历的分段,一个有序的段信息列表(Segment Routing List,SR-List)即标识报文需要经历的所有分段;这样,报文到达SR域的头节点时,只需要在报文上添加SR头,后续报文就根据SR头内的SR-List进行转发。进一步地,每一个段segment可以代表一段指令,或者一个拓扑,或者一种业务;SR支持全局属性的段segment,也支持属于某一个节点的本地属性的段segment。当前SR技术中支持的段segment包括:IGP段标识(IGP-SID),Prefix段标识(Prefix-SID),节点段标识(Node-SID),任意播段标识(Anycast SID),邻居段标识(Adj-SID),BGP Peer段标识等。已有的SR技术包括多标签交换路径段路由(MPLS-SR),即应用在IPv4网络中,每一个分段都用一个标签来标识,SR-List就是标签的堆栈,封装在IPv4报文头外面,MPLS-SR域内的报文转发就根据标签栈信息进行转发。

综合上述技术,可以发现,从数据层面讲,SFC技术能在Classifier上根据报文分类结果指定报文经历的业务功能路径标识SFPID,然后在原始报文 的外层封装一层NSH报文头,进一步通过overlay技术转发到下一跳SFF上,沿路经过的Classifier,SFF,SF等都需要支持NSH,即使对于不支持NSH的SF,也需要新增加NSH Proxy组件使得支持NSH的SF与不支持NSH的SF互通;从控制层面讲,需要控制器额外支持SFC域的管控;极大地增加了SFC技术在现网中的部署难度以及部署周期,也极大地增加了网络设备的功能集。



技术实现要素:

本发明所要解决的技术问题是提供一种实现业务功能链的方法和装置,能够在IPv6网络中简单部署和快速实现业务功能链技术。

为了解决上述技术问题,本发明提供了一种实现业务功能链的方法,应用于业务功能链上的节点,该方法包括:

在IPv6报文的IPv6扩展头中封装业务功能链信息;

根据业务功能链信息对所述IPv6报文进行发送。

进一步地,该方法还包括下述特点:

所述业务功能链信息包括以下信息的至少一种:业务转发路径信息、元数据信息。

进一步地,该方法还包括下述特点:

所述用于封装业务转发路径信息的IPv6扩展头是IPv6选路扩展头,或者是新定义的IPv6扩展头。

进一步地,该方法还包括下述特点:

所述业务转发路径信息包括:业务功能路径信息和业务索引;

其中,所述业务索引用于标识当前节点在业务功能路径中的位置信息。

进一步地,该方法还包括下述特点:

所述用于封装元数据信息的IPv6扩展头是IPv6目的地选项扩展头,或者是新定义的IPv6扩展头。

进一步地,该方法还包括下述特点:

根据业务功能链信息对所述IPv6报文进行发送,包括:

根据获取的业务转发路径信息确定下一跳节点的IPv6地址,将所述下一跳节点的IPv6地址作为目的地址,将所述IPv6报文发送到所述目的地址。

进一步地,该方法还包括下述特点:

在IPv6报文的IPv6扩展头中封装业务功能链信息,包括:

对流量进行分类,根据分类结果在IPv6报文的IPv6扩展头中封装业务功能链信息。

进一步地,该方法还包括下述特点:

在IPv6报文的IPv6扩展头中封装所述业务功能链信息之前,所述方法还包括:获取业务功能链信息。

进一步地,该方法还包括下述特点:

所述获取业务功能链信息,包括以下至少一种方式:

从本地的配置信息中获取业务功能链信息,从控制器下发的全局配置信息中获取业务功能链信息。

进一步地,该方法还包括下述特点:

所述业务功能路径信息包括以下任意一种:业务功能路径标识、业务功能路径上的节点的地址列表、业务功能路径上的节点的段标识列表、业务功能路径上的节点的节点标识列表。

进一步地,该方法还包括下述特点:

所述元数据信息包括以下信息的至少一种:强制上下文数据信息、可选上下文数据信息。

为了解决上述技术问题,本发明提供了一种实现业务功能链的方法,应用于业务功能链上的节点,该方法包括:

接收到携带有业务功能链信息的IPv6报文后,解析所述业务功能链信息;

获取业务功能路径的下一跳节点的IPv6地址作为目的地址,将所述IPv6 报文发送到所述目的地址。

进一步地,该方法还包括下述特点:

所述业务功能链信息包括以下信息的至少一种:业务转发路径信息、元数据信息。

进一步地,该方法还包括下述特点:

所述业务转发路径信息封装在IPv6报文的IPv6选路扩展头中,或封装在IPv6报文的新定义的IPv6扩展头中;

所述元数据信息封装在IPv6报文的IPv6目的地选项扩展头中,或封装在IPv6报文的新定义的IPv6扩展头中。

进一步地,该方法还包括下述特点:

将所述IPv6报文发送到所述目的地址,包括:

如本节点的下一跳是业务功能路径的目的节点,则从所述IPv6报文中剥掉封装有业务功能链信息的IPv6扩展头,然后将所述IPv6报文发送到所述目的地址。

进一步地,该方法还包括下述特点:

将所述IPv6报文发送到所述目的地址,包括:

如本节点的下一跳不是业务功能路径的目的节点,则根据部署策略确定是否更新所述IPv6报文中携带的业务功能链信息,然后将所述IPv6报文发送到所述目的地址。

进一步地,该方法还包括下述特点:

根据部署策略确定是否更新所述IPv6报文中携带的业务功能链信息,然后将所述IPv6报文发送到所述目的地址,包括:

如根据部署策略更新了IPv6报文中携带的业务转发路径信息,则解析更新后的业务转发路径信息,获取更新后的业务功能路径的下一跳节点的IPv6地址作为目的地址,将所述IPv6报文发送到所述目的地址。

进一步地,该方法还包括下述特点:

所述业务转发路径信息包括:业务功能路径信息和业务索引;

其中,所述业务索引用于标识当前节点在业务功能路径中的位置信息。

进一步地,该方法还包括下述特点:

将所述IPv6报文发送到所述目的地址,包括:

如本节点的下一跳不是业务功能路径的目的节点且所述业务功能链信息包含业务转发路径信息,则更新所述IPv6报文中的业务索引,然后将所述IPv6报文发送到所述目的地址。

进一步地,该方法还包括下述特点:

更新所述IPv6报文中的业务索引,包括:

如所述业务索引代表当前节点距离业务功能路径的目的节点之间的跳数信息,则将所述IPv6报文中的业务索引递减。

为了解决上述技术问题,本发明提供了一种实现业务功能链的装置,应用于业务功能链上的节点,包括:

封装模块,用于在IPv6报文的IPv6扩展头中封装业务功能链信息;

发送模块,用于根据业务功能链信息对所述IPv6报文进行发送。

进一步地,该装置还包括下述特点:

所述业务功能链信息包括以下信息的至少一种:业务转发路径信息、元数据信息。

进一步地,该装置还包括下述特点:

所述用于封装业务转发路径信息的IPv6扩展头是IPv6选路扩展头,或者是新定义的IPv6扩展头。

进一步地,该装置还包括下述特点:

所述业务转发路径信息包括:业务功能路径信息和业务索引;

其中,所述业务索引用于标识当前节点在业务功能路径中的位置信息。

进一步地,该装置还包括下述特点:

所述用于封装元数据信息的IPv6扩展头是IPv6目的地选项扩展头,或者是新定义的IPv6扩展头。

进一步地,该装置还包括下述特点:

发送模块,用于根据业务功能链信息对所述IPv6报文进行发送,包括:

根据获取的业务转发路径信息确定下一跳节点的IPv6地址,将所述下一跳节点的IPv6地址作为目的地址,将所述IPv6报文发送到所述目的地址。

进一步地,该装置还包括下述特点:

封装模块,用于在IPv6报文的IPv6扩展头中封装业务功能链信息,包括:

对流量进行分类,根据分类结果在IPv6报文的IPv6扩展头中封装业务功能链信息。

进一步地,该装置还包括下述特点:

所述装置还包括:

信息获取模块,用于获取业务功能链信息。

进一步地,该装置还包括下述特点:

信息获取模块,用于获取业务功能链信息,包括以下至少一种方式:

从本地的配置信息中获取业务功能链信息,从控制器下发的全局配置信息中获取业务功能链信息。

进一步地,该装置还包括下述特点:

所述业务功能路径信息包括以下任意一种:业务功能路径标识、业务功能路径上的节点的地址列表、业务功能路径上的节点的段标识列表、业务功能路径上的节点的节点标识列表。

进一步地,该装置还包括下述特点:

所述元数据信息包括以下信息的至少一种:强制上下文数据信息、可选上下文数据信息。

为了解决上述技术问题,本发明提供了一种实现业务功能链的装置,应用于业务功能链上的节点,包括:

报文接收模块,用于接收到携带有业务功能链信息的IPv6报文后,解析 所述业务功能链信息;

报文发送模块,用于获取业务功能路径的下一跳节点的IPv6地址作为目的地址,将所述IPv6报文发送到所述目的地址。

进一步地,该装置还包括下述特点:

所述业务功能链信息包括以下信息的至少一种:业务转发路径信息、元数据信息。

进一步地,该装置还包括下述特点:

所述业务转发路径信息封装在IPv6报文的IPv6选路扩展头中,或封装在IPv6报文的新定义的IPv6扩展头中;

所述元数据信息封装在IPv6报文的IPv6目的地选项扩展头中,或封装在IPv6报文的新定义的IPv6扩展头中。

进一步地,该装置还包括下述特点:

报文发送模块,用于将所述IPv6报文发送到所述目的地址,包括:

如本节点的下一跳是业务功能路径的目的节点,则从所述IPv6报文中剥掉封装有业务功能链信息的IPv6扩展头,然后将所述IPv6报文发送到所述目的地址。

进一步地,该装置还包括下述特点:

报文发送模块,用于将所述IPv6报文发送到所述目的地址,包括:

如本节点的下一跳不是业务功能路径的目的节点,则根据部署策略确定是否更新所述IPv6报文中携带的业务功能链信息,然后将所述IPv6报文发送到所述目的地址。

进一步地,该装置还包括下述特点:

报文发送模块,用于根据部署策略确定是否更新所述IPv6报文中携带的业务功能链信息,然后将所述IPv6报文发送到所述目的地址,包括:

如根据部署策略更新了IPv6报文中携带的业务转发路径信息,则解析更新后的业务转发路径信息,获取更新后的业务功能路径的下一跳节点的IPv6地址作为目的地址,将所述IPv6报文发送到所述目的地址。

进一步地,该装置还包括下述特点:

所述业务转发路径信息包括:业务功能路径信息和业务索引;

其中,所述业务索引用于标识当前节点在业务功能路径中的位置信息。

进一步地,该装置还包括下述特点:

报文发送模块,用于将所述IPv6报文发送到所述目的地址,包括:

如本节点的下一跳不是业务功能路径的目的节点且所述业务功能链信息包含业务转发路径信息,则更新所述IPv6报文中的业务索引,然后将所述IPv6报文发送到所述目的地址。

进一步地,该装置还包括下述特点:

报文发送模块,用于更新所述IPv6报文中的业务索引,包括:

如所述业务索引代表当前节点距离业务功能路径的目的节点之间的跳数信息,则将所述IPv6报文中的业务索引递减。

与现有技术相比,本发明提供的一种实现业务功能链的方法和装置,通过在IPv6报文的IPv6扩展头中封装业务功能链信息,沿着业务功能链对所述IPv6报文进行转发,能够在IPv6网络中简单部署和快速实现业务功能链技术。

附图说明

图1-1是现有技术中SFC技术架构。

图1-2是现有技术中SFC技术下数据面封装的网络业务报文头NSH。

图1-3是现有技术中SFC技术下从Classifier组件发送的完整报文结构。

图1-4是现有技术中IPv6选路扩展头报文结构。

图1-5是现有技术中Routing Type=0的IPv6选路扩展头报文结构。

图1-6是现有技术中IPv6目的地选项扩展头报文格式。

图2-1为本发明实施例的一种实现业务功能链的方法的流程图。

图2-2为本发明实施例的另一种实现业务功能链的方法的流程图。

图2-3为本发明实施例的一种实现业务功能链的装置的结构示意图。

图2-4为本发明实施例的另一种实现业务功能链的装置的结构示意图。

图3-1是本发明扩展的IPv6选路扩展头携带业务功能路径相关信息的报文参考结构。

图3-2是本发明在扩展IPv6目的地选项扩展头携带元数据选项的报文参考格式。

图3-3是本发明在元数据选项报文中扩展的元数据子选项报文参考格式。

图3-4是本发明参考定义的多种类型的元数据子选项。

图3-5是本发明需要实现的业务功能链。

图3-6是本发明示例一的IPv6业务功能链示意图。

图3-7是本发明基于业务功能路径标识SFPID传递业务功能路径相关信息来实现的IPv6选路扩展头参考格式。

图3-8是本发明示例二的IPv6业务功能链示意图(业务功能路径发生变化)。

图3-9是本发明示例三的IPv6业务功能链示意图。

图3-10是本发明基于IPv6全局地址列表传递业务功能路径相关信息来实现的IPv6选路扩展头参考格式。

图3-11是本发明示例四的IPv6业务功能链示意图(中间节点上更新业务转发路径)。

图3-12是本发明示例五的IPv6业务功能链示意图。

图3-13是本发明基于段路由Segment Routing传递业务功能路径相关信息来实现的IPv6选路扩展头参考格式。

图3-14是本发明示例六的IPv6业务功能链示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申 请中的实施例及实施例中的特征可以相互任意组合。

当前,IPv6技术(RFC2460)中为IPv6报文头部定义了多个扩展头,包括逐跳选项扩展头(Hop-by-Hop options header),选路扩展头(Routing header),分片扩展头(Fragment header),目的地选项扩展头(Destination options header),认证报文头(Authentication header)等。

其中,选路扩展头(Routing header)主要用于在IPv6源端节点上显示指定报文到达目的节点的过程中需要经历的中间节点信息,其具体格式如图1-4所示,Next Header是指下一个报文头的协议号,Routing Type是指当前选路扩展头的类型,Segments Left标识截止到当前节点为止还需要经历多少个节点才到达目的地;type-specific data标识对应当前选路扩展头类型相应的数据信息。RFC2460中,定义了Routing Type为0的报文扩展,具体格式如图1-5所示,Address[1]到Address[n]标识了到达目的地需要经历的中间节点的IPv6地址信息。

其中,目的地选项扩展头(Destination options header)主要用于携带目的节点需要处理的信息。具体扩展头格式如图1-6所示,其中选项Options字段包括多个TLV(Type-length-value,类型-长度-值)格式的选项。

本发明基于IPv6网络,利用IPv6扩展头的原理,试图通过扩展IPv6网络节点都支持的IPv6扩展头,以实现SFC技术的简单部署和实现。

如图2-1所示,本发明实施例提供了一种实现业务功能链的方法,应用于业务功能链上的节点,该方法包括:

S10,在IPv6报文的IPv6扩展头中封装业务功能链信息;

S20,根据业务功能链信息对所述IPv6报文进行发送;

所述方法还可以包括下述特点:

较佳地,在IPv6报文的IPv6扩展头中封装业务功能链信息之前,还包括:

获取业务功能链信息;

较佳地,获取业务功能链信息,包括以下至少一种方式:从本地的配置 信息中获取业务功能链信息,从控制器下发的全局配置信息中获取业务功能链信息;

较佳地,所述业务功能链信息包括以下信息的至少一种:业务转发路径信息、元数据信息;

较佳地,所述业务转发路径信息包括:业务功能路径信息和业务索引;

较佳地,所述业务功能路径信息包括以下任意一种:业务功能路径标识、业务功能路径上的节点的地址列表、业务功能路径上的节点的段标识列表、业务功能路径上的节点的节点标识列表;

其中,业务索引用于标识当前节点在业务功能路径中的位置信息;

其中,所述业务功能路径标识用于唯一标识一条业务功能路径;

较佳地,在IPv6报文的IPv6扩展头中封装业务功能链信息,包括:

对流量进行分类,根据分类结果在IPv6报文的IPv6扩展头中封装业务功能链信息;

较佳地,根据业务功能链信息对所述IPv6报文进行发送,包括:

根据获取的业务转发路径信息确定下一跳节点的IPv6地址,将所述下一跳节点的IPv6地址作为目的地址,将所述IPv6报文发送到所述目的地址。

较佳地,所述用于封装业务转发路径信息的IPv6扩展头可以是IPv6选路扩展头,或者是新定义的一种IPv6扩展头;

其中,所述元数据信息包括以下信息的至少一种:强制上下文数据信息、可选上下文数据信息;

其中,强制上下文数据信息包括以下一种或多种数据:网络平台元数据(Network Platform Metadata)、网络业务元数据(Network Service Metadata)、业务平台元数据(Service Platform Metadata)、业务共享元数据(Service Shared Metadata);

其中,网络平台元数据用于标识网络节点之间分享的网络平台级别的上下文信息,比如入接口信息、转发环境等。网络业务元数据用于标识网络节点之间分享的网络层的信息,比如身份标识、租户信息、分类结果等。业务 平台元数据用于标识业务功能节点之间分享的业务平台级别的上下文信息,比如业务策略等。业务共享元数据用于标识业务功能节点之间分享的业务相关的上下文信息,比如应用信息,业务处理结果等;

其中,可选上下文数据信息可以根据实际业务场景不同而不同;

较佳地,所述用于封装元数据信息的IPv6扩展头可以是IPv6目的地选项扩展头,或者是新定义的一种IPv6扩展头;

如图2-2所示,本发明实施例提供了一种实现业务功能链的方法,应用于业务功能链上的节点,该方法包括:

S10,接收到携带有业务功能链信息的IPv6报文后,解析所述业务功能链信息;

S20,获取业务功能路径的下一跳节点的IPv6地址作为目的地址,将所述IPv6报文发送到所述目的地址;

所述方法还可以包括下述特点:

其中,业务功能路径上的节点包括以下至少一种:业务功能SF节点、业务功能转发SFF节点;

较佳地,所述业务功能链信息包括以下信息的至少一种:业务转发路径信息、元数据信息;

较佳地,所述业务转发路径信息包括:业务功能路径信息和业务索引;

较佳地,所述业务功能路径信息包括以下任意一种:业务功能路径标识、业务功能路径上的节点的地址列表、业务功能路径上的节点的段标识列表、业务功能路径上的节点的节点标识列表;

其中,业务索引用于标识当前节点在业务功能路径中的位置信息;

较佳地,所述业务转发路径信息封装在IPv6报文的IPv6选路扩展头中,或封装在IPv6报文的新定义的IPv6扩展头中;

所述元数据信息封装在IPv6报文的IPv6目的地选项扩展头中,或封装在IPv6报文的新定义的IPv6扩展头中;

较佳地,将所述IPv6报文发送到所述目的地址,包括:

如本节点的下一跳是业务功能路径的目的节点,则从所述IPv6报文中剥掉封装有业务功能链信息的IPv6扩展头,然后将所述IPv6报文发送到所述目的地址;

较佳地,将所述IPv6报文发送到所述目的地址,包括:

如本节点的下一跳不是业务功能路径的目的节点且所述业务功能链信息包含业务转发路径信息,则更新所述IPv6报文中的业务索引,然后将所述IPv6报文发送到所述目的地址;

较佳地,更新所述IPv6报文中的业务索引,包括:

如所述业务索引代表当前节点距离业务功能路径的目的节点之间的跳数信息,则将所述IPv6报文中的业务索引递减;

较佳地,将所述IPv6报文发送到所述目的地址,包括:

如本节点的下一跳不是业务功能路径的目的节点,则根据部署策略确定是否更新所述IPv6报文中携带的业务功能链信息,然后将所述IPv6报文发送到所述目的地址;

较佳地,根据部署策略确定是否更新所述IPv6报文中携带的业务功能链信息,然后将所述IPv6报文发送到所述目的地址,包括:

如根据部署策略更新了IPv6报文中携带的业务转发路径信息,则解析更新后的业务转发路径信息,获取更新后的业务功能路径的下一跳节点的IPv6地址作为目的地址,将所述IPv6报文发送到所述目的地址。

如图2-3所示,本发明实施例提供了一种实现业务功能链的装置,应用于业务功能链上的节点,包括:

封装模块,用于在IPv6报文的IPv6扩展头中封装业务功能链信息;

发送模块,用于根据业务功能链信息对所述IPv6报文进行发送;

所述装置还可以包括下述特点:

较佳地,所述业务功能链信息包括以下信息的至少一种:业务转发路径信息、元数据信息。

较佳地,所述用于封装业务转发路径信息的IPv6扩展头是IPv6选路扩展头,或者是新定义的IPv6扩展头。

较佳地,所述业务转发路径信息包括:业务功能路径信息和业务索引;

其中,所述业务索引用于标识当前节点在业务功能路径中的位置信息。

较佳地,所述用于封装元数据信息的IPv6扩展头是IPv6目的地选项扩展头,或者是新定义的IPv6扩展头。

较佳地,发送模块,用于根据业务功能链信息对所述IPv6报文进行发送,包括:

根据获取的业务转发路径信息确定下一跳节点的IPv6地址,将所述下一跳节点的IPv6地址作为目的地址,将所述IPv6报文发送到所述目的地址。

较佳地,封装模块,用于在IPv6报文的IPv6扩展头中封装业务功能链信息,包括:

对流量进行分类,根据分类结果在IPv6报文的IPv6扩展头中封装业务功能链信息。

较佳地,所述装置还包括:

信息获取模块,用于获取业务功能链信息。

较佳地,信息获取模块,用于获取业务功能链信息,包括以下至少一种方式:

从本地的配置信息中获取业务功能链信息,从控制器下发的全局配置信息中获取业务功能链信息。

较佳地,所述业务功能路径信息包括以下任意一种:业务功能路径标识、业务功能路径上的节点的地址列表、业务功能路径上的节点的段标识列表、业务功能路径上的节点的节点标识列表。

较佳地,所述元数据信息包括以下信息的至少一种:强制上下文数据信息、可选上下文数据信息。

如图2-4所示,本发明实施例提供了一种实现业务功能链的装置,应用于业务功能链上的节点,包括:

报文接收模块,用于接收到携带有业务功能链信息的IPv6报文后,解析所述业务功能链信息;

报文发送模块,用于获取业务功能路径的下一跳节点的IPv6地址作为目的地址,将所述IPv6报文发送到所述目的地址

所述装置还可以包括下述特点:

较佳地,所述业务功能链信息包括以下信息的至少一种:业务转发路径信息、元数据信息。

较佳地,所述业务转发路径信息封装在IPv6报文的IPv6选路扩展头中,或封装在IPv6报文的新定义的IPv6扩展头中;

所述元数据信息封装在IPv6报文的IPv6目的地选项扩展头中,或封装在IPv6报文的新定义的IPv6扩展头中。

较佳地,报文发送模块,用于将所述IPv6报文发送到所述目的地址,包括:

如本节点的下一跳是业务功能路径的目的节点,则从所述IPv6报文中剥掉封装有业务功能链信息的IPv6扩展头,然后将所述IPv6报文发送到所述目的地址。

较佳地,报文发送模块,用于将所述IPv6报文发送到所述目的地址,包括:

如本节点的下一跳不是业务功能路径的目的节点,则根据部署策略确定是否更新所述IPv6报文中携带的业务功能链信息,然后将所述IPv6报文发送到所述目的地址。

较佳地,报文发送模块,用于根据部署策略确定是否更新所述IPv6报文中携带的业务功能链信息,然后将所述IPv6报文发送到所述目的地址,包括:

如根据部署策略更新了IPv6报文中携带的业务转发路径信息,则解析更 新后的业务转发路径信息,获取更新后的业务功能路径的下一跳节点的IPv6地址作为目的地址,将所述IPv6报文发送到所述目的地址。

较佳地,所述业务转发路径信息包括:业务功能路径信息和业务索引;

其中,所述业务索引用于标识当前节点在业务功能路径中的位置信息。

较佳地,报文发送模块,用于将所述IPv6报文发送到所述目的地址,包括:

如本节点的下一跳不是业务功能路径的目的节点且所述业务功能链信息包含业务转发路径信息,则更新所述IPv6报文中的业务索引,然后将所述IPv6报文发送到所述目的地址。

较佳地,报文发送模块,用于更新所述IPv6报文中的业务索引,包括:

如所述业务索引代表当前节点距离业务功能路径的目的节点之间的跳数信息,则将所述IPv6报文中的业务索引递减。

具体实施方式

如图3-1所示,本发明扩展IPv6选路扩展头携带业务功能路径相关信息的报文参考格式,包括:

Routing Type:选路扩展头类型;

其中,本发明扩展了一种类型为5的选路扩展头;

Service Index:业务索引,等同于Segments Left;

Identifier Type:业务转发路径信息的标识方式;

其中,业务转发路径信息的标识方式可以是业务功能路径标识,也可以是各节点的地址列表;

业务功能路径信息:用于标识业务转发经历的路径信息;

如图3-2所示,本发明基于IPv6目的地选项扩展头携带元数据相关信息 的扩展,新定义元数据选项,携带元数据相关信息;

其中,所述元数据选项用于标识现有业务功能链技术中网络业务头NSH中携带的元数据报文头(Context Header)和/或变长可选元数据信息,元数据选项的参考格式如图3-2所示,其中:

MD Option Type:标识元数据(Medatada)选项类型;

Opt Data Len:标识元数据(Medatada)选项中携带的元数据长度;

Option Data:标识该选项携带的元数据(Medatada);

进一步地,在该元数据选项中扩展元数据子选项MD Sub-Opt的定义,子选项参考格式如图3-3所示,其中:

MD Sub-Opt Type:标识元数据(Medatada)子选项Sub-Option类型;

MD Sub-Opt Len:标识元数据(Medatada)子选项中携带的元数据长度;

Sub-Opt Data:标识元数据子选项携带的元数据(Medatada);

进一步地,当前定义的元数据子选项如图3-4所示,包括但不限于如下:

网络平台相关元数据(Network Platform Metadata)子选项:标识网络节点之间分享的网络平台级别的上下文信息,比如入接口信息、转发环境等;

网络相关元数据(Network Service Metadata)子选项:标识网络节点之间分享的网络层的信息,比如身份标识、租户信息、分类结果等;

业务平台相关元数据(Service Platform Metadata)子选项:标识业务功能SFs之间分享的业务平台级别的上下文信息,比如业务策略等;

业务相关元数据(Service Shared Metadata)子选项:标识业务功能SFs之间分享的业务相关的上下文信息,比如应用信息,业务处理结果等;

其他相关元数据等;

如图3-5所示,业务功能链所经历的业务转发路径为: SFF1->SF2>SFF3->SF5;

其中,SF1和SF2连接至SFF1,SF3连接至SFF2,SF4和SF5连接至SFF3;Classifier、各SFF和SF属于IPv6-SFC域内节点。

示例一

如图3-6所示,报文从源端节点S(Source)发送到目的端D(Destination),需要经历中间节点SFF1/SF2/SFF3/SF5,则报文的转发流程如下:

步骤1:源端节点Source获取到目的端节点Destination的业务转发路径的信息[SFF1,SF2,SFF3,SF5,Desination]以及其对应的业务功能路径标识为SFPID1,一共5跳(Service Index);同时,获取到该业务转发路径上需要传递和分享的元数据相关信息,所述路径信息和所述元数据相关信息可以是本地配置,也可以是从控制器获取;此处,源端节点担任了封装业务路径转发相关信息和元数据相关信息的角色;

步骤2:源端节点解析SFPID1,获取第一跳节点信息,并进一步解析为路由可达的IPv6地址,封装在IPv6报文头的目的地址字段中,并将业务转发路径信息[SFF1,SF2,SFF3,SF5,Destination]对应的SFPID1封装在本发明定义的选路扩展头中,即报文格式如图3-7所示,Service Index字段减1,即为4;同时,将获取到的元数据相关信息封装在IPv6目的地选项扩展头中;

步骤3:源端节点按照IPv6报文头中的目的IPv6地址进行转发,转发到第一跳节点SFF1上;当然,源端节点查找IPv6路由转发表时,也可能发现到达目的IPv6地址需要通过隧道封装或者MPLS转发到达;也可能发现到达目的IPv6地址需要通过VLAN封装、VXLAN封装、隧道封装或者MPLS转发到达;

步骤4:SFF1收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析SFPID1信息和Service Index,获知当前节点是第1跳,进一步获取第2跳节点SF2信息,解析为在SFF1上路由可达的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为3;同时,解析报文中的元数据相关信息,判断是否有SFF1节点需要的元数据信 息;如果有,则读取元数据信息并使用,使用完后如果需要更新元数据信息则更新;如果没有,则不更新元数据信息;SFF1根据更新后的目的IPv6地址查找IPv6路由表进行转发;也可能发现到达目的节点需要通过VLAN封装、VXLAN封装、隧道封装或者MPLS转发到达;

步骤5:SF2收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析SFPID1信息和Service Index,获知当前节点是第2跳,进一步获取第3跳节点SFF3信息,解析为路由可达的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为2;同时,解析报文中的元数据信息,判断是否有SF2节点需要的元数据信息;如果有,则读取元数据信息并使用,使用完后如果需要更新元数据信息则更新;如果没有,则不更新元数据信息;SF2根据更新后的目的IPv6地址查找IPv6路由表进行转发;也可能发现到达目的IPv6地址需要通过VLAN封装、VXLAN封装、隧道封装或者MPLS转发到达;

步骤6:SFF3收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析SFPID1信息和Service Index,获知当前节点是第3跳,进一步获取第4跳节点SF5信息,解析为在SFF3上路由可达的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为1;同时,解析报文中的元数据信息,判断是否有SFF3节点需要的元数据信息;如果有,则读取元数据信息并使用,使用完后如果需要更新元数据信息则更新;如果没有,则不更新元数据信息;SFF3根据更新的目的IPv6地址查找IPv6路由表进行转发;也可能发现到达目的地址需要通过VLAN封装、VXLAN封装、隧道封装或者MPLS转发到达;

步骤7:SF5收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析SFPID1信息和Service Index,获知当前节点是第4跳,进一步获取第5跳节点Destination信息,解析为路由可达的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为0;同时,解析报文中的元数据信息,判断是否有SF5节点需要的元数据信息;如果有,则读取元数据信息并使用,使用完后如果需要更新元数据信息则更新;如果没有,则不更新元数据信息;进一步地,SF5发现Service Index字段为0, 即剥除掉此携带有业务功能路径相关信息的选路扩展头和携带有元数据相关信息的目的地选路扩展头;然后,SF5根据目的Destination-IPv6地址查找IPv6路由表进行转发;也可能发现到达目的IPv6地址需要通过VLAN封装、VXLAN封装、隧道封装或者MPLS转发到达;

示例二

如图3-8所示,报文从源端节点S(Source)发送到目的端D(Destination),需要经历中间节点Classifier/SFF1/SF2/SFF3/SF5,其中,Classifier是源端节点S访问目的端节点D必经的节点,或者是第一跳路由转发设备;此时,进行业务功能路径相关信息封装和/或元数据相关信息封装的节点发生在中间节点Classifier上;而且,报文在到达SFF3时,会发生重新分类,重新获取业务功能路径信息和/或元数据相关信息;则报文的转发流程如下:

步骤1:源端节点Source根据目的地址Destination查IPv6路由表,最终报文转发到必经节点Classifier上;

步骤2:Classifier节点获取到目的端节点Destination的业务转发路径的信息[SFF1,SF2,SFF3,SF5,Desination]以及其对应的SFPID2标识,一共5跳;同时,未获取到该业务转发路径上需要传递和分享的元数据相关信息;所述路径信息可以是本地配置,也可以是从控制器获取;此处,Classifier节点担任了封装业务功能路径相关信息的角色;

步骤3:Classifier节点解析SFPID2,获取第一跳节点信息,并进一步解析为路由可达的IPv6地址,封装在IPv6报文头的目的地址字段中,并将业务转发路径信息[SFF1,SF2,SFF3,SF5,Destination]对应的SFPID2封装在本发明定义的选路扩展头内,Service Index字段减1,即为4;

步骤4:Classifier节点按照IPv6报文头中的目的IPv6地址进行转发,转发到第一跳节点SFF1上;当然,Classifier节点查找IPv6路由转发表时,也可能发现到达目的IPv6地址需要通过隧道封装或者MPLS转发到达;也可能发现到达目的IPv6地址需要通过VLAN封装、VXLAN封装、隧道封装或 者MPLS转发到达;

步骤5:SFF1收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析SFPID2信息和Service Index,获知当前节点是第1跳,进一步获取第2跳节点SF2信息,解析为在SFF1上路由可达的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为3;同时,解析IPv6扩展头的其他部分,没有解析到元数据相关信息;SFF1根据解析出来的IPv6地址查找IPv6路由表进行转发;也可能发现到达所述SF2需要通过VLAN封装、VXLAN封装、隧道封装或者MPLS转发到达;

步骤6:SF2收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析SFPID2信息和Service Index,获知当前节点是第2跳,进一步获取第3跳节点SFF3信息,解析为路由可达的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为2;同时,解析IPv6扩展头的其他部分,没有解析到元数据相关信息;SF2根据解析出来的IPv6地址查找IPv6路由表进行转发;也可能发现到达目的IPv6地址需要通过VLAN封装、VXLAN封装、隧道封装或者MPLS转发到达;

步骤7:SFF3收到报文后,发现目的地是自己,同时发现,SFF3上需要进行重新分类,于是重新获取到目的端节点Destination的业务转发路径的信息[SF4,Desination]以及其对应的SFPID3标识,一共2跳;同时,获取到此转发路径上需要传递和分享的元数据相关信息;所述路径信息和元数据相关信息可以是本地配置,也可以是从控制器获取;此处,SFF3节点根据新的业务转发路径相关信息SFPID3和业务索引2,解析出第1跳节点SF4的信息,解析为SFF3上路由可达的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为1;同时,使用新的业务转发路径相关信息更新掉选路扩展头携带的原来的业务转发路径相关信息,并封装上元数据相关信息到IPv6目的地选项扩展头;SFF3根据解析出来的IPv6地址查找IPv6路由表进行转发;也可能发现到达所述SF4需要通过VLAN封装、VXLAN封装、隧道封装或者MPLS转发到达;

步骤8:SF4收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析SFPID3信息和Service Index,获知当前节点是第1跳, 进一步获取第2跳节点Destination信息,解析为路由可达的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为0;同时,解析报文中的元数据信息,判断是否有SF2节点需要的元数据信息;如果有,则读取元数据信息并使用,使用完后如果需要更新元数据信息则更新;如果没有,则不更新元数据信息;进一步地,SF4发现Service Index字段为0,即剥除掉此携带有业务转发路径相关信息的选路扩展头和携带有元数据相关信息的目的地选路扩展头;然后,SF4根据目的Destination-IPv6地址查找IPv6路由表进行转发;也可能发现到达目的IPv6地址需要通过VLAN封装、VXLAN封装、隧道封装或者MPLS转发到达;

示例三

如图3-9所示,报文从源端S发送到目的端D,需要经历中间节点SFF1/SF2/SFF3/SF5,且所有中间节点均是全局可达的IPv6地址标识,分别对应的IPv6地址为SFF1-IPv6/SF2-IPv6/SFF3-IPv6/SF5-IPv6,则报文的转发流程如下:

步骤1:源端节点Source获取到目的端节点Destination的业务转发路径的信息[SFF1,SF2,SFF3,SF5,Desination]以及其对应的全局IPv6地址,一共5跳;同时,获取到该业务转发路径上需要传递和分享的元数据相关信息;所述路径信息和所述元数据相关信息可以是本地配置,也可以是从控制器获取;

步骤2:源端节点获取第一跳节点SFF1的IPv6地址信息,封装在IPv6报文头的目的地址字段中,并将业务转发路径信息[SFF1,SF2,SFF3,SF5,Destination]对应的IPv6地址按照逆序封装在本发明定义新扩展的选路扩展头内,即报文格式如图3-10所示,Service Index字段减1,即为4;同时,将获取到的元数据相关信息封装在IPv6目的地选项扩展头中;

步骤3:源端节点按照IPv6报文头中的目的IPv6地址进行转发,转发到第一跳节点SFF1上;当然,源端节点查找IPv6路由转发表时,也可能发现到达目的IPv6地址需要通过隧道封装或者MPLS转发到达;

步骤4:SFF1收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析业务转发路径信息和Service Index,获知当前节点是第1跳,进一步获取第2跳节点SF2的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为3;同时,解析报文中的元数据相关信息,判断是否有SFF1节点需要的元数据信息;如果有,则读取元数据信息并使用,使用完后如果需要更新元数据信息则更新;如果没有,则不更新元数据信息;SFF1根据目的SF2-IPv6地址查找IPv6路由表进行转发;也可能发现到达目的IPv6地址需要通过隧道封装或者MPLS转发到达;

步骤5:SF2收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析业务转发路径信息和Service Index,获知当前节点是第2跳,进一步获取第3跳节点SFF3的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为2;同时,解析报文中的元数据相关信息,判断是否有SF2节点需要的元数据信息;如果有,则读取元数据信息并使用,使用完后如果需要更新元数据信息则更新;如果没有,则不更新元数据信息;SF2根据目的SFF3-IPv6地址查找IPv6路由表进行转发;也可能发现到达目的IPv6地址需要通过隧道封装或者MPLS转发到达;

步骤6:SFF3收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析业务转发路径信息和Service Index,获知当前节点是第3跳,进一步获取第4跳节点SF5的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为1;同时,解析报文中的元数据相关信息,判断是否有SFF3节点需要的元数据信息;如果有,则读取元数据信息并使用,使用完后如果需要更新元数据信息则更新;如果没有,则不更新元数据信息;SFF3根据目的SF5-IPv6地址查找IPv6路由表进行转发;也可能发现到达目的IPv6地址需要通过隧道封装或者MPLS转发到达;

步骤7:SF5收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析业务转发路径信息和Service Index,获知当前节点是第4跳,进一步获取第5跳节点Destination的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为0;同时,解析报文中的元数据信息,判断是否有SF5节点需要的元数据信息;如果有,则读取元数 据信息并使用,使用完后如果需要更新元数据信息则更新;如果没有,则不更新元数据信息;进一步地,SF5发现Service Index字段为0,即剥除掉此携带有业务功能路径相关信息的选路扩展头和携带有元数据相关信息的目的地选路扩展头;然后,SF5根据目的Destination-IPv6地址查找IPv6路由表进行转发;也可能发现到达目的IPv6地址需要通过隧道封装或者MPLS转发到达。

示例四

如图3-11所示,报文从源端S发送到目的端D,需要经历中间节点Classifier/SFF1/SF2/SFF3/SF5,且中间节点均是全局可达的IPv6地址标识,对应的IPv6地址为Classifier-IPv6/SFF1-IPv6/SF2-IPv6/SFF3-IPv6/SF5-IPv6;其中,Classifier是源端节点S访问目的端节点D必经的节点,或者是第一跳路由转发设备;此时,进行选路扩展头封装的节点发生在中间节点Classifier上;而且,报文在到达SFF3时,发现SF5上业务流几近饱和,于是重新选择下一跳业务功能到SF4;则报文的转发流程如下:

步骤1:源端节点Source根据目的地址Destination查IPv6路由表,最终报文转发到必经节点Classifier上;

步骤2:Classifier节点获取到目的端节点Destination的业务转发路径的信息[SFF1,SF2,SFF3,SF5,Desination]以及其对应的全局IPv6地址,一共5跳;同时,获取到该业务转发路径上需要传递和分享的元数据相关信息;所述路径信息和所述元数据相关信息可以是本地配置,也可以是从控制器获取;

步骤3:Classifier端节点获取第一跳节点信息,封装在IPv6报文头的目的地址字段中,并将业务转发路径信息[SFF1,SF2,SFF3,SF5,Destination]对应的IPv6地址按照逆序封装在本发明新扩展的选路扩展头内,Service Index字段减1,即为4;同时,将获取到的元数据相关信息封装在IPv6目的地选项扩展头中;

步骤4:Classifier节点按照IPv6报文头中的目的IPv6地址进行转发,转发到第一跳节点SFF1上;当然,源端节点查找IPv6路由转发表时,也可能 发现到达目的IPv6地址需要通过隧道封装或者MPLS转发到达;

步骤5同示例三中步骤4;

步骤6同示例三中步骤5;

步骤7:SFF3收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,发现下一跳为SF5,同时,通过各种手段,发现SF5上面的业务流量几近饱和,于是重新选择下一跳业务功能到SF4,并更新IPv6报文头中的目的地址为SF4-IPv6,Service Index字段减1,即为1;此时,SFF3上可以选择更新业务功能路径地址列表,也可以选择不更新;同时,解析报文中的元数据相关信息,判断是否有SFF3节点需要的元数据信息;如果有,则读取元数据信息并使用,使用完后如果需要更新元数据信息则更新;如果没有,则不更新元数据信息;SFF3根据目的SF4-IPv6地址查找IPv6路由表进行转发;也可能发现到达目的IPv6地址需要通过隧道封装或者MPLS转发到达;

步骤8:SF4收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析业务转发路径信息和Service Index,获知当前节点是第4跳,进一步获取第5跳节点Destination的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为0;同时,解析报文中的元数据信息,判断是否有SF4节点需要的元数据信息;如果有,则读取元数据信息并使用,使用完后如果需要更新元数据信息则更新;如果没有,则不更新元数据信息;进一步地,SF4发现Service Index字段为0,即剥除掉此携带有业务功能路径相关信息的选路扩展头和携带有元数据相关信息的目的地选路扩展头;然后,SF4根据目的Destination-IPv6地址查找IPv6路由表进行转发;也可能发现到达目的IPv6地址需要通过隧道封装或者MPLS转发到达。

示例五

如图3-12所示,报文从源端S发送到目的端D,需要经历中间节点SFF1/SF2/SFF3/SF5,且所有中间节点均有相应的段ID(Segment ID/SID)标识,分别对应的标识为SFF1-SID/SF2-SID/SFF3-SID/SF5-SID,其中,SFF1-SID 和SFF3-SID是节点SID,SF2-SID和SF5-SID是业务SID,则报文的转发流程如下:

步骤1:源端节点Source获取到目的端节点Destination的业务转发路径的信息[SFF1,SF2,SFF3,SF5,Desination]以及其对应的SID标识,一共5跳;同时,未获取此业务转发路径对应的元数据相关信息;所述路径信息和所述元数据相关可以是本地配置,也可以是从控制器获取;此处,源端节点担任了封装选路扩展头的角色;

步骤2:源端节点获取第一跳节点信息,即SFF1-SID信息,并进一步解析为路由可达的IPv6地址,封装在IPv6报文头的目的地址字段中,并将业务转发路径信息[SFF1,SF2,SFF3,SF5,Destination]对应的SID标识按照逆序封装在本发明定义的选路扩展头内,即报文格式如图3-13所示,Service Index字段减1,即为4;

步骤3:源端节点按照IPv6报文头中的目的IPv6地址进行转发,转发到第一跳节点SFF1上;当然,源端节点查找IPv6路由转发表时,也可能发现到达目的IPv6地址需要通过隧道封装或者MPLS转发到达;也可能发现到达目的IPv6地址需要通过VLAN封装、VXLAN封装、隧道封装或者MPLS转发到达;

步骤4:SFF1收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析对应的SF2-SID信息,发现是本地业务SID,解析为在SFF1上路由可达的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为3;SFF1根据SF2-SID解析出来的IPv6地址查找IPv6路由表进行转发;也可能发现到达所述SF2-SID需要通过VLAN封装、VXLAN封装、隧道封装或者MPLS转发到达;

步骤5:SF2收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析对应的SFF3-SID信息,解析为路由可达的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为2;SF2根据SFF3-SID解析出来的IPv6地址查找IPv6路由表进行转发;也可能发现到达目的IPv6地址需要通过VLAN封装、VXLAN封装、隧道封装或者MPLS转发到达;

步骤6:SFF3收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析对应的SF5-SID信息,发现是本地业务SID,解析为在SFF3上路由可达的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为1;SFF3根据SF5-SID解析出来的IPv6地址查找IPv6路由表进行转发;也可能发现到达所述SF5-SID需要通过VLAN封装、VXLAN封装、隧道封装或者MPLS转发到达;

步骤7:SF5收到报文后,发现目的地是自己,于是解析报文中的选路扩展头,并进一步解析对应的Desination-ID信息,解析为路由可达的IPv6地址,并以该地址替换掉IPv6报文头中的目的地址,Service Index字段减1,即为0;SF5发现Service Index字段为0,即剥除掉此选路扩展头;然后,SF5根据目的Destination-IPv6地址查找IPv6路由表进行转发;也可能发现到达目的IPv6地址需要通过VLAN封装、VXLAN封装、隧道封装或者MPLS转发到达。

示例六

如图3-14所示,报文从源端S发送到目的端D,业务转发路径为Classifier/SFF1/SF2/SFF3/SF5,目的端D不在IPv6SFC域内;报文从源端S转发到目的端D时,目的端节点Destination收到的报文中携带了无法识别的元数据选项信息;此时,Destination需要进一步根据RFC24604.2章节中定义的标识对收到的报文进行处理:

当元数据选项的MD Option Type字段中最高2位为00时,则忽略此选项;

当元数据选项的MD Option Type字段中最高2位为01时,则丢弃该报文;

当元数据选项的MD Option Type字段中最高2位为10时,则丢弃该报,并且,无论该报文的目的地址是否为组播地址,都发送ICMP参数错误消息给源端节点,指出有不识别的选项类型;

当元数据选项的MD Option Type字段中最高2位为11时,则丢弃该报,并且,只有当该报文的目的地址不是组播地址,才发送ICMP参数错误消息 给源端节点,指出有不识别的选项类型。

上述实施例提供的一种实现业务功能链的方法和装置,通过在IPv6报文的IPv6扩展头中封装业务功能链信息,沿着业务功能链对所述IPv6报文进行转发,能够在IPv6网络中简单部署和快速实现业务功能链技术。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

需要说明的是,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1