CN114513457A - Bgp流规则路由的发布方法、网络设备及存储介质 - Google Patents
Bgp流规则路由的发布方法、网络设备及存储介质 Download PDFInfo
- Publication number
- CN114513457A CN114513457A CN202011172206.4A CN202011172206A CN114513457A CN 114513457 A CN114513457 A CN 114513457A CN 202011172206 A CN202011172206 A CN 202011172206A CN 114513457 A CN114513457 A CN 114513457A
- Authority
- CN
- China
- Prior art keywords
- mpls
- label
- flow rule
- header
- layer
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种BGP流规则路由的发布方法、网络设备及存储介质,属于通信技术领域。本申请提供了一种新的BGP flow对MPLS报文的支持方式,通过新定义一种隧道类型来支持MPLS报文,并针对MPLS报文的格式细化了BGP流规则路由中的流规则,基于外层流规则与MPLS报文的外层MAC头进行匹配,基于隧道头流规则与MPLS报文的标签栈进行匹配,基于内层流规则与MPLS报文的内层MAC头、IP头、传输层协议头等进行匹配,网络设备能够利用BGP流规则路由分别对MPLS报文的各个部分进行匹配,从而提高了对MPLS报文匹配的精确性。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种BGP流规则路由的发布方法、网络设备及存储介质。
背景技术
边界网关协议流规则(border gateway protocol flow specification,简称为BGP flow specification或BGP flowspec)路由是一种包含了一类新的BGP网络层可达信息类型和扩展团体属性的BGP路由。当网络设备通过发布BGP流规则路由,从而将BGP流规则路由传递给BGP flow specification对等体。BGP flow specification对等体会将收到BGP流规则路由中优选的路由转换为转发层面的流量控制策略,通过对收到的报文与流量控制策略进行匹配,当匹配成功时执行流量控制策略中指定的动作,从而达到控制攻击流量的目的。
目前,BGP流规则路由还没有细化对多协议标签交换(multi-protocol labelswitching,MPLS)报文匹配的具体方式,导致利用BGP流规则路由对MPLS报文匹配的精确性不足。
发明内容
本申请实施例提供了一种BGP流规则路由的发布方法、网络设备及存储介质,能够提高MPLS报文匹配的精确性。所述技术方案如下。
第一方面,提供了一种BGP流规则路由的发布方法,在该方法中,网络设备生成BGP流规则(BGP flow specification)路由,所述BGP流规则路由包括隧道类型信息、外层流规则(outer flowspec)、隧道头流规则(tunnel header flowspec)以及内层流规则(innerflowspec),所述隧道类型信息用于指示隧道的类型为多协议标签交换MPLS,所述外层流规则用于与MPLS报文的外层媒体访问控制MAC头进行匹配,所述隧道头流规则用于与MPLS报文的标签栈进行匹配,所述内层流规则用于与MPLS报文的内层MAC头、IP头、传输层协议头中的至少一项进行匹配;所述网络设备发布所述BGP流规则路由。
以上提供了一种新的BGP flow对MPLS报文的支持方式,通过新定义一种隧道类型来支持MPLS报文,并针对MPLS报文的格式细化了BGP流规则路由中的流规则,基于外层流规则与MPLS报文的外层MAC头进行匹配,基于隧道头流规则与MPLS报文的标签栈进行匹配,基于内层流规则与MPLS报文的内层MAC头、IP头、传输层协议头等进行匹配,网络设备能够利用BGP流规则路由分别对MPLS报文的各个部分进行匹配,从而提高了对MPLS报文匹配的精确性。
在一种可能的实现中,所述隧道头流规则包括标签值,所述隧道头流规则中的标签值用于与所述标签栈中MPLS标签的标签值进行匹配。
通过以上可选方式,能够利用隧道头流规则中的标签值对MPLS报文中的标签值进行匹配,从而细化了MPLS报文中的标签值的匹配方式,有助于提高对MPLS报文匹配的精确性。
在一种可能的实现中,所述隧道头流规则中的标签值包括至少一组操作符和值,所述至少一组操作符和值用于指示匹配成功的MPLS标签的标签值的取值范围。
在一种可能的实现中,所述隧道头流规则中的标签值包括第一标签值或者第二标签值中的至少一项,所述第一标签值用于与所述标签栈中外层MPLS标签中的标签值进行匹配,所述第二标签值用于与所述标签栈中内层MPLS标签中的标签值进行匹配。
通过以上可选方式,能够利用隧道头流规则中的两种标签值分别对MPLS报文中外层标签值和内层标签值进行匹配,使得方案支持MPLS报文包含多个标签的场景,有助于提高对MPLS报文匹配的精确性。
在一种可能的实现中,所述隧道头流规则包括第一组件或者第二组件中的至少一项;所述第一组件包括第一类型信息以及所述第一标签值,所述第一类型信息用于标识所述第一组件携带所述第一标签值;所述第二组件包括第二类型信息以及所述第二标签值,所述第二类型信息用于标识所述第二组件携带所述第二标签值。
在一种可能的实现中,所述隧道头流规则包括流量等级TC,所述隧道头流规则中的TC用于与MPLS报文中MPLS标签的TC进行匹配。
通过以上可选方式,能够利用隧道头流规则中的TC对MPLS报文中的TC进行匹配,从而细化了MPLS报文中的TC的匹配方式,有助于提高对MPLS报文匹配的精确性。
在一种可能的实现中,所述隧道头流规则中的TC包括至少一组操作符和值,所述至少一组操作符和值用于指示匹配成功的MPLS标签的TC的取值范围。
在一种可能的实现中,所述隧道头流规则中的TC包括第一TC或者第二TC中的至少一项,所述第一TC用于与MPLS报文中外层MPLS标签中的TC进行匹配,所述第二TC用于与MPLS报文中内层MPLS标签中的TC进行匹配。
在一种可能的实现中,所述隧道头流规则包括第三组件或者第四组件中的至少一项;所述第三组件包括第三类型信息以及所述第一TC,所述第三类型信息用于标识所述第三组件携带所述第一TC;所述第四组件包括第四类型信息以及所述第二TC,所述第四类型信息用于标识所述第四组件携带所述第二TC。
在一种可能的实现中,所述隧道头流规则包括生存时间TTL,所述隧道头流规则中的TTL用于与MPLS报文中MPLS标签的TTL进行匹配。
通过以上可选方式,能够利用隧道头流规则中的TTL对MPLS报文中的TTL进行匹配,从而细化了MPLS报文中的TTL的匹配方式,有助于提高对MPLS报文匹配的精确性。
在一种可能的实现中,所述隧道头流规则中的TTL包括至少一组操作符和值,所述至少一组操作符和值用于指示匹配成功的MPLS标签的TTL的取值范围。
在一种可能的实现中,所述隧道头流规则中的TTL包括第一TTL或者第二TTL中的至少一项,所述第一TTL用于与MPLS报文中外层MPLS标签中的TTL进行匹配,所述第二TTL用于与MPLS报文中内层MPLS标签中的TTL进行匹配。
在一种可能的实现中,所述隧道头流规则包括第五组件或者第六组件中的至少一项;所述第五组件包括第五类型信息以及所述第一TTL,所述第五类型信息用于标识所述第五组件携带所述第一TTL;所述第六组件包括第六类型信息以及所述第二TTL,所述第六类型信息用于标识所述第六组件携带所述第二TTL。
在一种可能的实现中,所述BGP流规则路由携带在多协议可达网络层可达信息NLRI中,所述多协议可达NLRI包括所述BGP流规则路由以及第一地址族标识符AFI,所述第一AFI用于指示所述外层流规则为MAC头对应的流规则。
在一种可能的实现中,所述内层流规则包括第二AFI,所述第二AFI用于指示是否与MPLS报文的内层MAC头进行匹配。
在一种可能的实现中,所述内层流规则包括内层AFI字段,所述第二AFI为所述内层AFI字段携带的AFI。
在一种可能的实现中,所述内层流规则包括第三AFI,所述第三AFI用于指示是否与MPLS报文的IP头或者传输层协议头进行匹配。
在一种可能的实现中,所述内层流规则包括L3-AFI字段,所述第三AFI为所述L3-AFI字段携带的AFI。
在一种可能的实现中,所述第三AFI用于指示与MPLS报文的互联网协议第四版IPv4头进行匹配;或者,所述第三AFI用于指示与MPLS报文的互联网协议第六版IPv6头进行匹配;或者,所述第三AFI用于指示不与MPLS报文的IP头以及传输层协议头进行匹配。
在一种可能的实现中,所述BGP流规则路由还包括MPLS动作信息,所述MPLS动作信息用于指示对MPLS报文中MPLS标签执行的处理动作。
在一种可能的实现中,所述MPLS动作信息包括弹出标识、添加标识或者替换标识,所述弹出标识用于指示弹出MPLS报文中的MPLS标签,所述添加标识用于指示向MPLS报文添加MPLS标签,所述替换标识用于指示替换MPLS报文中的MPLS标签。
在一种可能的实现中,所述MPLS动作信息还包括目标MPLS标签,所述添加标识用于指示添加所述目标MPLS标签,所述替换标识用于指示将MPLS报文中的MPLS标签替换为所述目标MPLS标签。
在一种可能的实现中,所述弹出标识包括第一弹出标识或者第二弹出标识中的至少一项,所述第一弹出标识用于指示弹出外层MPLS标签,所述第二弹出标识用于指示弹出内层MPLS标签;所述添加标识包括第一添加标识以及第二添加标识,所述第一添加标识用于指示添加外层MPLS标签,所述第二添加标识用于指示添加内层MPLS标签;所述替换标识包括第一替换标识或者第二替换标识中的至少一项,所述第一替换标识用于指示替换外层MPLS标签,所述第二替换标识用于指示替换内层MPLS标签。
第二方面,提供了一种网络设备,该网络设备具有实现上述第一方面或第一方面任一种可选方式的功能。该网络设备包括至少一个单元,至少一个单元用于实现上述第一方面或第一方面任一种可选方式所提供的方法。
在一些实施例中,网络设备中的单元通过软件实现,网络设备中的单元是程序模块。在另一些实施例中,网络设备中的单元通过硬件或固件实现。第二方面提供的网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第三方面,提供了一种网络设备,该网络设备包括处理器和通信接口,该处理器用于执行指令,使得该网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法,所述通信接口用于接收或发送报文。第三方面提供的网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第四方面,提供了一种网络设备,该网络设备包括:主控板和接口板。主控板包括:第一处理器和第一存储器。接口板包括:第二处理器、第二存储器和接口卡。主控板和接口板耦合。
第一存储器可以用于存储程序代码,第一处理器用于调用第一存储器中的程序代码执行如下操作:生成BGP流规则路由,所述BGP流规则路由包括隧道类型信息、外层流规则、隧道头流规则以及内层流规则,所述隧道类型信息用于指示隧道的类型为多协议标签交换MPLS,所述外层流规则用于与MPLS报文的外层媒体访问控制MAC头进行匹配,所述隧道头流规则用于与MPLS报文的标签栈进行匹配,所述内层流规则用于与MPLS报文的内层MAC头、IP头、传输层协议头中的至少一项进行匹配。
第二存储器可以用于存储程序代码,第二处理器用于调用第二存储器中的程序代码,触发接口卡执行如下操作:发布所述BGP流规则路由。
在一种可能的实现方式中,主控板和接口板之间建立进程间通信协议(inter-process communication,IPC)通道,主控板和接口板之间通过IPC通道进行通信。
第五方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法。
第六方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。网络设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法。
第七方面,提供了一种芯片,当该芯片在网络设备上运行时,使得网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法。
附图说明
图1是本申请实施例提供的一种网络系统10的架构示意图;
图2是本申请实施例提供的一种报文格式的示意图;
图3是本申请实施例提供的一种BGP流规则路由的发布方法的流程图;
图4是本申请实施例提供的一种网络设备400的结构示意图;
图5是本申请实施例提供的一种网络设备600的结构示意图;
图6是本申请实施例提供的一种网络设备700的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面对本实施例涉及的一些术语概念进行介绍。
BGP流规则路由(BGP flow specification路由):包含了一类新的BGP网络层可达信息(network layer reachability information,NLRI)类型和扩展团体属性(extendedcommunity),通过这种新的网络层可达信息和扩展团体属性,BGP flow specification路由可以携带流量的匹配条件和流量匹配后执行的动作。
BGP flow specification对等体关系:建立在创建BGP flow specification路由的设备与网络入口设备之间,用于传递BGP flow specification路由。当BGP flowspecification对等体收到BGP flow specification路由后将优选的路由转换为转发层面的流量控制策略,达到控制攻击流量的目的。
下面对BGP flow在相关技术中面临的情况进行简单介绍。
在请求评论(request for comments,RFC,一系列以编号排定的文件)中RFC5575中定义了BGP流(BGP flow)的两种路由类型,即普通互联网协议第四版流规则(internetprotocol version 4flow specification,IPv4 flow specification)以及三层虚拟专用网络流规则(layer 3virtual private network flow specification,L3 VPN flowspecification)。在draft-ietf-idr-flow-spec-v6中增加了互联网协议第六版流规则(internet protocol version 6flow specification,IPv6 flow specification)与三层IPv6虚拟专用网络流规则(layer 3IPv6 VPN flow specification,L3 VPNv6 flowspecification)路由。在draft-ietf-idr-flowspec-l2vpn中增加了L2以太类型的路由。在draft-ietf-idr-flowspec-nvo3增加了隧道类型的路由,即虚拟扩展局域网(virtualextensible local area network,VXLAN)、VXLAN通用协议封装(VXLAN generic protocolencapsulation,VXLAN-GPE)、网络虚拟化GRE(network virtual GRE,NVGRE)、二层隧道协议-版本3(layer two tunneling protocol-version 3,L2TPv3)、通用路由封装(genericrouting encapsulation,GRE)与移动IP数据封装和隧道(internet protocol ininternet protocol,IP-in-IP)。在draft-ietf-idr-flowspec-mpls-match增加了MPLS标签路由类型。
在draft-ietf-idr-flowspec-mpls-match中,定义了两种匹配条件:标签值与实验(experimental,EXP)值,但是没有细化MPLS标签报文的格式,也没有对这些细化的MPLS标签报文做具体匹配。比如一般的标签报文可以是外二层头+标签+内二层头+载荷(payload),也可以是外二层头+标签+内二层头+互联网协议(internet protocol,IP)头+传输控制协议(transmission control protocol,TCP)/用户数据报协议(user datagramprotocol,UDP)头+载荷(payload),原草案只能粗略地对标签信息(标签值与EXP值)与IP头、TCP/UDP头信息进行匹配,不能对外二层头信息与内二层头信息进行匹配,也就不能对一个具体报文进行精确匹配。
而本实施例中通过提出一种新的BGP flow对标签报文的支持方式,并解决对MPLS报文的精确匹配问题。
下面介绍本申请实施例提供的系统运行环境。
附图1是本申请实施例提供的网络系统10的架构示意图。网络系统10包括R1、R2、R3以及R4。R1、R2、R3以及R4均是网络设备。网络设备例如为交换机或路由器。网络设备例如为物理设备或者虚拟化设备。
网络系统10在实施BGP流(BGP flow)时,工作原理例如是:R1与R2建立BGP flowspecification对等体。R2与R3建立BGP flow specification对等体。R3向R2发布BGP flowspecification路由。R2接收BGP flow specification路由,R2再将BGP flowspecification路由传递给R1。R1以及R2把BGP flow specification路由转化成流量控制策略,R1以及R2对匹配规则的流量进行控制。网络系统10通过传递以下描述的BGP流规则路由,有助于更精确地匹配和控制MPLS报文流。
下面对报文格式进行介绍。
请参考附图2,附图2是隧道流量的网络层可达信息(tunneled traffic flowspecNLRI)的格式示意图。附图2所示的隧道流量的网络层可达信息包括BGP流规则路由。附图2所示的隧道流量的网络层可达信息的格式定义可参考draft-ietf-idr-flowspec-nvo3。本实施例对附图2所示的隧道流量的路由格式,进行协议扩展,以支持对MPLS报文的精确匹配。
具体地,隧道流量的网络层可达信息包括隧道类型(tunnel type)字段、外层流规则(outer flowspec)字段、隧道头流规则(tunnel header flowspec)字段、可选内层流规则(optional inner flowspec)字段等,下面对这些字段携带的信息进行具体介绍。
一、隧道类型信息
隧道类型信息为隧道类型字段携带的type值。隧道类型信息用于指示MPLS。由于BGP flow specification路由包含隧道类型信息,能够指明在隧道流量的类型为MPLS报文流的情况下使用BGP flow specification路由。因此,通过新增一种隧道类型来支持MPLS报文,使得BGP flow specification在MPLS场景得到更好的应用。
二、外层流规则
外层流规则为外层流规则字段携带的信息。外层流规则用于与MPLS报文的外层媒体访问控制(media access control,MAC)头进行匹配。MAC头也称二层头、以太头或L2头。MPLS报文可以包括两个MAC头,分别称为外层MAC头(也称outer二层头)以及内层MAC头(也称inner二层头)。例如,外层MAC头位于MPLS报文中标签栈外层,内层MAC头位于MPLS报文中标签栈内层。换句话说,外层MAC头在标签栈之前,内层MAC头在标签栈之后。
外层流规则包括MAC层信息。例如,外层流规则包括以太网类型(ethernet type)、源MAC(source MAC)地址、目的MAC(destination MAC)地址、目的服务访问点(destinationservice access point,DSAP)、源服务访问点(source service access point,SSAP)、虚拟局域网(virtual local area network,VLAN)标识(identity,ID)、VLAN优先权代码点(priority code point,PCP)等15种MAC层信息。外层流规则通过包含15种MAC层信息,能够分别与MAC头中的15种字段匹配。其中,外层流规则的具体内容可参考draft-ietf-idr-flowspec-l2vpn的2.1。在一些实施例中,外层流规则包含的MAC层信息单独出现;在另一些实施例中,外层流规则包含的MAC层信息组合出现,即外层流规则同时包含多种MAC层信息。
外层流规则的编码方式包括而不限于以下两种方式。
编码方式一、采用成对出现的操作符(operator,op)和值(value)编码。
在采用编码方式一时,外层流规则包括至少一组操作符和值([op,value])。至少一组操作符和值用于指示匹配成功的外层MAC头的MAC层信息的取值范围。具体地,外层流规则的编码格式为<type(1octet),length(1octet),[op,value]+>。其中,type的中文翻译是类型,octet的中文翻译是字节,length的中文翻译是长度。+表示[op,value]可以出现多个。例如,编码方式一应用在匹配ethernet type的场景。具体地,对于ethernet type,根据长度和外层流规则中的[op,value]匹配,其中操作符的定义见RFC5575bis的4.2.1.1,可以是大于、小于、等于或者大于等于组合,这样匹配的是ethernet type的一个范围。
编码方式二、采用前缀长度和前缀编码。
在采用编码方式二时,外层流规则包括前缀长度(prefix length)和前缀(prefix)。具体地,外层流规则的编码格式为<type(1octet),MAC prefix length(1octet),MAC prefix>。编码方式二适用于匹配MAC地址(例如源MAC地址或目的MAC地址)的场景。例如,外层流规则中前缀长度是24,前缀是0000-1200-0000,那么匹配的是MAC地址的一个范围,即前缀是0000-12所有MAC地址。
在一些实施例中,当外层流规则包含的MAC层信息组合出现时,外层流规则中的多种MAC层信息都匹配时匹配成功。例如,外层流规则携带的内容是源MAC地址和目的MAC地址,外层流规则的格式是<type(1octet),MAC prefix length(1octet),MAC prefix>,当源MAC地址属于外层流规则指定的范围且目的MAC地址属于外层流规则指定的范围时,匹配成功。
本实施例对外层流规则用于与外层MAC头中哪个字段进行匹配不做限定,可以根据实际需要确定具体要外层MAC头中匹配哪些字段。在一些实施例中,外层流规则用于与MPLS报文的外层MAC头中的全部字段进行匹配。在另一些实施例中,外层流规则用于与MPLS报文的外层MAC头中的部分字段进行匹配。其中,如何确定与外层MAC头中哪个字段进行匹配包括多种方式。在一些实施例中,通过手工配置的方式确定外层MAC头中的具体匹配字段。在另一些实施例中,通过网络设备自动确定外层MAC头中的具体匹配字段。例如,网络设备接收到攻击报文,并根据攻击报文的特征确定具体匹配字段。
在一些实施例中,通过地址族标识符(address family identifier,AFI)指示外层流规则要匹配MAC头。其中,本实施例涉及三种AFI,这三种AFI分别携带在不同的AFI字段中。为了区分描述,下文将三种AFI分别称为第一AFI、第二AFI以及第三AFI。按照报文结构的角度来看,第一AFI在三种AFI中位于报文最外层,第二AFI其次,第三AFI在三种AFI中位于报文最内层。比如,第一AFI在NLRI之外,第二AFI携带在内层AFI(inner AFI)字段中,第三AFI携带在内层流规则(inner flowspec)中的三层AFI(layer 3-AFI,L3-AFI)字段中。
第一AFI为外层流规则对应的AFI。第一AFI用于指示外层流规则为MAC头对应的流规则。例如,第一AFI为6。具体地,MAC头对应的AFI是6,互联网协议第四版(internetprotocol version 4,IPv4)头对应的AFI是1,互联网协议第六版(internet protocolversion 6,IPv6)头对应的AFI是2。由于MPLS报文的格式是MAC头+标签头+以太头或者IP头,最外层是MAC头,所以通过取值为6的AFI(即第一AFI),能够标志外层流规则包含的信息属于MAC层信息,外层流规则是要去匹配MAC头。其中,IP头和三层(layer 3,L3)头这两个术语在本实施例中可互换使用。传输层协议头和四层(layer 4,L4)头这两个术语在本实施例中可互换使用。MAC头和二层(layer 2,L2)头这两个术语在本实施例中可互换使用。
在一些实施例中,第一AFI为多协议可达NLRI(multi-protocol reachable NLRI,MP_REACH_NLRI)中的地址族标识符(address family identifier)字段携带的信息。具体地,附图2所示的BGP流规则路由携带在MP_REACH_NLRI中。整个MP_REACH_NLRI包含三个AFI字段。参见下表1,表1是MP_REACH_NLRI的格式示意,MP_REACH_NLRI包括2字节的addressfamily identifier字段、1字节的后续地址族标识符(subsequent address familyidentifier)字段、1字节的下一跳网络地址的长度(length of next hop networkaddress)字段、1字节的保留(reserved)字段、长度可变(variable)的网络层可达信息(network layer reachability information,NLRI)字段等。附图2所示的隧道流量的网络层可达信息位于表1中的长度可变的network layer reachability information字段。表1中的address family identifier字段是三个AFI字段中最外层的字段,第一AFI携带在表1中的address family identifier字段。
表1
address family identifier(2字节) |
subsequent address family identifier(1字节) |
length of next hop network address(1字节) |
network address of next hop(可变) |
reserved(1字节) |
network layer reachability information(可变) |
其中,MP_REACH_NLRI为RFC4670新增的路径属性。MP_REACH_NLRI的定义可参考RFC4760。
三、隧道头流规则
隧道头流规则为隧道头流规则字段携带的信息。隧道头流规则用于与MPLS报文的标签栈进行匹配。MPLS报文的标签栈包括至少一个MPLS标签。一个MPLS标签包括标签值(label)字段、流量等级(traffic control,TC)字段、生存时间(time to live,TTL)字段等字段。本实施例中,隧道头流规则包含MPLS标签中各个字段对应的信息,从而精确地与MPLS标签中各个字段进行匹配。具体地,隧道头流规则包含标签值、TC以及TTL,下面通过(3.1)至(3.3)进行介绍。
(3.1)标签值
隧道头流规则中的标签值用于与MPLS报文的标签栈中MPLS标签的标签值进行匹配。在一些实施例中,隧道头流规则中的标签值包括至少一组操作符和值,至少一组操作符和值用于指示匹配成功的MPLS标签的标签值的取值范围。具体地,隧道头流规则中的标签值采用的编码格式为<type(1octet),length(1octet),[op,value]+>。
其中,[op,value]表示一组操作符和值,op表示操作符,value表示值。[op,value]可以指定一个标签值的范围(比如大于5000,小于50000),如果MPLS报文中MPLS标签的标签值在这个范围中则匹配成功。op编码如RFC5575的第4章,value字段编码为3个字节(24个比特)。其中,value字段的24个比特中20个比特为标签值,另外4个比特全部为0。可选地,value字段的24个比特中前4个比特全0,后20比特为标签值。
在一些实施例中,隧道头流规则包含多个标签值,以便分别与不同MPLS标签中的标签值进行匹配。例如,隧道头流规则中的标签值包括第一标签值或者第二标签值中的至少一项。第一标签值用于与标签栈中外层MPLS标签中的标签值(outer label)进行匹配。第二标签值用于与标签栈中内层MPLS标签中的标签值(inner label)进行匹配。
具体地,MPLS报文的标签栈中可以包括多个MPLS标签。以MPLS报文包括两层MPLS标签为例,MPLS报文整体的格式为外层MAC头+外层MPLS标签+内层MPLS标签+内层MAC头(或者IP头)。外层MPLS标签与外层MAC头相邻。换句话说,外层MPLS标签是指紧跟在外层MAC头之后的MPLS标签。外层MPLS标签也可以称为最外层MPLS标签。内层MPLS标签在外层MPLS标签之后。内层MPLS标签与外层MAC头之间存在至少一个MPLS标签。
第二标签值可以用于与外层MPLS标签之后的任一内层标签进行匹配。在一些实施例中,第二标签值用于与标签栈中次外层MPLS标签中的标签值进行匹配。其中,次外层标签是跟在最外层MPLS标签后的一层标签。
在一些实施例中,通过新增至少一种类型的隧道头流规则组件(tunnel headerflowspec component)来携带隧道头流规则的具体内容。一个tunnel header flowspeccomponent包括类型、长度、值等部分。为了区分描述,下面将不同类型的tunnel headerflowspec component分别称为第一组件(component)、第二组件、第三组件、第四组件、第五组件以及第六组件,将第一组件、第二组件、第三组件、第四组件、第五组件以及第六组件的类型(type值)分别称为第一类型信息、第二类型信息、第三类型信息、第四类型信息、第五类型信息以及第六类型信息。
第一组件是指携带第一标签值(outer label)的tunnel header flowspeccomponent。第一组件包括第一类型信息以及第一标签值。第一类型信息用于标识第一组件携带第一标签值。例如,第一组件为类型6-外层标签(type6-outer label)组件。第一类型信息为type6-outer label组件中的type值。当然,type6仅是示意性的称谓,本实施例不限定携带外层标签值的component的类型必须为6。通过新增第一组件,能够用来匹配MPLS报文的最外层标签值。
第二组件是指携带第二标签值(inner label)的tunnel header flowspeccomponent。第二组件包括第二类型信息以及第二标签值,第二类型信息用于标识第二组件携带第二标签值。例如,第二组件为类型7-内层标签(type7-inner label)组件。第二类型信息为type7-inner label组件中的type值。当然,type7仅是示意性的称谓,本实施例不限定携带内层标签值的component的类型必须为7。通过新增第二组件,能够用来匹配MPLS报文的内层标签值(如次外层标签值)。
(3.2)TC
隧道头流规则中的TC用于与MPLS报文的标签栈中MPLS标签的TC进行匹配。在一些实施例中,隧道头流规则中的TC包括至少一组操作符和值,至少一组操作符和值用于指示匹配成功的MPLS标签的TC的取值范围。具体地,隧道头流规则中的TC采用的编码格式为<type(1octet),length(1octet),[op,value]+>。
其中,[op,value]表示一组操作符和值,op表示操作符,value表示值。[op,value]可以指定一个TC的范围,如果MPLS报文中MPLS标签的TC在这个范围中则匹配成功。op编码如RFC5575的第4章,value字段编码为1个字节(8个比特)。其中,value字段的8个比特中3个比特为TC,另外5个比特全0。可选地,[op,value]部分中前5个比特全0,后3比特为TC。
在一些实施例中,隧道头流规则包含多个TC,以便分别与不同MPLS标签中的TC进行匹配。例如,隧道头流规则中的TC包括第一TC或者第二TC中的至少一项。第一TC用于与标签栈中外层MPLS标签中的TC(outer TC)进行匹配。第二TC用于与标签栈中内层MPLS标签中的TC(inner TC)进行匹配。
其中,第二TC可以用于与外层MPLS标签之后的任一内层标签进行匹配。在一些实施例中,第二TC用于与标签栈中次外层MPLS标签中的TC进行匹配。
在一些实施例中,通过新增至少一种类型的tunnel header flowspec component来携带TC。具体地,隧道头流规则包括第三组件或者第四组件中的至少一项。
第三组件是指携带第一TC(outer TC)的tunnel header flowspec component。第三组件包括第三类型信息以及第一TC。第三类型信息用于标识第三组件携带第一TC。例如,第三组件为type8-outer TC1组件。第三类型信息为类型8-外层TC1(type8-outer TC)1组件中的type值。当然,type8仅是示意性的称谓,本实施例不限定携带外层标签中TC值的component的类型必须为6。通过新增第三组件,能够用来匹配MPLS报文的最外层标签中的TC值。
第四组件是指携带第二TC(inner TC)的tunnel header flowspec component。第四组件包括第四类型信息以及第二TC,第四类型信息用于标识第四组件携带第二TC。例如,第四组件为type9-inner TC2组件。第四类型信息为类型9-内层TC2(type9-inner TC2)组件中的type值。当然,type9仅是示意性的称谓,本实施例不限定携带内层标签中TC值的component的类型必须为9。通过新增第四组件,能够用来匹配MPLS报文的内层标签(如次外层标签)中的TC值。
(3.3)TTL
隧道头流规则中的TTL用于与MPLS报文的标签栈中MPLS标签的TTL进行匹配。在一些实施例中,隧道头流规则中的TTL包括至少一组操作符和值,至少一组操作符和值用于指示匹配成功的MPLS标签的TTL的取值范围。具体地,隧道头流规则中的TTL采用的编码格式为<type(1octet),length(1octet),[op,value]+>。
其中,[op,value]表示一组操作符和值,op表示操作符,value表示值。[op,value]可以指定一个TTL的范围,如果MPLS报文中MPLS标签的TTL在这个范围中则匹配成功。op编码如RFC5575的第4章,value字段编码为1个字节(8个比特)。其中,value字段包括隧道头流规则中的TTL。
在一些实施例中,隧道头流规则包含多个TTL,该多个TTL分别用于与不同MPLS标签中的TTL进行匹配。例如,隧道头流规则中的TTL包括第一TTL或者第二TTL中的至少一项。第一TTL用于与标签栈中外层MPLS标签中的TTL(outer TTL)进行匹配。第二TTL用于与标签栈中内层MPLS标签中的TTL(inner TTL)进行匹配。
其中,第二TTL可以用于与外层MPLS标签之后的任一内层标签进行匹配。在一些实施例中,第二TTL用于与标签栈中次外层MPLS标签中的TTL进行匹配。
在一些实施例中,通过新增至少一种类型的tunnel header flowspec component来携带隧道头流规则中的TTL。结合以上面描述的第一TTL以及第二TTL,隧道头流规则包括第五组件或者第六组件中的至少一项。
第五组件是指携带第一TTL(outer TTL)的tunnel header flowspec component。第五组件包括第五类型信息以及第一TTL。第五类型信息用于标识第五组件携带第一TTL。例如,第五组件为类型10-外层TTL(type10-outer TTL)组件。第五类型信息为type10-outer TTL组件中的type值。当然,type10仅是示意性的称谓,本实施例不限定携带外层标签中TTL值的component的类型必须为10。通过新增第五组件,能够用来匹配MPLS报文的外层TTL值(如最外层TTL值)。
第六组件是指携带第二TTL(inner TTL)的tunnel header flowspec component。第六组件包括第六类型信息以及第二TTL,第六类型信息用于标识第六组件携带第二TTL。例如,第六组件为类型11-内层TTL(type11-inner TTL)组件。当然,type11仅是示意性的称谓,本实施例不限定携带内层标签中TTL值的component的类型必须为11。通过新增第六组件,能够用来匹配MPLS报文的内层TTL值(如次外层TTL值)。
以上通过第一组件、第二组件至第六组件,描述了本实施例扩展的六种tunnelheader flowspec component,可以根据实际需要确定匹配六种tunnel header flowspeccomponent中的哪些类型。
四、内层流规则
内层流规则为内层流规则字段携带的信息。内层流规则用于与MPLS报文的内层MAC头、IP头、传输层协议头中的至少一项进行匹配。具体地,参考下表2,表2示出了L2的流规则NLRI的格式。内层流规则包括2或3字节的总长度(total-length)字段、2字节的L3-AFI字段、2或3字节的L2长度(L2-length)字段、长度可变的NLRI值(NLRI-value)字段。表2中各个字段的含义请参考draft-ietf-idr-flowspec-l2vpn-15。
表2
total-length(0xnn or 0xfnnn(2或3字节) |
L3-AFI(2字节) |
L2-length(0xnn or 0xfnnn(2或3字节) |
NLRI-value(可变) |
内层流规则包括MAC层信息、IP层信息、传输层信息中的至少一项。也即是,内层流规则的内容可以包括MAC层信息、IP层信息、传输层信息中的一者,也可以同时包括MAC层信息、IP层信息、传输层信息中的两项或两项以上。其中,在内层流规则包括MAC层信息的情况下,内层流规则中的MAC层信息的类型与外层流规则的类似,例如,内层流规则同样可以包含源MAC地址、目的MAC地址等15种类型,具体见draft-ietf-idr-flowspec-l2vpn中的2.1。在内层流规则包括IP层信息的情况下,内层流规则中的IP层信息包括IPv4信息或者IPv6信息中的至少一项。例如,内层流规则中的IP层信息包括目的前缀(destination prefix)、源前缀(source prefix)、IP协议(IP protocol)等。在内层流规则包括传输层信息的情况下,内层流规则中的传输层信息包括TCP信息或者UDP信息中的至少一项。例如,内层流规则中的传输层信息包括目的端口(destination port)、源端口(source port)、TCP标志(TCPflags)等。
内层流规则指定匹配成功的内层MAC头的MAC层信息的取值范围。内层流规则的匹配方式与外层流规则的匹配方式同理。具体地,内层流规则同样可以采用上述编码方式一,即采用成对出现的操作符和值编码;或者,内层流规则采用上述编码方式二,即采用前缀长度和前缀编码。例如,在匹配MAC地址的场景下,内层流规则采用编码方式二,内层流规则包括<type(1octet),MAC prefix length(1octet),MAC prefix>,从而指定匹配成功的MAC前缀(MAC prefix)的取值范围。
在一些实施例中,通过内层流规则包含的AFI标识内层流规则中的信息是MAC层信息还是IP层信息。例如,内层流规则包括第二AFI,第二AFI指示是否与MPLS报文的内层MAC头进行匹配。例如,如果第二AFI的取值为6,则指示要与MPLS报文的内层MAC头进行匹配(即需要过滤内层MAC头信息)。如果第二AFI的取值为1或者2,则指示不与MPLS报文的内层MAC头进行匹配(即不过滤内层MAC头信息),而是与MPLS报文的IPv4头以及传输层协议头进行匹配,或者与MPLS报文的IPv6头以及传输层协议头进行匹配(即直接过滤IPv4头、IPv6头和传输层协议头)。在一些实施例中,第二AFI的携带位置为inner AFI字段。换句话说,第二AFI为inner AFI字段携带的AFI。
在内层流规则包含MAC层信息以及IP层信息的情况下,在一些实施例中,还通过内层流规则包含的AFI指示MAC层信息之后是IPv4信息还是IPv6信息。具体地,内层流规则包括第三AFI。第三AFI用于指示是否与MPLS报文的IP头或者传输层协议头进行匹配。在一些实施例中,第三AFI的携带位置为L3-AFI字段。具体地,内层流规则包括L3-AFI字段,第三AFI为L3-AFI字段携带的AFI。换句话说,第三AFI为L3-AFI字段的值。
在一些实施例中,第三AFI用于指示使用内层流规则与MPLS报文的IPv4头进行匹配;或者,第三AFI用于指示使用内层流规则与MPLS报文的IPv6头进行匹配;或者,第三AFI用于指示不与MPLS报文的IP头以及传输层协议头进行匹配。以第三AFI的携带位置为L3-AFI字段为例,如果L3-AFI字段的值为0时,表示不过滤IP层信息或者传输层协议信息。如果L3-AFI字段的值为1时,表示内层流规则要匹配的是IPv4信息;如果L3-AFI字段的值为2时,表示内层流规则要匹配的是IPv6信息。然后再根据NLRI-value中对应的type值匹配MPLS报文,因为IPv4与IPv6分别定义了各自的匹配的type值。
内层流规则中的内层流规则可变(inner flowspec variable)字段用于匹配MPLS报文中标签栈之后的字段。inner flowspec variable字段的具体内容包括多种情况。下面结合两种场景为例进行说明。
场景一、L2 VPN
在L2 VPN场景下,MPLS报文的报文结构可简化表示为外层MAC头+标签栈+内层MAC头+IP头+payload。其中,payload包括传输层协议头以及应用层信息。相应地,innerflowspec variable字段包含MAC层信息,inner flowspec variable字段用于匹配标签栈之后的内层MAC头;或者,inner flowspec variable字段包含MAC层信息和IP层信息,innerflowspec variable字段用于匹配标签栈之后的内层MAC头以及IP头;或者,innerflowspec variable字段包含MAC层信息、IP层信息和传输层信息,inner flowspecvariable字段用于匹配标签栈之后的内层MAC头、IP头以及传输层协议头。
场景二、L3 VPN
在L3 VPN场景下,MPLS报文的报文结构可简化表示为外层MAC头+标签栈+IP头+payload。其中,payload包括传输层协议头以及应用层信息。相应地,inner flowspecvariable字段包含IP层信息,inner flowspec variable字段用于匹配标签栈之后的IP头;或者,inner flowspec variable字段包含IP层信息和传输层信息,inner flowspecvariable字段用于匹配标签栈之后的IP头以及传输层协议头。
本实施例对外层流规则、隧道头流规则以及内层流规则分别用于与MPLS报文中哪个字段进行匹配不做限定,可以根据实际需要确定具体要MPLS报文中匹配哪些字段。在一些实施例中,外层流规则、隧道头流规则或者内层流规则用于与MPLS报文的MPLS报文中的全部字段进行匹配。在另一些实施例中,外层流规则、隧道头流规则或者内层流规则用于与MPLS报文的MPLS报文中的部分字段进行匹配。其中,如何确定与MPLS报文中哪个字段进行匹配包括多种方式。在一些实施例中,通过手工配置的方式确定MPLS报文中的具体匹配字段。在另一些实施例中,通过网络设备自动确定MPLS报文中的具体匹配字段。例如,网络设备接收到攻击报文,并根据攻击报文的特征确定具体匹配字段。
以上通过网络层可达信息对BGP流规则路由中的匹配条件进行了说明,下面对BGP流规则路由中的处理动作进行说明。其中,在满足以上介绍的匹配条件的情况下,执行以下介绍的处理动作。
五、MPLS动作(MPLS-action)
本实施例为MPLS报文新增了一种类型的处理动作,在此称为MPLS动作。MPLS动作为对MPLS报文中MPLS标签执行的处理动作。例如,MPLS动作包括而不限于弹出MPLS报文中的MPLS标签、向MPLS报文添加MPLS标签、替换MPLS报文中的MPLS标签等。
在一些实施例中,BGP流规则路由包括MPLS动作信息,MPLS动作信息用于指示MPLS动作。MPLS动作信息的携带位置在扩展团体属性中。例如,请参考下表3,表3对MPLS动作信息的格式的举例说明。其中,MPLS动作信息的类型值待定义(to be defined,TBD)。MPLS动作信息对应的扩展团体属性为MPLS动作。MPLS动作信息的编码方式为位掩码。
表3
类型 | 扩展团体属性 | 编码(encoding) |
TBD | MPLS-action | 位掩码(bitmask) |
在一些实施例中,MPLS动作信息包括弹出标识、添加标识或者替换标识,通过弹出标识、添加标识以及替换标识分别指示对MPLS标签的弹出动作、添加动作以及替换动作。
弹出标识用于指示弹出MPLS报文中的MPLS标签。在一个示例中,BGP流规则路由包括弹出(pop,PO)字段,弹出标识为PO字段的值。例如,当PO字段的值为1时表示弹出MPLS标签,当PO字段的值为0时表示不弹出MPLS标签。在这个例子中,弹出标识为PO字段携带的1。
添加标识用于指示向MPLS报文添加MPLS标签。在一个示例中,BGP流规则路由包括添加(push,PU)字段,添加标识为PU字段的值。例如,当PU字段的值为1时表示添加MPLS标签,当PU字段的值为0时表示不添加MPLS标签,在这个例子中,添加标识为PU字段携带的1。
替换标识用于指示替换MPLS报文中的MPLS标签。在一个示例中,BGP流规则路由包括交换(switch,SW)字段,替换标识为SW字段的值。例如,当SW字段的值为1时表示替换MPLS标签,当SW字段的值为0时表示不替换MPLS标签,替换标识即SW字段携带的1。
在一些实施例中,还通过MPLS动作信息指定添加哪个MPLS标签或者用哪个MPLS标签替换原有标签。具体地,MPLS动作信息还包括目标MPLS标签,添加标识具体用于指示添加目标MPLS标签,替换标识具体用于指示将MPLS报文中的MPLS标签替换为目标MPLS标签,从而通过添加或者替换目标MPLS标签来控制报文的转发。在一些实施例中,MPLS动作信息包括MPLS label字段、流量等级(traffic Class,TC)字段、S字段以及TTL字段,MPLS label字段携带目标MPLS标签的标签值,TC字段携带目标MPLS标签的TC,S字段携带目标MPLS标签的标志位(S),TTL字段携带目标MPLS标签的TTL。其中,MPLS标签中的TC字段又称为Exp字段。MPLS标签中的S字段为长度为1比特的标签栈底标识位。
在一些实施例中,在MPLS报文包含多个MPLS标签的情况下,通过MPLS动作信息分别指示对各个MPLS标签执行的MPLS动作。具体地,通过MPLS动作信息分别指示对外层MPLS标签以及内层MPLS标签执行的MPLS动作。
例如,以上介绍的弹出标识包括第一弹出标识或者第二弹出标识中的至少一项。第一弹出标识用于指示弹出外层MPLS标签,第二弹出标识用于指示弹出内层MPLS标签。
例如,以上介绍的添加标识为第一添加标识;或者,添加标识包括第一添加标识以及第二添加标识。第一添加标识用于指示添加外层MPLS标签,第二添加标识用于指示添加内层MPLS标签。示意性的,添加标识通过PU字段携带,第一添加标识通过PU1字段携带,第二添加标识通过PU2字段携带,那么,添加标识为第一添加标识例如是:PU1=1,PU2=0,这表示添加一层MPLS标签。添加标识包括第一添加标识以及第二添加标识例如是:PU1=1,PU2=1,这表示添加两层MPLS标签。
例如,替换标识包括第一替换标识或者第二替换标识中的至少一项,第一替换标识用于指示替换外层MPLS标签,第二替换标识用于指示替换内层MPLS标签。
请参考表4,表4是MPLS动作信息(MPLS-action)的格式的举例说明。下面结合表4对MPLS动作信息的具体实现方式进行举例说明。
表4
表4所示的MPLS动作信息包括12个字节。具体地,MPLS动作信息包括PO1字段、PU1字段、SW1字段、保留(reserved,Resv)字段、PO2字段、PU2字段、SW2字段、MPLS标签1(MPLSlabel1)字段、TC1字段、S1字段、TTL1字段、MPLS标签2(MPLS label2)字段、TC2字段、S2字段、TTL2字段等。在一些实施例中,以上介绍的第一弹出标识为PO1字段携带的值。以上介绍的第一添加标识为PU1字段携带的值。以上介绍的第一替换标识为SW1字段携带的值。以上介绍的第二弹出标识为PO2字段携带的值。以上介绍的第二添加标识为PU2字段携带的值。以上介绍的第二替换标识为SW2字段携带的值。表4中各个字段的格式如下。
当PO1字段的值为1时表示弹出最外层标签。当PO1字段的值为0时表示不弹出最外层标签。
当PU1字段的值为1时表示添加最外层标签,且指定添加的最外层标签为MPLSlabel1。具体地,添加的最外层标签中的标签值、EXP(TC)、标志位(S)、TTL分别为表4中的MPLS label1、TC1、S1、TTL1。当PU1字段的值为0时表示不需要添加最外层标签。此时表4中MPLS label1、TC1、S1、TTL1这四个字段也初始化为0。
当SW1字段的值为1时表示替换最外层标签,且指定替换后的最外层标签为MPLSlabel1。具体地,替换后的最外层标签中的标签值、EXP(TC)、标志位(S)、TTL分别为表4中的MPLS label1、TC1、S1、TTL1。当SW1字段的值为0时表示不需要替换最外层标签。
当PO2字段的值为1时表示弹出次外层标签。当PO2字段的值为0时表示不弹出最外层标签。
当PU2字段的值为1时表示添加次外层标签,且指定添加的次外层标签为MPLSlabel2。具体地,添加的次外层标签中的标签值、EXP(TC)、标志位(S)、TTL分别为表4中的MPLS label2、TC2、S2、TTL2。当PU2字段的值为0时表示不需要添加次外层标签。此时表4中MPLS label2、TC2、S2、TTL2这四个字段也初始化为0。
当SW2字段的值为1时表示替换次外层标签,且指定替换后的次外层标签为MPLSlabel2。具体地,替换后的次外层标签中的标签值、EXP(TC)、标志位(S)、TTL分别为表4中的MPLS label2、EXP2、S2、TTL2。当SW2字段的值为0时表示不需要替换次外层标签。
以上对本实施例扩展的各种MPLS-action进行了介绍。以上介绍的不同MPLS-action可以相互结合。例如,对于标签弹出动作而言,可以对收到的MPLS报文中最外层标签与次外层标签均弹出。对于标签添加动作,是在收到的MPLS报文的基础上添加一个或多个标签,例如最多添加两层标签。对于标签替换动作,支持对最外层标签与次外层标签均进行替换。标签弹出动作和标签替换动作可以同时进行,即,既可以弹出最外层标签,同时又可以替换次外层标签。
以上介绍的MPLS-action是对新增动作的举例说明。在另一些实施例中,BGP流规则路由中的匹配条件通过以上描述的外层流规则、隧道头流规则、内层流规则确定,而BGP流规则路由中的处理动作不是MPLS-action,而是其他能够对MPLS报文的处理动作。例如,BGP流规则路由中的处理动作包括而不限于限制流量速率、重定向、标记区分服务编码点(differentiated services code point,DSCP)等。
以上介绍了本实施例提供的BGP流规则路由的报文格式。以上方案能够作为一种新的MPLS标签报文的BGP flow实现方式,通过对draft-ietf-idr-flowspec-nvo3定义的隧道流量的路由格式进行协议扩展,新定义一种隧道类型以支持MPLS报文,并且针对MPLS报文的格式细化了BGP flow specification路由的格式以及具体匹配方式,能基于外层二层头(MAC、VLAN等信息)、标签栈、内层二层头(MAC、VLAN等信息)、L3、L4层信息进行精确匹配,从而解决对MPLS报文的精确匹配问题。
下面对本申请实施例提供的方法流程进行介绍。
附图3是本申请实施例提供的BGP流规则路由的发布方法的流程图。该方法包括以下步骤S310至步骤S340。为了区分描述不同的网络设备,下面的方法实施例用“第一网络设备”“第二网络设备”分别指代不同的网络设备。“第一网络设备”“第二网络设备”均可以是路由器、交换机等数据通信设备。在一些实施例中,该方法应用在典型的数据通信场景,应对带MPLS标签的分布式拒绝服务(distributed denial of service,DDoS)攻击,确保网络安全。在一些实施例中,第一网络设备和第二网络设备的部署场景如附图1所示。例如,结合附图1来看,第一网络设备为网络系统10中的R3;第二网络设备为网络系统10中的R1或者R2。
步骤S310、第一网络设备生成BGP流规则路由。
如何生成BGP流规则路由包括多种实现方式。在一些实施例中,通过手工配置的方式生成BGP流规则路由。在另一些实施例中,网络设备自动生成BGP流规则路由。例如,网络设备检测攻击报文,网络设备根据攻击报文的特征自动生成BGP流规则路由。
步骤S320、第一网络设备发布BGP流规则路由。
步骤S330、第二网络设备接收BGP流规则路由,根据BGP流规则路由确定流量控制策略。
其中,流量控制策略中的匹配条件包括外层流规则、隧道头流规则或者内层流规则中的至少一项。流量控制策略中的执行动作包括MPLS动作。
步骤S340、第二网络设备根据流量控制策略,对匹配流规则的流量进行控制。
结合MPLS场景,流量具体为MPLS报文流,MPLS报文流包括一系列的MPLS报文。当第二网络设备接收到MPLS报文时,对MPLS报文与流量控制策略中的匹配条件进行匹配,如果MPLS报文满足匹配条件,则执行流量控制策略中的执行动作。
其中,匹配条件包括而不限于以下至少一项:MPLS报文中的一个或多个字段与外层流规则中的一个或多个字段匹配;MPLS报文中的一个或多个字段与隧道头流规则中的一个或多个字段匹配;MPLS报文中的一个或多个字段与内层流规则中的一个或多个字段匹配。执行动作例如为以上介绍的MPLS动作或者其他动作。
例如,在执行动作为MPLS动作的情况下,第二网络设备通过对MPLS报文执行MPLS动作,能够控制MPLS报文的转发路径,让MPLS报文发送到流量检测与分析设备。例如,在MPLS动作为标签替换动作的情况下,将替换后的最外层标签设置为流量检测与分析设备分配的标签,第二网络设备通过执行替换最外层标签的动作,将MPLS报文重定向至流量检测与分析设备,从而防御通过MPLS报文发起的DDoS攻击。
本实施例提供了一种新的BGP flow对MPLS报文的支持方式,通过新定义一种隧道类型来支持MPLS报文,并针对MPLS报文的格式细化了BGP流规则路由中的流规则,基于外层流规则与MPLS报文的外层MAC头进行匹配,基于隧道头流规则与MPLS报文的标签栈进行匹配,基于内层流规则与MPLS报文的内层MAC头、IP头、传输层协议头等进行匹配,网络设备能够利用BGP流规则路由对MPLS报文的各个部分进行匹配,从而提高了对MPLS报文匹配的精确性。
以上介绍了本申请实施例的方法实施例,以下介绍本申请实施例的网络设备。
附图4示出了上述实施例中所涉及的网络设备的一种可能的结构示意图。附图4所示的网络设备400例如实现图3所示方法中第一网络设备的功能,或者,网络设备400实现图1所示场景中R3的功能。
请参考附图4,网络设备400包括生成单元401和发布单元402。生成单元401用于支持网络设备400执行步骤S310。发布单元402用于支持网络设备400执行步骤S320。
本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可选地有另外的划分方式。
在一些实施例中,网络设备400中各个单元集成在一个单元中。例如,网络设备400中各个单元集成在同一个芯片上。该芯片包括处理电路和与该处理电路内部连接通信的输入接口以及输出接口。生成单元401通过芯片中的处理电路实现。发布单元402通过芯片中的输出接口实现。例如,该芯片通过一个或多个现场可编程门阵列(field-programmablegate array,FPGA)、可编程逻辑器件(programmable logic device,PLD)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合实现。
在另一些实施例中,网络设备400各个单元单独物理存在。在另一些实施例中,网络设备400一部分单元单独物理存在,另一部分单元集成在一个单元中。例如,在一些实施例中,生成单元401和发布单元402是同一个单元。在另一些实施例中,生成单元401和发布单元402是不同的单元。在一些实施例中,不同单元的集成采用硬件的形式实现,即,不同单元对应于同一个硬件。又如,不同单元的集成采用软件单元的形式实现。
在网络设备400中通过硬件实现的情况下,网络设备400中生成单元401例如通过网络设备600中的主控板610上的中央处理器611实现,又如通过网络设备700中的处理器701实现。
网络设备400中发布单元402例如通过网络设备600中接口板630实现,又如通过网络设备700中的通信接口704实现。
在网络设备400中通过软件实现的情况下,网络设备400中各个单元例如为网络设备600中的主控板610上的中央处理器611读取存储器612中存储的程序代码后生成的软件,又如为网络设备700中的处理器701读取存储器703中存储的程序代码后生成的软件。例如,网络设备400为虚拟化设备。虚拟化设备包括而不限于虚拟机、容器、Pod中的至少一种。在一些实施例中,网络设备400以虚拟机的形式,部署在硬件设备(如物理服务器)上。例如,基于通用的物理服务器结合网络功能虚拟化(network functions virtualization,NFV)技术来实现网络设备400。采用虚拟机的方式实现时,网络设备400例如为虚拟主机、虚拟路由器或虚拟交换机。本领域技术人员通过阅读本申请即可结合NFV技术在通用物理服务器上虚拟出网络设备400。在另一些实施例中,网络设备400以容器(例如docker容器)的形式,部署在硬件设备上。例如,网络设备400执行上述方法实施例的流程被封装在镜像文件中,硬件设备通过运行镜像文件来创建网络设备400。在另一些实施例中,网络设备400以Pod的形式,部署在硬件设备上。Pod包括多个容器,每个容器用于实现网络设备400中的一个或多个单元。
以上通过网络设备400,从逻辑功能的角度介绍了如何实现第一网络设备。以下通过网络设备600和网络设备700,从硬件的角度介绍如何实现第一网络设备。附图5所示的网络设备600和附图6所示的网络设备700是对第一网络设备的硬件结构的举例说明。
网络设备600或网络设备700对应于上述方法实施例中的第一网络设备,网络设备600或网络设备700中的各硬件、模块和上述其他操作和/或功能分别为了实现方法实施例中第一网络设备所实施的各种步骤和方法,关于网络设备600或网络设备700如何发布BGP流规则路由的详细流程,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。其中,方法实施例的各步骤通过网络设备600或网络设备700处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块例如位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
参见附图5,附图5示出了本申请一个示例性实施例提供的网络设备的结构示意图,网络设备600例如配置为第一网络设备。网络设备600包括:主控板610和接口板630。
主控板也称为主处理单元(main processing unit,MPU)或路由处理卡(routeprocessor card),主控板610用于对网络设备600中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板610包括:中央处理器611和存储器612。
接口板630也称为线路接口单元卡(line processing unit,LPU)、线卡(linecard)或业务板。接口板630用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、POS(packet over SONET/SDH)接口等,以太网接口例如是灵活以太网业务接口(fexible ethernet clients,FlexE clients)。接口板630包括:中央处理器631、网络处理器632、转发表项存储器634和物理接口卡(physical interface card,PIC)633。
接口板630上的中央处理器631用于对接口板630进行控制管理并与主控板610上的中央处理器611进行通信。
网络处理器632用于实现报文的转发处理。网络处理器632的形态例如是转发芯片。具体而言,网络处理器632用于基于转发表项存储器634保存的转发表转发接收到的报文,如果报文的目的地址为网络设备600的地址,则将该报文上送至CPU(如中央处理器611)处理;如果报文的目的地址不是网络设备600的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理:转发表查找等等。
物理接口卡633用于实现物理层的对接功能,原始的流量由此进入接口板630,以及处理后的报文从该物理接口卡633发出。物理接口卡633也称为子卡,可安装在接口板630上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器632处理。在一些实施例中,中央处理器也可执行网络处理器632的功能,比如基于通用CPU实现软件转发,从而物理接口卡633中不需要网络处理器632。
可选地,网络设备600包括多个接口板,例如网络设备600还包括接口板640,接口板640包括:中央处理器641、网络处理器642、转发表项存储器644和物理接口卡643。
可选地,网络设备600还包括交换网板620。交换网板620也例如称为交换网板单元(switch fabric unit,SFU)。在网络设备有多个接口板630的情况下,交换网板620用于完成各接口板之间的数据交换。例如,接口板630和接口板640之间例如通过交换网板620通信。
主控板610和接口板630耦合。例如。主控板610、接口板630和接口板640,以及交换网板620之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板610和接口板630之间建立进程间通信协议(inter-process communication,IPC)通道,主控板610和接口板630之间通过IPC通道进行通信。
在逻辑上,网络设备600包括控制面和转发面,控制面包括主控板610和中央处理器631,转发面包括执行转发的各个组件,比如转发表项存储器634、物理接口卡633和网络处理器632。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器632基于控制面下发的转发表对物理接口卡633收到的报文查表转发。控制面下发的转发表例如保存在转发表项存储器634中。在有些实施例中,控制面和转发面例如完全分离,不在同一设备上。
应理解,本申请实施例中接口板640上的操作与接口板630的操作一致,为了简洁,不再赘述。应理解,本实施例的网络设备600可对应于上述各个方法实施例中的网络设备,该网络设备600中的主控板610、接口板630和/或640例如实现上述各个方法实施例中的网络设备所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
值得说明的是,主控板可能有一块或多块,有多块的时候例如包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
参见附图6,附图6示出了本申请一个示例性实施例提供的网络设备700的结构示意图,该网络设备700可以配置为第一网络设备。网络设备700可以是主机、服务器或个人计算机等。该网络设备700可以由一般性的总线体系结构来实现。
网络设备700包括至少一个处理器701、通信总线702、存储器703以及至少一个通信接口704。
处理器701例如是通用中央处理器(central processing unit,CPU)、网络处理器(network processer,NP)、图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(data Processing Unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器701包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。PLD例如是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信总线702用于在上述组件之间传送信息。通信总线702可以分为地址总线、数据总线、控制总线等。为便于表示,附图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器703例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器703例如是独立存在,并通过通信总线702与处理器701相连接。存储器703也可以和处理器701集成在一起。
通信接口704使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口704包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合等。
在具体实现中,作为一种实施例,处理器701可以包括一个或多个CPU,如附图6中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,网络设备700可以包括多个处理器,如附图6中所示的处理器701和处理器705。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,网络设备700还可以包括输出设备和输入设备。输出设备和处理器701通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器701通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器703用于存储执行本申请方案的程序代码710,处理器701可以执行存储器703中存储的程序代码710。也即是,网络设备700可以通过处理器701以及存储器703中的程序代码710,来实现方法实施例提供的方法。
本申请实施例的网络设备700可对应于上述各个方法实施例中的第一网络设备,并且,该网络设备700中的处理器701、通信接口704等可以实现上述各个方法实施例中的第一网络设备所具有的功能和/或所实施的各种步骤和方法。为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种示例的范围的情况下,第一组件可以被称为第二组件,并且类似地,第二组件可以被称为第一组件。第一组件和第二组件都可以是组件,并且在某些情况下,可以是单独且不同的组件。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上。
还应理解,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
以上描述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (26)
1.一种边界网关协议BGP流规则路由的发布方法,其特征在于,所述方法包括:
网络设备生成BGP流规则路由,所述BGP流规则路由包括隧道类型信息、外层流规则、隧道头流规则以及内层流规则,所述隧道类型信息用于指示隧道的类型为多协议标签交换MPLS,所述外层流规则用于与MPLS报文的外层媒体访问控制MAC头进行匹配,所述隧道头流规则用于与MPLS报文的标签栈进行匹配,所述内层流规则用于与MPLS报文的内层MAC头、互联网协议IP头、传输层协议头中的至少一项进行匹配;
所述网络设备发布所述BGP流规则路由。
2.根据权利要求1所述的方法,其特征在于,所述隧道头流规则包括标签值,所述隧道头流规则中的标签值用于与所述标签栈中MPLS标签的标签值进行匹配。
3.根据权利要求2所述的方法,其特征在于,所述隧道头流规则中的标签值包括至少一组操作符和值,所述至少一组操作符和值用于指示匹配成功的MPLS标签的标签值的取值范围。
4.根据权利要求2或3所述的方法,其特征在于,所述隧道头流规则中的标签值包括第一标签值或者第二标签值中的至少一项,所述第一标签值用于与所述标签栈中外层MPLS标签中的标签值进行匹配,所述第二标签值用于与所述标签栈中内层MPLS标签中的标签值进行匹配。
5.根据权利要求4所述的方法,其特征在于,所述隧道头流规则包括第一组件或者第二组件中的至少一项;
所述第一组件包括第一类型信息以及所述第一标签值,所述第一类型信息用于标识所述第一组件携带所述第一标签值;
所述第二组件包括第二类型信息以及所述第二标签值,所述第二类型信息用于标识所述第二组件携带所述第二标签值。
6.根据权利要求1所述的方法,其特征在于,所述隧道头流规则包括流量等级TC,所述隧道头流规则中的TC用于与MPLS报文中MPLS标签的TC进行匹配。
7.根据权利要求6所述的方法,其特征在于,所述隧道头流规则中的TC包括至少一组操作符和值,所述至少一组操作符和值用于指示匹配成功的MPLS标签的TC的取值范围。
8.根据权利要求6或7所述的方法,其特征在于,所述隧道头流规则中的TC包括第一TC或者第二TC中的至少一项,所述第一TC用于与MPLS报文中外层MPLS标签中的TC进行匹配,所述第二TC用于与MPLS报文中内层MPLS标签中的TC进行匹配。
9.根据权利要求8所述的方法,其特征在于,所述隧道头流规则包括第三组件或者第四组件中的至少一项;
所述第三组件包括第三类型信息以及所述第一TC,所述第三类型信息用于标识所述第三组件携带所述第一TC;
所述第四组件包括第四类型信息以及所述第二TC,所述第四类型信息用于标识所述第四组件携带所述第二TC。
10.根据权利要求1所述的方法,其特征在于,所述隧道头流规则包括生存时间TTL,所述隧道头流规则中的TTL用于与MPLS报文中MPLS标签的TTL进行匹配。
11.根据权利要求10所述的方法,其特征在于,所述隧道头流规则中的TTL包括至少一组操作符和值,所述至少一组操作符和值用于指示匹配成功的MPLS标签的TTL的取值范围。
12.根据权利要求10或11所述的方法,其特征在于,所述隧道头流规则中的TTL包括第一TTL或者第二TTL中的至少一项,所述第一TTL用于与MPLS报文中外层MPLS标签中的TTL进行匹配,所述第二TTL用于与MPLS报文中内层MPLS标签中的TTL进行匹配。
13.根据权利要求12所述的方法,其特征在于,所述隧道头流规则包括第五组件或者第六组件中的至少一项;
所述第五组件包括第五类型信息以及所述第一TTL,所述第五类型信息用于标识所述第五组件携带所述第一TTL;
所述第六组件包括第六类型信息以及所述第二TTL,所述第六类型信息用于标识所述第六组件携带所述第二TTL。
14.根据权利要求1至13中任一项所述的方法,其特征在于,所述BGP流规则路由携带在多协议可达网络层可达信息NLRI中,所述多协议可达NLRI包括所述BGP流规则路由以及第一地址族标识符AFI,所述第一AFI用于指示所述外层流规则为MAC头对应的流规则。
15.根据权利要求1至14中任一项所述的方法,其特征在于,所述内层流规则包括第二AFI,所述第二AFI用于指示是否与MPLS报文的内层MAC头进行匹配。
16.根据权利要求15所述的方法,其特征在于,所述内层流规则包括内层AFI字段,所述第二AFI为所述内层AFI字段携带的AFI。
17.根据权利要求15所述的方法,其特征在于,所述内层流规则包括第三AFI,所述第三AFI用于指示是否与MPLS报文的IP头或者传输层协议头进行匹配。
18.根据权利要求17所述的方法,其特征在于,所述内层流规则包括L3-AFI字段,所述第三AFI为所述L3-AFI字段携带的AFI。
19.根据权利要求17或18所述的方法,其特征在于,所述第三AFI用于指示与MPLS报文的互联网协议第四版IPv4头进行匹配;或者,
所述第三AFI用于指示与MPLS报文的互联网协议第六版IPv6头进行匹配;或者,
所述第三AFI用于指示不与MPLS报文的IP头以及传输层协议头进行匹配。
20.根据权利要求1至19中任一项所述的方法,其特征在于,所述BGP流规则路由还包括MPLS动作信息,所述MPLS动作信息用于指示对MPLS报文中MPLS标签执行的处理动作。
21.根据权利要求20所述的方法,其特征在于,所述MPLS动作信息包括弹出标识、添加标识或者替换标识,所述弹出标识用于指示弹出MPLS报文中的MPLS标签,所述添加标识用于指示向MPLS报文添加MPLS标签,所述替换标识用于指示替换MPLS报文中的MPLS标签。
22.根据权利要求21所述的方法,其特征在于,所述MPLS动作信息还包括目标MPLS标签,所述添加标识用于指示添加所述目标MPLS标签,所述替换标识用于指示将MPLS报文中的MPLS标签替换为所述目标MPLS标签。
23.根据权利要求21或22所述的方法,其特征在于,所述弹出标识包括第一弹出标识或者第二弹出标识中的至少一项,所述第一弹出标识用于指示弹出外层MPLS标签,所述第二弹出标识用于指示弹出内层MPLS标签;
所述添加标识包括第一添加标识以及第二添加标识,所述第一添加标识用于指示添加外层MPLS标签,所述第二添加标识用于指示添加内层MPLS标签;
所述替换标识包括第一替换标识或者第二替换标识中的至少一项,所述第一替换标识用于指示替换外层MPLS标签,所述第二替换标识用于指示替换内层MPLS标签。
24.一种网络设备,其特征在于,所述网络设备包括:
生成单元,用于生成BGP流规则路由,所述BGP流规则路由包括隧道类型信息、外层流规则、隧道头流规则以及内层流规则,所述隧道类型信息用于指示隧道的类型为多协议标签交换MPLS,所述外层流规则用于与MPLS报文的外层媒体访问控制MAC头进行匹配,所述隧道头流规则用于与MPLS报文的标签栈进行匹配,所述内层流规则用于与MPLS报文的内层MAC头、IP头、传输层协议头中的至少一项进行匹配;
发布单元,用于发布所述BGP流规则路由。
25.一种网络设备,其特征在于,所述网络设备包括处理器和通信接口,所述处理器用于执行指令,使得所述网络设备执行如权利要求1至权利要求23中任一项所述的方法,所述通信接口用于发布边界网关协议BGP流规则路由。
26.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器读取以使网络设备执行如权利要求1至权利要求23中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011172206.4A CN114513457A (zh) | 2020-10-28 | 2020-10-28 | Bgp流规则路由的发布方法、网络设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011172206.4A CN114513457A (zh) | 2020-10-28 | 2020-10-28 | Bgp流规则路由的发布方法、网络设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114513457A true CN114513457A (zh) | 2022-05-17 |
Family
ID=81547067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011172206.4A Pending CN114513457A (zh) | 2020-10-28 | 2020-10-28 | Bgp流规则路由的发布方法、网络设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114513457A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024007640A1 (zh) * | 2022-07-08 | 2024-01-11 | 中兴通讯股份有限公司 | 数据传输方法、数据处理方法、电子设备、存储介质 |
WO2024016985A1 (zh) * | 2022-07-20 | 2024-01-25 | 华为技术有限公司 | 报文处理方法、通信系统以及相关装置 |
-
2020
- 2020-10-28 CN CN202011172206.4A patent/CN114513457A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024007640A1 (zh) * | 2022-07-08 | 2024-01-11 | 中兴通讯股份有限公司 | 数据传输方法、数据处理方法、电子设备、存储介质 |
WO2024016985A1 (zh) * | 2022-07-20 | 2024-01-25 | 华为技术有限公司 | 报文处理方法、通信系统以及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10757231B2 (en) | Providing network efficiencies in forwarding packets among provider networks and applying segment routing policies | |
KR102555671B1 (ko) | 패킷 처리 방법, 관련 기기 및 컴퓨터 저장 매체 | |
CN113691448B (zh) | SRv6业务链中转发报文的方法、SFF及SF设备 | |
US20160099864A1 (en) | Selective service bypass in service function chaining | |
US20230043721A1 (en) | Packet Processing Method, Device, System, and Storage Medium | |
EP4102786A1 (en) | Sr policy issuing method and apparatus and sr policy receiving method and apparatus | |
US20220255862A1 (en) | Packet forwarding method, device, storage medium, and system | |
EP4160950A1 (en) | Method and apparatus for sending message, and network device, system and storage medium | |
US20190020584A1 (en) | Packet Processing Method and System, and Device | |
CN113079089A (zh) | 业务链的故障保护方法、装置、设备、系统及存储介质 | |
US20240048479A1 (en) | Packet Forwarding Method and Apparatus, Network Device, and Storage Medium | |
CN114513457A (zh) | Bgp流规则路由的发布方法、网络设备及存储介质 | |
CN113973082A (zh) | 一种报文处理方法及网络设备 | |
CN116746129A (zh) | 用于在网络头部中编码本地处理元数据的方法和装置 | |
JP6222505B2 (ja) | 入力パラメータを生成するための方法および装置 | |
CN115550252A (zh) | 路由发布和转发报文的方法、装置、设备和存储介质 | |
US20230216792A1 (en) | Method for Generating Routing Information, Method for Sending Location Information, Method for Forwarding Packet, and Device | |
CN114338432A (zh) | 传输报文的方法、装置、设备及计算机可读存储介质 | |
CN113765809A (zh) | Bier组播流量的统计方法、设备以及系统 | |
US11855888B2 (en) | Packet verification method, device, and system | |
KR102621953B1 (ko) | 패킷 검출 방법 및 제1 네트워크 장치 | |
CN111770049B (zh) | 全局缓存变量及报文信息存储方法及装置 | |
CN114301839A (zh) | 一种组播报文传输方法及装置 | |
EP4210290A1 (en) | Packet transmission method and apparatus | |
US20240106748A1 (en) | Packet processing method, apparatus, and system |
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 |