CN115250262A - 消息发送方法及装置、消息接收方法及装置、存储介质 - Google Patents

消息发送方法及装置、消息接收方法及装置、存储介质 Download PDF

Info

Publication number
CN115250262A
CN115250262A CN202110469912.3A CN202110469912A CN115250262A CN 115250262 A CN115250262 A CN 115250262A CN 202110469912 A CN202110469912 A CN 202110469912A CN 115250262 A CN115250262 A CN 115250262A
Authority
CN
China
Prior art keywords
node
information
tunnel encapsulation
path
specified
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110469912.3A
Other languages
English (en)
Inventor
彭少富
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN202110469912.3A priority Critical patent/CN115250262A/zh
Priority to PCT/CN2022/070343 priority patent/WO2022227690A1/zh
Publication of CN115250262A publication Critical patent/CN115250262A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]

Abstract

本发明实施例提供了一种消息发送方法及装置、消息接收方法及装置、存储介质,其中,上述消息发送包括:通过出口节点向入口节点发送BGP更新消息,以向所述入口节点通告路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值、指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。解决了在网络运维中,依赖手工配置的切片引流所带来的不灵活等问题。

Description

消息发送方法及装置、消息接收方法及装置、存储介质
技术领域
本发明涉及通信领域,具体而言,涉及一种消息发送方法及装置、消息接收方法及装置、存储介质。
背景技术
关于如何在运营商网络中部署网络切片,受到了业界的热烈讨论和高度关注,一些已有的控制面技术将被充分利用,以及一些新的技术被开发出来,去满足不同场景下的网络切片需求。一般来说,网络切片可以是一张预留了专属资源的虚拟网络,或一条预留了专属资源的流量工程路径。在不同切片间,可以是严格的资源硬隔离,也可以是达到近似硬隔离效果的软隔离。IP分组网络从来没有被设计成支持硬隔离,它支持的是统计复用,相比专网或时分复用(Time Division Multiplex,简称为TDM)网络更加经济。为了在IP分组网络中支持网络切片需求,当前业界提出了多种技术方案,比如,有的采用内部网关协议(Interior Gateway Protocol,简称为IGP)多拓扑技术(参考RFC5120、RFC4915、RFC5340),将同一张物理网络拓扑划分成多个逻辑子拓扑,每个逻辑子拓扑具有专属的资源;有的采用IGP灵活算法(Flexible Algorithm,记为Flex-algo)技术(参考draft-ietf-lsr-flex-algo-14、draft-ietf-lsr-ip-flexalgo-00),将同一张物理网络拓扑划分成多个Flex-algo平面,在每个Flex-algo平面内使用相应的算法去计算带约束的转发路径;还有的直接在网络中创建多个具有不同切片标识(Slice ID)的端到端的虚拟拓扑(参考draft-peng-teas-network-slicing-04),然后在切片虚拟拓扑中,建立端到端的路径。
当网络切片创建好后,一般需要在切片的入口节点上,配置相应的流量映射策略,将接收到的特定流量引导到特定的切片上进行转发。比如,在切片的入口节点上配置访问控制列表(Access Control List,简称为ACL)规则,匹配流量的五元组(源IP地址、目的IP地址、源端口号、目的端口号、协议号)或流量等级(Traffic Class)等特征值,将流量直接引导到特定的切片,或者先根据这些特征值映射得到某个Color(Color的定义参考draft-ietf-idr-tunnel-encaps-22)值,然后根据Color值去选择相应的切片。然而,这样的手工配置十分不灵活,特别是对于切片的入口节点并非是端到端业务落地节点的场景,此时不建议在切片入口节点上去大量配置与业务相关的策略。
针对相关技术中,在网络运维中,依赖手工配置的切片引流所带来的不灵活等问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种消息发送方法及装置、消息接收方法及装置、存储介质,以至少解决在网络运维中,依赖手工配置的切片引流所带来的不灵活等问题。
根据本发明实施例的一方面,提供一种消息发送方法,包括:通过出口节点向入口节点发送BGP更新消息,以向所述入口节点通告路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值、指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
进一步地,所述流分类特征值包括以下至少之一:IP报头的差分服务DS字段、IP报头的源IP地址、目的IP地址、源端口号、目的端口号、协议号、Ethernet帧头的源MAC、目的MAC地址、VLAN ID、优先级码点PCP。
进一步地,所述IP报头的差分服务DS字段至少包括以下之一:IPv4报头的业务类型TOS字段、IPv6报头的流量类别TC字段。
进一步地,所述指定的虚拟网络的路径信息包括以下至少之一:指定IGP拓扑内至指定目的节点的路径、指定Flex-algo平面内至指定目的节点的路径、指定Slice ID对应的虚拟拓扑内至指定目的节点的路径、指定段标识SID的路径。
根据本发明实施例的又一方面,还提供一种消息接收方法,包括:通过入口节点接收出口节点发送的BGP更新消息,以获取路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值,指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
进一步地,所述流分类特征值包括以下至少之一:IP报头的差分服务DS字段、IP报头的源IP地址、目的IP地址、源端口号、目的端口号、协议号、Ethernet帧头的源MAC、目的MAC地址、VLAN ID、优先级码点PCP。
进一步地,所述IP报头的差分服务DS字段至少包括以下之一:IPv4报头的业务类型TOS字段、IPv6报头的流量类别TC字段。
进一步地,所述指定的虚拟网络的路径信息包括以下至少之一:指定IGP拓扑内至指定目的节点的路径、指定Flex-algo平面内至指定目的节点的路径、指定Slice ID对应的虚拟拓扑内至指定目的节点的路径、指定段标识SID的路径。
进一步地,通过所述入口节点接收出口节点发送的BGP更新消息,以获取路由可达信息之后,所述方法还包括:所述入口节点根据获取到的所述路由可达信息创建所述入口节点对应的路由表项或标签表项,其中,所述路由表项或标签表项包括:所述隧道封装属性。
进一步地,所述入口节点根据获取到的所述路由可达信息创建所述入口节点对应的路由表项或标签表项之后,所述方法还包括:所述入口节点确定所述流量匹配到所述路由表项或标签表项的情况下,获取所述流量的流分类特征,并将所述流量在所述流分类特征对应的所述指定的虚拟网络的路径信息上转发。
根据本发明实施例的又一方面,还提供一种消息发送装置,包括:发送模块,用于向入口节点发送BGP更新消息,以向所述入口节点通告路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值、指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
根据本发明实施例的又一方面,还提供一种消息接收装置,包括:接收模块,用于接收出口节点发送的BGP更新消息,以获取路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值、指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述消息发送方法或消息接收方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述消息发送方法或消息接收方法。
通过本发明,出口节点向入口节点发送BGP更新消息,以向所述入口节点通告路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值、指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。也就是说,出口节点向入口节点发送包含指定的流分类特征值和指定的虚拟网络的路径信息的BGP更新消息,以向所述入口节点通告路由可达信息,进而入口节点可以向出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。解决了在网络运维中,依赖手工配置的切片引流所带来的不灵活等问题,进而通过出口节点向入口节点发送BGP更新消息,以向所述入口节点通告路由可达信息,弥补了BGP路由通告时无法指定特定虚拟网络的缺陷,不依赖静态配置的自动的切片引流,具有很好的灵活性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示例性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的消息发送方法或消息接收方法的计算机终端的硬件结构框图;
图2是本发明实施例的消息发送方法的流程图;
图3是本发明实施例的消息接收方法的流程图;
图4是本发明实施例的Flow Classification Sub-TLV的格式示意图;
图5是本发明实施例的IP Differentiated Service sub-sub-TLV的格式示意图;
图6是本发明实施例的IP Source Address Range sub-sub-TLV的格式示意图;
图7是本发明实施例的IP Protocol Number sub-sub-TLV的格式示意图;
图8是本发明实施例的Transport Source Port Range sub-sub-TLV的格式示意图;
图9是本发明实施例的Virtual Network Sub-TLV的格式示意图;
图10是本发明实施例的SR-BE Encapsulation Sub-TLV的格式示意图;
图11是本发明实施例的骨干网络中部署IGP Flex-algo的示意图;
图12是本发明实施例的消息发送装置的结构框图;
图13是本发明实施例的消息接收装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述指定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的消息发送方法或消息接收方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的消息发送方法或消息接收方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
相关技术中,draft-ietf-idr-tunnel-encaps-22描述了边界网关协议(BorderGateway Protocol,简称为BGP)UPDATE消息中携带隧道封装属性(Tunnel Encapsulationattribute)的方法,以指定路由的隧道封装信息,本发明在此基础上讨论一种指定网络切片的转发路径的方法。本发明所述的方法也适用于非网络切片的其它应用场景。本实施提供一种消息发送方法,图2是本发明实施例的消息发送方法的流程图,该流程包括如下步骤:
步骤S202,通过出口节点向入口节点发送BGP更新消息,以向所述入口节点通告路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值、指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
通过上述步骤,出口节点向入口节点发送包含指定的流分类特征值和指定的虚拟网络的路径信息的BGP更新消息,以向所述入口节点通告路由可达信息,进而入口节点可以向出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。解决了在网络运维中,依赖手工配置的切片引流所带来的不灵活等问题,进而通过出口节点向入口节点发送BGP更新消息,以向所述入口节点通告路由可达信息,弥补了BGP路由通告时无法指定特定虚拟网络的缺陷,不依赖静态配置的自动的切片引流,具有很好的灵活性。
需要说明的是,所述流分类特征值包括以下至少之一:IP报头的差分服务DS字段、IP报头的源IP地址、目的IP地址、源端口号、目的端口号、协议号、Ethernet帧头的源MAC、目的MAC地址、VLAN ID、优先级码点PCP。
进一步地,所述IP报头的差分服务DS字段至少包括以下之一:IPv4报头的业务类型TOS字段、IPv6报头的流量类别TC字段。
为了更好的理解,在本实施例中,所述流分类特征值,在网络切片场景中主要是IP报头的差分服务(Differentiated Services,简称为DS)字段,如IPv4报头的业务类型(Type of Service,简称为TOS)字段或IPv6报头的流量类别(Traffic Class,简称为TC)字段,除此之外,在其它场景中,流分类特征值也可以是IP报头的源IP地址、目的IP地址、源端口号、目的端口号、协议号之一或它们的任意组合或与DS字段的任意组合,还可以是Ethernet帧头的源MAC、目的MAC、VLAN ID、优先级码点(Priority Code Point,简称为PCP)之一或它们的任意组合。
可选的,所述指定的虚拟网络的路径信息包括以下至少之一:指定IGP拓扑内至指定目的节点的路径、指定Flex-algo平面内至指定目的节点的路径、指定Slice ID对应的虚拟拓扑内至指定目的节点的路径、指定段标识SID的路径。
本实施提供一种消息接收方法,图3是本发明实施例的消息接收方法的流程图,该流程包括如下步骤:
步骤S302,通过入口节点接收出口节点发送的BGP更新消息,以获取路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值,指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
通过上述步骤,入口节点接收出口节点发送包含指定的流分类特征值和指定的虚拟网络的路径信息的BGP更新消息,以获取路由可达信息,进而入口节点可以向出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。解决了在网络运维中,依赖手工配置的切片引流所带来的不灵活等问题,进而通过入口节点接收出口节点发送BGP更新消息,以获得路由可达信息,弥补了BGP路由通告时无法指定特定虚拟网络的缺陷,不依赖静态配置的自动的切片引流,具有很好的灵活性。
需要说明的是,所述流分类特征值包括以下至少之一:IP报头的差分服务DS字段、IP报头的源IP地址、目的IP地址、源端口号、目的端口号、协议号、Ethernet帧头的源MAC、目的MAC地址、VLAN ID、优先级码点PCP。
进一步地,所述IP报头的差分服务DS字段至少包括以下之一:IPv4报头的业务类型TOS字段、IPv6报头的流量类别TC字段。
为了更好的理解,在本实施例中,所述流分类特征值,在网络切片场景中主要是IP报头的差分服务(Differentiated Services,简称为DS)字段,如IPv4报头的业务类型(Type of Service,简称为TOS)字段或IPv6报头的流量类别(Traffic Class,简称为TC)字段,除此之外,在其它场景中,流分类特征值也可以是IP报头的源IP地址、目的IP地址、源端口号、目的端口号、协议号之一或它们的任意组合或与DS字段的任意组合,还可以是Ethernet帧头的源MAC、目的MAC、VLAN ID、优先级码点(Priority Code Point,简称为PCP)之一或它们的任意组合。
可选的,所述指定的虚拟网络的路径信息包括以下至少之一:指定IGP拓扑内至指定目的节点的路径、指定Flex-algo平面内至指定目的节点的路径、指定Slice ID对应的虚拟拓扑内至指定目的节点的路径、指定段标识SID的路径。
需要说明的是,通过所述入口节点接收出口节点发送的BGP更新消息,以获取路由可达信息之后,所述方法还包括:所述入口节点根据获取到的所述路由可达信息创建所述入口节点对应的路由表项或标签表项,其中,所述路由表项或标签表项包括:所述隧道封装属性。
在本实施例中,网络的入口节点收到上述路由可达信息后,创建所述入口节点对应的路由表项或标签表项,维护相应的路由表项或标签表项,在路由表项或标签表项中包含相应的隧道封装属性信息。需要说明的是,单个路由表项或标签表项中维护的隧道封装属性信息中,可以包含多个隧道封装选项,形如:<流分类特征值1,隧道1>,<流分类特征值2,隧道2>等等。
进一步地,所述入口节点根据获取到的所述路由可达信息创建所述入口节点对应的路由表项或标签表项之后,所述方法还包括:所述入口节点确定所述流量匹配到所述路由表项或标签表项的情况下,获取所述流量的流分类特征,并将所述流量在所述流分类特征对应的所述指定的虚拟网络的路径信息上转发。
在本实施例中,网络入口节点从用户侧接收到流量时,若匹配到路由表项且该路由表项中包含有隧道封装属性信息,则进一步根据接收到的流量的流分类特征,将流量引导到指定的虚拟网络的转发路径上进行转发。
为了更好的理解上述方案,在一个可选的实施例中,消息发送和接收过程具体如下步骤:
1)网络的出口节点(或通过反射器)向入口节点发送BGP UPDATE消息以通告路由可达信息,可使用根据draft-ietf-idr-tunnel-encaps-22中定义的机制,在消息中包含隧道封装属性。隧道封装属性中可包括一个或多个隧道封装信息,每个隧道封装信息包含了特定的流分类特征值以及流量映射到的特定虚拟网络的路径信息。所述流分类特征值,在网络切片场景中主要是IP报头的DS(Differentiated Services差分服务)字段,如IPv4报头的TOS(Type of Service业务类型)字段或IPv6报头的TC(Traffic Class)字段。所述特定虚拟网络的路径信息,可以是特定IGP拓扑内至特定目的节点的路径,或特定Flex-algo平面内至特定目的节点的路径,或特定Slice ID对应的虚拟拓扑内至特定目的节点的路径,或至特定SID(Segment Identifier段标识,参考RFC8402)的路径。除此之外,在其它场景中,流分类特征值也可以包含IP报头的源IP地址、目的IP地址、源端口号、目的端口号、协议号之一或它们的任意组合或与DS的任意组合,还可以是Ethernet帧头的源MAC、目的MAC、VLAN ID、PCP之一或它们的任意组合。
2)网络的入口节点收到上述包含有隧道封装属性的路由可达信息通告后,维护相应的路由表项或标签表项,在路由表项或标签表项中包含相应的隧道封装属性信息。单个路由表项或标签表项中维护的隧道封装属性信息中,可以包含多个隧道封装选项,形如:<流分类特征值1,隧道1>,<流分类特征值2,隧道2>等等。
3)网络入口节点从用户侧接收到流量时,若匹配到路由表项或标签表项且该路由表项或标签表项中包含有隧道封装属性信息,则进一步根据接收到的流量的流分类特征,将流量引导到特定虚拟网络的转发路径上进行转发。
进一步地,为了更好的理解上述隧道封装属性中包含的流分类特征值,以下具体介绍draft-ietf-idr-tunnel-encaps-22在隧道封装属性中包含流分类特征值的具体实施方式,如下所示:图4是本发明实施例的Flow Classification Sub-TLV的格式示意图,在draft-ietf-idr-tunnel-encaps-22定义的Tunnel Encapsulation TLV中,新增FlowClassification Sub-TLV,用于表示流分类信息,只有匹配了该流分类信息的流量,才能使用Tunnel Encapsulation TLV中指定的隧道封装。Flow Classification Sub-TLV的格式如图4所示,其中:Type:占1字节,取值待互联网地址编码分配机构(Internet AssignedNumbers Authority,简称为IANA)分配,表明该Sub-TLV是Flow Classification Sub-TLV;Length:占1字节,取值根据所包含的sub-sub-TLVs进行设置。
需要说明的是,定义了众多sub-sub-TLVs,每个sub-sub-TLV都是可选的,可单独存在,也可同时存在,具体的sub-sub-TLV如下:
a)IP Differentiated Service sub-sub-TLV
用于表示流量需要匹配的流量等级范围,图5是本发明实施例的IPDifferentiated Service sub-sub-TLV的格式示意图,其中:Type:占1字节,取值待IANA分配,表明该sub-sub-TLV是IP Differentiated Service sub-sub-TLV;Length:占1字节,取值为2;DS Begin:占1字节,表示流量等级范围的起始值,它的值不能超过DS End;DS End:占1字节,表示流量等级范围的终值;当IP流量的DS(如IPv4报头的TOS字段或IPv6报头的TC字段)处于上述范围内时,才允许该IP流量使用Tunnel Encapsulation TLV中指定的隧道封装。
b)IP Source Address Range sub-sub-TLV
用于表示流量需要匹配的源地址范围,图6是本发明实施例的IP Source AddressRange sub-sub-TLV的格式示意图,其中,Type:占1字节,取值待IANA分配,表明该sub-sub-TLV是IP Source Address Range sub-sub-TLV;Length:占1字节,取值为6或18;Flags:占1字节,包含一些标志。当前仅定义V-Flag,0表示Prefix字段中是32比特的IPv4 Prefix,1表示Prefix字段中是128比特的IPv6 Prefix;Prefix Length:占1字节,表示Prefix字段中的前缀的长度;Prefix:占4字节的IPv4 Prefix,或占16字节的IPv6 Prefix;当IP流量的源地址处于Prefix的范围内时,才允许该IP流量使用Tunnel Encapsulation TLV中指定的隧道封装。
c)IP Destination Address Range sub-sub-TLV
用于表示流量需要匹配的目的地址范围,格式同IP Source Address Range sub-sub-TLV。
d)IP Protocol Number sub-sub-TLV
用于表示流量需要匹配的协议号范围,图7是本发明实施例的IP ProtocolNumber sub-sub-TLV的格式示意图,其中,Type:占1字节,取值待IANA分配,表明该sub-sub-TLV是IP Protocol Number sub-sub-TLV;Length:占1字节,取值为2;ProtocolBegin:占1字节,表示协议号范围的起始值,它的值不能超过Protocol End;Protocol End:占1字节,表示协议号范围的终值;当IP流量的协议号(如IPv4报头的Protocol字段或IPv6报头的Next Header字段)处于上述范围内时,才允许该IP流量使用Tunnel EncapsulationTLV中指定的隧道封装。
e)Transport Source Port Range sub-sub-TLV
用于表示流量需要匹配的源端口号范围,图8是本发明实施例的TransportSource Port Range sub-sub-TLV的格式示意图,其中:Type:占1字节,取值待IANA分配,表明该sub-sub-TLV是Transport Source Port Range sub-sub-TLV;Length:占1字节,取值为6;Port Begin:占1字节,表示源端口号范围的起始值,它的值不能超过Port End;PortEnd:占1字节,表示源端口号范围的终值;当流量的传输层源端口号(如TCP或UDP的源端口)处于上述范围内时,才允许该IP流量使用Tunnel Encapsulation TLV中指定的隧道封装。
f)Transport Destination Port Range sub-sub-TLV
用于表示流量需要匹配的目的端口号范围,格式同Transport Source PortRange sub-sub-TLV。
g)类似的,可以定义Ethernet帧对应的流量匹配条件,如:源MAC范围、目的MAC范围、VLAN ID范围、PCP范围。原理与IP报文对应的流量匹配条件是类似的,在此不再赘述。
为了更好的理解上述隧道封装属性中包含的特定虚拟网络的隧道封装,以下具体介绍draft-ietf-idr-tunnel-encaps-22在隧道封装属性中包含流分类特征值的具体实施方式,如下所示:
在draft-ietf-idr-tunnel-encaps-22定义的Tunnel Encapsulation TLV中,新增Virtual Network Sub-TLV,是可选的,用于表示特定的虚拟网络,即TunnelEncapsulation TLV中指定的隧道封装相关联的隧道,是特定的虚拟网络内的隧道。图9是本发明实施例的Virtual Network Sub-TLV的格式示意图,其中:Type:占1字节,取值待IANA分配,表明该Sub-TLV是Virtual Network Sub-TLV;Length:占1字节,取值为6;Flags:占1字节,定义了一些标志。当前仅定义了I-Flag,仅用于Virtual Network Sub-TLV中指定了Slice ID的情况。当I-Flag为1时,表示转发平面的业务报文所封装的隧道封装属性对应的隧道头中,需要携带Slice ID,否则不需要携带。Algorithm:占1字节,表示特定的IGP算法。取值参考IANA的"IGP Algorithm Types"registry。比如,0表示Shortest Path First(SPF)algorithm based on link metric(基于链路metric的最短路径优先算法),1表示Strict Shortest Path First(SPF)algorithm based on link metric(基于链路metric的严格最短路径优先算法),128~255表示由用户自定义的Flexible Algorithms(灵活算法)。Multi-Topology ID:占2字节,表示特定的IGP拓扑,含义参考RFC5120中的MT ID或RFC4915中的MT-ID。Slice ID:占2字节,表示特定的切片,即draft-ietf-teas-ietf-network-slices-01中定义的IETF network slice。
大多数情况下,仅需设置Algorithm、Multi-Topology ID、Slice ID三者之一,少数情况下也可同时设置它们,未设置时的值为0。
Tunnel Encapsulation TLV中包含的Virtual Network Sub-TLV与其它Sub-TLV一起结合使用,将指定特定虚拟网络中的隧道对应的隧道封装信息。比如,当TunnelEncapsulation TLV的Tunnel Type为7(表示IP in IP),且包含Virtual Network Sub-TLV与已定义的Tunnel Egress Endpoint Sub-TLV时,则表示将业务报文封装在指定的虚拟网络中的至指定Tunnel Egress Endpoint的IP tunnel中传输。
为了更好的理解上述隧道封装属性中包含的特定Segment Routing SID,以下具体介绍draft-ietf-idr-tunnel-encaps-22以在隧道封装属性中包含特定SegmentRouting SID的隧道封装的具体实施方式,如下所示:
考虑到Segment Routing(参考RFC8402)的SID能提供基于Segment Routing的Best-effort转发路径(记为SR-BE),并且SID自身的分配时,能够区分不同的虚拟网络去分配不同的SID。因此在隧道封装属性中包含指定的SID可作为另外一种选项,使得业务报文被封装特定虚拟网络的SR-BE隧道中。业界将Segment Routing应用于MPLS数据平面时称为SR-MPLS,应用于IPv6数据平面时称为SRv6。
在本实施例在IANA的"BGP Tunnel Encapsulation Attribute Tunnel Types"Registry中,新增一种Tunnel Type=SR-BE,表示SR-BE隧道。为了描述SR-BE隧道自身的封装信息,需要在Tunnel Encapsulation TLV中新增SR-BE Encapsulation Sub-TLV,图10是本发明实施例的SR-BE Encapsulation Sub-TLV的格式示意图,其中:Type:占1字节,取值为1。draft-ietf-idr-tunnel-encaps-22规定所有Tunnel Type的隧道的EncapsulationSub-TLV的Type取值都为1,需同时结合Tunnel Type去解读该Sub-TLV。Length:占1字节,取值为6。Flags:占1字节,定义了一些标志。当前仅定义D-Flag,表示SID的类型。当D-Flag为0时,表示SID字段中是4字节的SR-MPLS SID,是一个索引;为1时表示SID字段中是16字节的SRv6 SID。SID:4字节的SR-MPLS SID或16字节的SRv6 SID。当SID为SR-MPLS SID时,它是一个索引,需要使用下游节点的SRGB(Segment Routing Global Block分段路由全局块)偏移得到出标签,该出标签就是SR-MPLS的SR-BE隧道的标签。当SID为SRv6 SID时,SRv6的SR-BE隧道对应的IPv6报头的DA字段中填写的就是该SID。
显然,上述所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。为了更好的理解上述消息发送方法和消息接收方法,以下结合实施例对上述过程进行说明,但不用于限定本发明实施例的技术方案,具体地:
实施例1
本实施描述一种最简洁的网络切片部署方案,根据流量等级映射到相应的隧道出口IP地址。在一些运营商的骨干网络中,网络管理员并不希望在这个网络中去大量部署流量工程路径,但又希望能够根据业务报文的特征,自动的在网络中挑选合适的路径进行转发。图11是本发明实施例的骨干网络中部署IGP Flex-algo的示意图,如图11所示的网络中,网络管理员选择在纯IPv6的骨干网络中部署IGP Flex-algo,创建一个基于低时延度量(Delay metric)计算路径的Flex-algo平面,让那些流量等级较高的流量沿这个Flex-algo平面转发,而普通流量继续沿物理网络转发。
需要说明的是,本实施例中的B2节点与B1节点分别对应前述方案的出口节点与入口节点。
由于本实施例中的骨干网络是纯IPv6网络,没有部署Segment Routing。因此可采用draft-ietf-lsr-ip-flexalgo-00所述的方法去创建图中所示的Flex-algo 128平面。如图11所示,节点B1、P1、P2、B2以及它们相互连接的链路加入到了Flex-algo 128平面,而整个骨干物理网络可看做是algorithm 0对应的平面。此例中,假设节点B2上有两个Loopback路由,分别为Loopback-B2和Loopback-B200,且Loopback-B2与algorithm 0关联,Loopback-B200与algorithm 128关联。则B1节点上,至Loopback-B2的路由转发路径将是在物理网络中按最小IGP metric计算得到的转发路径,而至Loopback-B200的路由转发路径将是在Flex-algo 128平面中按最小Delay metric计算得到的转发路径。
为了支持跨城域的不同等级的业务相互访问,比如图11中Metro 1的节点S需要向Metro2的节点D发送IPv6数据报文,则节点S需要学习到至节点D的路由可达信息。假设节点D上有一条本地路由记为Prefix-D,在Metro 2内通告。节点C可通过BGP向节点B2直接通告Prefix-D或者聚合后的某个前缀长度更短的前缀。为了描述简单,本实施例中假设直接通告Prefix-D。
B2节点从骨干域外收到Prefix-D对应的路由通告时,继续通过BGP向骨干域的边界节点B1通告。B2节点并不关注所通告的Prefix的差异(即不管是针对Prefix-D还是其它的Prefix-D),仅需配置一个简单的本地策略,为继续通告的BGP UPDATE消息中添加隧道封装属性,包含两个隧道封装选项,即包含两个Tunnel Encapsulation TLV,具体如下:
第一个Tunnel Encapsulation TLV,Tunnel Type为IP in IP,包含TunnelEgress Endpoint Sub-TLV,其中,Address字段填写Loopback-B2;包含FlowClassification Sub-TLV以及IP Differentiated Service sub-sub-TLV,其中,[DSBegin,DS End]假设为[0,3]以表示低优先级的报文。
第二个Tunnel Encapsulation TLV,Tunnel Type为IP in IP,包含TunnelEgress Endpoint Sub-TLV,其中,Address字段填写Loopback-B200;包含FlowClassification Sub-TLV以及IP Differentiated Service sub-sub-TLV,其中,[DSBegin,DS End]假设为[4,8]以表示高优先级的报文。
B2节点继续向B1节点通告BGP UPDATE消息时会将消息中的BGP Next-hop改为自己,一般总是设置为它与B1节点建立BGP session的地址,如Loopback-B2。这与BGP UPDATE消息中携带的隧道封装属性中的Tunnel Egress Endpoint Sub-TLV无关。
节点B1收到上述路由通告后,将维护至Prefix-D的路由表项,在路由表项中包含隧道封装属性信息且具体包含上述两个隧道封装选项。
节点B1继续通过BGP向Metro 1的边界节点A通告,也将BGP UPDATE消息中的BGPNext-hop改为自己。注意在本实施例中,此时B1需要将BGP UPDATE消息中的隧道封装属性剥除后再向节点A通告。
需要说明的是,在有些场景中,也许B1在向邻居节点继续通告BGP UPDATE消息时会携带新的隧道封装属性以指定该邻居节点至B1的隧道用于报文转发,这样的场景中隧道封装是一段一段拼接起来的。本实施例中,由于仅需在骨干网中指定隧道,另外也希望B1节点上的配置尽量简单,因此B1节点上可以采取简单的本地策略,当继续通告的BGP UPDATE消息中的BGP Next-hop改为自己时,就将旧的隧道封装属性移除后再通告。
Metro 1中,节点A继续通过IGP或BGP将Prefix-D向节点S通告。
接下来观察节点S向节点D发送的数据报文,假设是两个IPv6报文,记为Packet 1和Packet 2。这两个报文的目的IP地址都是节点D上的某个本地地址,记为IP-D(未作特殊说明,其它节点的本地地址也采取类似记号),在网络中的各个节点上,都能匹配上述Prefix-D路由表项。假设Packet 1的IPv6 Header中的Traffic Class为0,Packet 2的IPv6Header中的Traffic Class为7。即:
Packet1:
IPv6 Header:DA=IP-D,SA=IP-S,Traffic Class=0
Packet2:
IPv6 Header:DA=IP-D,SA=IP-S,Traffic Class=7
上述报文到达骨干网络的边界节点B1时,将命中维护的路由表项Prefix-D,并根据路由表项中包含的隧道封装属性信息,为报文封装外层IP tunnel。此时,由于Packet 1的Traffic Class为0,则封装的外层IPv6 Header的DA为Loopback-B2;而Packet 2的Traffic Class为7,则封装的外层IPv6 Header的DA为Loopback-B200。即:
Packet1:
外层IPv6 Header:DA=Loopback-B2,SA=IP-B1
内层IPv6 Header:DA=IP-D,SA=IP-S,Traffic Class=0
Packet2:
外层IPv6 Header:DA=Loopback-B200,SA=IP-B1
内层IPv6 Header:DA=IP-D,SA=IP-S,Traffic Class=7
则上述两个报文将分别沿物理拓扑和Flex-algo 128平面转发至目的节点B2,使得在骨干网中得到差异化的处理。B2节点最终将上述两个报文向Metro 2转发。
可以将本实施例中的Flow Classification Sub-TLV中包含的IPDifferentiated Service sub-sub-TLV换成包含其它sub-sub-TLV,只是更改了流量匹配条件,处理过程是类似的。
可以将本实施例中的Flex-algo替换成多IGP进程(即物理网络中部署多个IGP实例,每条链路仅属于一个IGP实例)的方式,即上述Loopback-B2与Loopback-B200分别关联到不同的IGP进程,处理过程也是类似的。
实施例2
本实施例仍然以图11为例,假设骨干网络中已升级支持SRv6,描述一种根据流量等级映射到相应的隧道出口SRv6 SID。网络管理员选择在支持SRv6的骨干网络中部署IGPFlex-algo,创建一个基于低时延度量(Delay metric)计算路径的Flex-algo平面,让那些流量等级较高的流量沿这个Flex-algo平面转发,而普通流量继续沿物理网络转发。
由于此实施例中的骨干网络是SRv6网络,因此可采用draft-ietf-lsr-flex-algo-14所述的方法去创建图中所示的Flex-algo 128平面。如图11所示,节点B1、P1、P2、B2以及它们相互连接的链路加入到了Flex-algo 128平面,而整个骨干物理网络可看做是algorithm0对应的平面。此例中,假设节点B2上有两个SRv6 Locator,分别为LOC-B2和LOC-B200,且LOC-B2与algorithm 0关联,LOC-B200与algorithm 128关联。则B1节点上,至LOC-B2的路由转发路径将是在物理网络中按最小IGP metric计算得到的转发路径,而至LOC-B200的路由转发路径将是在Flex-algo 128平面中按最小Delay metric计算得到的转发路径。另外,假设在LOC-B2中分配了一个SID-B2,在LOC-B200中分配了一个SID-B200,这两个SID可能是具有USD(Ultimate Segment Decapsulation)flavor的END SID,或用于承载Global IPv6报文的END.DT6 SID,参考RFC8986与draft-ietf-bess-srv6-services-07。
为了支持跨城域的不同等级的业务相互访问,比如图11中Metro 1的节点S需要向Metro2的节点D发送IPv6数据报文,则节点S需要学习到至节点D的路由可达信息。假设节点D上有一条本地路由记为Prefix-D,在Metro 2内通告,节点C可通过BGP向节点B2直接通告Prefix-D或者聚合后的某个前缀长度更短的前缀。为了描述简单,本例中假设直接通告Prefix-D。
B2节点从骨干域外收到Prefix-D对应的路由通告时,继续通过BGP向骨干域的边界节点B1通告。B2节点并不关注所通告的Prefix的差异(即不管是针对Prefix-D还是其它的Prefix-D),仅需配置一个简单的本地策略,为继续通告的BGP UPDATE消息中添加隧道封装属性,包含两个隧道封装选项,即包含两个Tunnel Encapsulation TLV,具体如下:
第一个Tunnel Encapsulation TLV,Tunnel Type为SR-BE,包含SR-BEEncapsulation Sub-TLV,其中,D-Flag设置为1,SID为SID-B2;包含Flow ClassificationSub-TLV以及IP Differentiated Service sub-sub-TLV,其中,[DS Begin,DS End]假设为[0,3]以表示低优先级的报文。
第二个Tunnel Encapsulation TLV,Tunnel Type为SR-BE,包含SR-BEEncapsulation Sub-TLV,其中,D-Flag设置为1,SID为SID-B200;包含FlowClassification Sub-TLV以及IP Differentiated Service sub-sub-TLV,其中,[DSBegin,DS End]假设为[4,8]以表示高优先级的报文。
B2节点继续向B1节点通告BGP UPDATE消息时会将消息中的BGP Next-hop改为自己,一般总是设置为它与B1节点建立BGP session的地址,如Loopback-B2。
节点B1收到上述路由通告后,将维护至Prefix-D路由表项,在路由表项中包含隧道封装属性信息且具体包含上述两个隧道封装选项。
节点B1继续通过BGP向Metro 1的边界节点A通告,也将BGP UPDATE消息中的BGPNext-hop改为自己。注意在本实施例中,此时B1需要将BGP UPDATE消息中的隧道封装属性剥除后再向节点A通告。
Metro 1中,节点A继续通过IGP或BGP将Prefix-D向节点S通告。接下来观察节点S向节点D发送的两个IPv6数据报文Packet 1和Packet 2(与实施例1相同):
Packet1:
IPv6 Header:DA=IP-D,SA=IP-S,Traffic Class=0
Packet2:
IPv6 Header:DA=IP-D,SA=IP-S,Traffic Class=7
上述报文到达骨干网络的边界节点B1时,将命中维护的路由表项Prefix-D,并根据路由表项中包含的隧道封装属性信息,为报文封装外层IPv6 SR-BE tunnel。此时,由于Packet1的Traffic Class为0,则封装的外层IPv6 Header的DA为SID-B2;而Packet2的Traffic Class为7,则封装的外层IPv6 Header的DA为SID-B200。即:
Packet1:
外层IPv6 Header:DA=SID-B2,SA=IP-B1
内层IPv6 Header:DA=IP-D,SA=IP-S,Traffic Class=0
Packet2:
外层IPv6 Header:DA=SID-B200,SA=IP-B1
内层IPv6 Header:DA=IP-D,SA=IP-S,Traffic Class=7
则上述两个报文将分别沿物理拓扑和Flex-algo 128平面转发至目的节点B2,使得在骨干网中得到差异化的处理。B2节点最终将上述两个报文向Metro 2转发。
可以将本实施例中的Flow Classification Sub-TLV中包含的IPDifferentiated Service sub-sub-TLV换成包含其它sub-sub-TLV,只是更改了流量匹配条件,处理过程是类似的。
可以将本实施例中的SRv6 SID换成SR-MPLS SID,处理过程是类似的,只不过是将封装的外层IPv6 Header替换成MPLS标签栈。
实施例3:
本实施例仍然以图11为例,描述一种根据流量等级映射到指定algorithm的路径,需要入口节点将指定的algorithm去结合BGP UPDATE消息的BGP Next-hop或者指定的隧道出口节点,间接的确定需要采用的隧道封装。这种方式下,入口节点的隧道选择更加灵活,且BGP UPDATE的通告也更简洁。假设如上所述,在骨干网络中创建Flex-algo 128平面用于高优先级的业务。
B2节点从骨干域外收到Prefix-D对应的路由通告时,继续通过BGP向骨干域的边界节点B1通告。B2节点并不关注所通告的Prefix的差异(即不管是针对Prefix-D还是其它的Prefix-D),仅需配置一个简单的本地策略,为继续通告的BGP UPDATE消息中添加隧道封装属性,包含两个隧道封装选项,即包含两个Tunnel Encapsulation TLV,具体如下:
第一个Tunnel Encapsulation TLV,Tunnel Type为Any-Encapsulation,包含Virtual Network Sub-TLV,其中,algorithm、Multi-Topology ID、Slice ID均设置为0;包含Flow Classification Sub-TLV以及IP Differentiated Service sub-sub-TLV,其中,[DS Begin,DS End]假设为[0,3]以表示低优先级的报文。
第二个Tunnel Encapsulation TLV,Tunnel Type为Any-Encapsulation,包含Virtual Network Sub-TLV,其中,algorithm设置为128,Multi-Topology ID和Slice ID均设置为0;包含Flow Classification Sub-TLV以及IP Differentiated Service sub-sub-TLV,其中,[DS Begin,DS End]假设为[4,8]以表示高优先级的报文。
B2节点继续向B1节点通告BGP UPDATE消息时会将消息中的BGP Next-hop改为自己,一般总是设置为它与B1节点建立BGP session的地址,如Loopback-B2。
节点B1收到上述路由通告后,将维护至Prefix-D路由表项,在路由表项中包含隧道封装属性信息且具体包含上述两个隧道封装选项。由于Tunnel Type为Any-Encapsulation,则B1节点需要根据它感知到的骨干网络中具备的实际能力,去选择相应的隧道。比如,如果骨干网络是SR-MPLS网络,则它需要根据<algorithm,Loopback-B2>作为键值在链路状态数据库中查找B2节点为相应algorithm分配的Prefix SID,然后根据查找到的Prefix SID获取相应的MPLS SR-BE转发信息作为隧道封装信息;再比如,如果骨干网络是SRv6网络,则它需要根据<algorithm,Loopback-B2>作为键值在链路状态数据库中查找B2节点为相应algorithm分配的END SID,然后根据查找到的END SID获取相应的IPv6 SR-BE转发信息作为隧道封装信息。
其它过程与上述实施例1和实施例2类似,在此不进行赘述。
本实例中描述的隧道封装虽然是Flex-algo平面中的路径,实际上,换作是IGP多拓扑或Slice ID虚拟拓扑,处理过程也是类似的。特别是,对于Slice ID虚拟拓扑,还有增强的处理过程,具体见实施例4。
实施例4:
本实施例基于实施例3,描述一种根据流量等级映射到指定Slice ID的路径,需要入口节点将指定的Slice ID去结合BGP UPDATE消息的BGP Next-hop或者指定的隧道出口节点,间接的确定需要采用的隧道封装。这种方式下,入口节点的隧道选择更加灵活,且BGPUPDATE的通告也更简洁。假设在骨干网络中创建Slice ID 1虚拟拓扑用于高优先级的业务。
B2节点从骨干域外收到Prefix-D对应的路由通告时,继续通过BGP向骨干域的边界节点B1通告。B2节点并不关注所通告的Prefix的差异(即不管是针对Prefix-D还是其它的Prefix-D),仅需配置一个简单的本地策略,为继续通告的BGP UPDATE消息中添加隧道封装属性,包含两个隧道封装选项,即包含两个Tunnel Encapsulation TLV,具体如下:
第一个Tunnel Encapsulation TLV,Tunnel Type为Any-Encapsulation,包含Virtual Network Sub-TLV,其中,algorithm、Multi-Topology ID、Slice ID均设置为0;包含Flow Classification Sub-TLV以及IP Differentiated Service sub-sub-TLV,其中,[DS Begin,DS End]假设为[0,3]以表示低优先级的报文。
第二个Tunnel Encapsulation TLV,Tunnel Type为Any-Encapsulation,包含Virtual Network Sub-TLV,其中,algorithm和Multi-Topology ID设置为0,Slice ID设置为1,且I-Flag设置为1;包含Flow Classification Sub-TLV以及IP DifferentiatedService sub-sub-TLV,其中,[DS Begin,DS End]假设为[4,8]以表示高优先级的报文。
注意B2节点继续向B1节点通告BGP UPDATE消息时会将消息中的BGP Next-hop改为自己,一般总是设置为它与B1节点建立BGP session的地址,如Loopback-B2。
节点B1收到上述路由通告后,将维护至Prefix-D路由表项,在路由表项中包含隧道封装属性信息且具体包含上述两个隧道封装选项。由于Tunnel Type为Any-Encapsulation,则B1节点需要根据它感知到的骨干网络中具备的实际能力,去选择相应的隧道。比如,如果骨干网络是SR-MPLS网络,则它需要根据<Slice ID,Loopback-B2>作为键值在链路状态数据库中查找B2节点为相应Slice ID分配的Prefix SID,然后根据查找到的Prefix SID获取相应的MPLS SR-BE转发信息作为隧道封装信息;再比如,如果骨干网络是SRv6网络,则它需要根据<Slice ID,Loopback-B2>作为键值在链路状态数据库中查找B2节点为相应Slice ID分配的END SID,然后根据查找到的END SID获取相应的IPv6 SR-BE转发信息作为隧道封装信息。这些SR-MPLS Prefix SID或SRv6 END SID对应的转发表项中包含的转发信息,可以拷贝自共享的逻辑拓扑(比如多个Slice ID可以共享同一逻辑拓扑)中对应的转发表项。
对于I-Flag被设置为1的隧道封装属性,当该隧道封装属性作用于业务报文时,需要将Slice ID插入到封装的外层隧道头中。关于在IPv6 Header中插入Slice ID的方法可参考draft-filsfils-spring-srv6-stateless-slice-id-02,关于在MPLS标签栈中插入Slice ID的方法可参考draft-decraene-mpls-slid-encoded-entropy-label-id-01。
需要说明的是,上述所有实施例中,可以使用RFC8277定义的方法在通告Prefix-D时携带MPLS Label,因此B1节点上可能会针对Prefix-D创建相应的标签表项。后续从节点S向节点D发送的数据报文可能是标签报文,报文在到达B1节点时将匹配到相应的标签表项,再根据标签表项中包含的隧道封装属性,为报文封装合适的外层隧道,这与B1节点上创建路由表项时的处理是完全类似的。
此外,上述方法可应用于IPRAN/SPN,城域网/骨干,弥补了BGP路由通告时无法指定特定虚拟网络(特别是网络切片)的缺陷。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
在本实施例中还提供了一种消息发送装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的设备较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图12是本发明实施例的消息发送装置的结构框图,该装置包括:
发送模块122,用于向入口节点发送BGP更新消息,以向所述入口节点通告路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值、指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
通过上述模块,向入口节点发送包含指定的流分类特征值和指定的虚拟网络的路径信息的BGP更新消息,以向所述入口节点通告路由可达信息,进而入口节点可以向出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。解决了在网络运维中,依赖手工配置的切片引流所带来的不灵活等问题,进而通过出口节点向入口节点发送BGP更新消息,以向所述入口节点通告路由可达信息,弥补了BGP路由通告时无法指定特定虚拟网络的缺陷,不依赖静态配置的自动的切片引流,具有很好的灵活性。
需要说明的是,所述流分类特征值包括以下至少之一:IP报头的差分服务DS字段、IP报头的源IP地址、目的IP地址、源端口号、目的端口号、协议号、Ethernet帧头的源MAC、目的MAC地址、VLAN ID、优先级码点PCP。
进一步地,所述IP报头的差分服务DS字段至少包括以下之一:IPv4报头的业务类型TOS字段、IPv6报头的流量类别TC字段。
为了更好的理解,在本实施例中,所述流分类特征值,在网络切片场景中主要是IP报头的差分服务(Differentiated Services,简称为DS)字段,如IPv4报头的业务类型(Type of Service,简称为TOS)字段或IPv6报头的流量类别(Traffic Class,简称为TC)字段,除此之外,在其它场景中,流分类特征值也可以是IP报头的源IP地址、目的IP地址、源端口号、目的端口号、协议号之一或它们的任意组合或与DS字段的任意组合,还可以是Ethernet帧头的源MAC、目的MAC、VLAN ID、优先级码点(Priority Code Point,简称为PCP)之一或它们的任意组合。
可选的,所述指定的虚拟网络的路径信息包括以下至少之一:指定IGP拓扑内至指定目的节点的路径、指定Flex-algo平面内至指定目的节点的路径、指定Slice ID对应的虚拟拓扑内至指定目的节点的路径、指定段标识SID的路径。
在本实施例中还提供了一种消息接收装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。图13是本发明实施例的消息接收装置的结构框图,该装置包括:
接收模块132,用于接收出口节点发送的BGP更新消息,以获取路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值,指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
通过上述模块,接收出口节点发送包含指定的流分类特征值和指定的虚拟网络的路径信息的BGP更新消息,以获取路由可达信息,进而入口节点可以向出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。解决了在网络运维中,依赖手工配置的切片引流所带来的不灵活等问题,进而通过入口节点接收出口节点发送BGP更新消息,以获得路由可达信息,弥补了BGP路由通告时无法指定特定虚拟网络的缺陷,不依赖静态配置的自动的切片引流,具有很好的灵活性。
需要说明的是,所述流分类特征值包括以下至少之一:IP报头的差分服务DS字段、IP报头的源IP地址、目的IP地址、源端口号、目的端口号、协议号、Ethernet帧头的源MAC、目的MAC地址、VLAN ID、优先级码点PCP。
进一步地,所述IP报头的差分服务DS字段至少包括以下之一:IPv4报头的业务类型TOS字段、IPv6报头的流量类别TC字段。
为了更好的理解,在本实施例中,所述流分类特征值,在网络切片场景中主要是IP报头的差分服务(Differentiated Services,简称为DS)字段,如IPv4报头的业务类型(Type of Service,简称为TOS)字段或IPv6报头的流量类别(Traffic Class,简称为TC)字段,除此之外,在其它场景中,流分类特征值也可以是IP报头的源IP地址、目的IP地址、源端口号、目的端口号、协议号之一或它们的任意组合或与DS字段的任意组合,还可以是Ethernet帧头的源MAC、目的MAC、VLAN ID、优先级码点(Priority Code Point,简称为PCP)之一或它们的任意组合。
可选的,所述指定的虚拟网络的路径信息包括以下至少之一:指定IGP拓扑内至指定目的节点的路径、指定Flex-algo平面内至指定目的节点的路径、指定Slice ID对应的虚拟拓扑内至指定目的节点的路径、指定段标识SID的路径。
需要说明的是,接收模块132还用于所述入口节点根据获取到的所述路由可达信息创建所述入口节点对应的路由表项或标签表项,其中,所述路由表项或标签表项包括:所述隧道封装属性。
在本实施例中,网络的入口节点收到上述路由可达信息后,创建所述入口节点对应的路由表项或标签表项,维护相应的路由表项或标签表项,在路由表项或标签表项中包含相应的隧道封装属性信息。需要说明的是,单个路由表项或标签表项中维护的隧道封装属性信息中,可以包含多个隧道封装选项,形如:<流分类特征值1,隧道1>,<流分类特征值2,隧道2>等等。
进一步地,接收模块132还用于所述入口节点确定所述流量匹配到所述路由表项或标签表项的情况下,获取所述流量的流分类特征,并将所述流量在所述流分类特征对应的所述指定的虚拟网络的路径信息上转发。
在本实施例中,网络入口节点从用户侧接收到流量时,若匹配到路由表项或标签表项且该路由表项或标签表项中包含有隧道封装属性信息,则进一步根据接收到的流量的流分类特征,将流量引导到指定的虚拟网络的转发路径上进行转发。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,通过出口节点向入口节点发送BGP更新消息,以向所述入口节点通告路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值、指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
或者执行以下步骤的计算机程序:
S1,通过入口节点接收出口节点发送的BGP更新消息,以获取路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值,指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,通过出口节点向入口节点发送BGP更新消息,以向所述入口节点通告路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值、指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
或者被设置为通过计算机程序执行以下步骤:
S1,通过入口节点接收出口节点发送的BGP更新消息,以获取路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值,指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何指定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种消息发送方法,其特征在于,包括:
通过出口节点向入口节点发送BGP更新消息,以向所述入口节点通告路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值、指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
2.根据权利要求1所述的方法,其特征在于,所述流分类特征值包括以下至少之一:IP报头的差分服务DS字段、IP报头的源IP地址、目的IP地址、源端口号、目的端口号、协议号、Ethernet帧头的源MAC、目的MAC地址、VLAN ID、优先级码点PCP。
3.根据权利要求2所述的方法,其特征在于,所述IP报头的差分服务DS字段至少包括以下之一:IPv4报头的业务类型TOS字段、IPv6报头的流量类别TC字段。
4.根据权利要求1所述的方法,其特征在于,所述指定的虚拟网络的路径信息包括以下至少之一:指定IGP拓扑内至指定目的节点的路径、指定Flex-algo平面内至指定目的节点的路径、指定Slice ID对应的虚拟拓扑内至指定目的节点的路径、指定段标识SID的路径。
5.一种消息接收方法,其特征在于,包括:
通过入口节点接收出口节点发送的BGP更新消息,以获取路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值,指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
6.根据权利要求5所述的方法,其特征在于,所述流分类特征值包括以下至少之一:IP报头的差分服务DS字段、IP报头的源IP地址、目的IP地址、源端口号、目的端口号、协议号、Ethernet帧头的源MAC、目的MAC地址、VLAN ID、优先级码点PCP。
7.根据权利要求6所述的方法,其特征在于,所述IP报头的差分服务DS字段至少包括以下之一:IPv4报头的业务类型TOS字段、IPv6报头的流量类别TC字段。
8.根据权利要求5所述的方法,其特征在于,所述指定的虚拟网络的路径信息包括以下至少之一:指定IGP拓扑内至指定目的节点的路径、指定Flex-algo平面内至指定目的节点的路径、指定SliceID对应的虚拟拓扑内至指定目的节点的路径、指定段标识SID的路径。
9.根据权利要求5所述的方法,其特征在于,通过所述入口节点接收出口节点发送的BGP更新消息,以获取路由可达信息之后,所述方法还包括:
所述入口节点根据获取到的所述路由可达信息创建所述入口节点对应的路由表项或标签表项,其中,所述路由表项或所述标签表项包括:所述隧道封装属性。
10.根据权利要求9所述的方法,其特征在于,所述入口节点根据获取到的所述路由可达信息创建所述入口节点对应的路由表项或所述标签表项之后,所述方法还包括:
所述入口节点确定所述流量匹配到所述路由表项或所述标签表项的情况下,获取所述流量的流分类特征,并将所述流量在所述流分类特征对应的所述指定的虚拟网络的路径信息上转发。
11.一种消息发送装置,其特征在于,包括:
发送模块,用于向入口节点发送BGP更新消息,以向所述入口节点通告路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值、指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
12.一种消息接收装置,其特征在于,包括:
接收模块,用于接收出口节点发送的BGP更新消息,以获取路由可达信息,其中,所述BGP更新消息包括:隧道封装属性,所述隧道封装属性包括:一个或多个隧道封装信息,所述隧道封装信息至少包括以下之一:指定的流分类特征值、指定的虚拟网络的路径信息,所述隧道封装信息用于指示所述入口节点将向所述出口节点发送的具有指定的流分类特征值的流量映射到指定的虚拟网络的路径。
13.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至4任一项中所述的方法,或权利要求5-10任一项所述的方法。
14.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至4任一项中所述的方法,或权利要求5-10任一项所述的方法。
CN202110469912.3A 2021-04-28 2021-04-28 消息发送方法及装置、消息接收方法及装置、存储介质 Pending CN115250262A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110469912.3A CN115250262A (zh) 2021-04-28 2021-04-28 消息发送方法及装置、消息接收方法及装置、存储介质
PCT/CN2022/070343 WO2022227690A1 (zh) 2021-04-28 2022-01-05 消息发送方法及装置、消息接收方法及装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110469912.3A CN115250262A (zh) 2021-04-28 2021-04-28 消息发送方法及装置、消息接收方法及装置、存储介质

Publications (1)

Publication Number Publication Date
CN115250262A true CN115250262A (zh) 2022-10-28

Family

ID=83696992

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110469912.3A Pending CN115250262A (zh) 2021-04-28 2021-04-28 消息发送方法及装置、消息接收方法及装置、存储介质

Country Status (2)

Country Link
CN (1) CN115250262A (zh)
WO (1) WO2022227690A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117338B2 (en) * 2007-01-17 2012-02-14 Rockstar Bidco, LP Border gateway protocol procedures for multi-protocol label switching and layer-2 virtual private networks using Ethernet-based tunnels
US9634936B2 (en) * 2014-06-30 2017-04-25 Juniper Networks, Inc. Service chaining across multiple networks
US11277338B2 (en) * 2016-09-26 2022-03-15 Juniper Networks, Inc. Distributing service function chain data and service function instance data in a network
CN112291147A (zh) * 2020-10-15 2021-01-29 北京直真科技股份有限公司 一种5g业务动态智能sr隧道应用方法

Also Published As

Publication number Publication date
WO2022227690A1 (zh) 2022-11-03

Similar Documents

Publication Publication Date Title
US10757008B2 (en) Flow specification protocol-based communications method, device, and system
US20220200893A1 (en) Data Transmission Control Method and Apparatus
CN110912795B (zh) 一种传输控制方法、节点、网络系统及存储介质
CN107968750B (zh) 报文传输方法、装置及节点
US11855877B2 (en) Information management method, apparatus, and system
US8467411B1 (en) Service-specific forwarding in an LDP-RSVP hybrid network
WO2016115823A1 (zh) 标签构造以及标签报文转发方法及装置
EP3490201B1 (en) Method, device and system for information synchronization
US20100284305A1 (en) Setting up a virtual private network
US11671352B2 (en) Message sending method, binding relationship advertising method, apparatus, and storage medium
CN108270673A (zh) 报文发送方法、装置以及系统
CN112491706A (zh) 数据报文的处理方法及装置、存储介质、电子装置
EP4336781A1 (en) Message processing method and related device
CN115250262A (zh) 消息发送方法及装置、消息接收方法及装置、存储介质
CN116112416A (zh) 报文转发方法、电子设备及存储介质
WO2022042610A1 (zh) 信息处理方法、网络控制器、节点及计算机可读存储介质
WO2022222582A1 (zh) 一种报文处理方法、装置、存储介质及电子装置
WO2024027378A1 (zh) 数据传输方法、装置、网络设备及存储介质
CN116805930A (zh) Bgp路由的发送方法、装置、存储介质及电子装置
CN117354234A (zh) 路由选择方法、网络设备、系统、计算机程序产品及介质
CN116032817A (zh) BGP-intent路由的接收方法和BGP-intent路由的通告方法
CN117014356A (zh) 路由通告消息的处理方法、装置、存储介质及电子装置
CN115412399A (zh) 数据转发方法、装置、存储介质和电子装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination