CN110431885B - 处理报文的方法和装置 - Google Patents
处理报文的方法和装置 Download PDFInfo
- Publication number
- CN110431885B CN110431885B CN201780088660.1A CN201780088660A CN110431885B CN 110431885 B CN110431885 B CN 110431885B CN 201780088660 A CN201780088660 A CN 201780088660A CN 110431885 B CN110431885 B CN 110431885B
- Authority
- CN
- China
- Prior art keywords
- rule
- service flow
- message
- packet
- matching
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 106
- 238000012545 processing Methods 0.000 title claims abstract description 85
- 230000011664 signaling Effects 0.000 abstract description 8
- 230000009286 beneficial effect Effects 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 44
- 230000000875 corresponding effect Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 7
- 108010079923 lambda Spi-1 Proteins 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 101000651211 Homo sapiens Transcription factor PU.1 Proteins 0.000 description 2
- 101000836070 Rattus norvegicus Serine protease inhibitor A3L Proteins 0.000 description 2
- 101710142113 Serine protease inhibitor A3K Proteins 0.000 description 2
- 102100027654 Transcription factor PU.1 Human genes 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- 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/30—Routing of multiclass traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W48/00—Access restriction; Network selection; Access point selection
- H04W48/08—Access restriction or access information delivery, e.g. discovery data delivery
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种处理报文的方法和装置,有利于降低控制信令的开销和存储开销,所述方法包括:转发设备从业务功能链控制器接收第一规则,所述第一规则包括匹配域,所述匹配域为网络服务包头NSH;所述转发设备接收第一业务流报文,将所述第一业务流报文的报文头特征与所述第一规则的匹配域进行匹配;若所述第一业务流报文的报文头特征与所述第一规则的匹配域匹配成功,所述转发设备根据所述第一规则创建第二规则和第三规则,所述第二规则和所述第三规则的优先级高于所述第一规则。
Description
技术领域
本申请涉及通信领域,并且更具体地,涉及处理报文的方法和装置。
背景技术
业务功能链(Service Function Chain,SFC)是目前正在研究和标准化的一种网络技术。网络服务包头(Network Service Header,NSH)是一种实现SFC的应用协议,NSH用于描述数据面的Header沿着服务路径(Service Path,SP)承载的网络服务信息,意在实现与传输独立的“服务面”(Service Plane)。
但是当前大多数业务功能(Service Function,SF)设备不支持NSH协议,因此需要部署业务功能链代理(Service Function Chain Proxy,SP)设备实现对NSH协议的支持。此时,SP设备收到的SF设备返回的报文是无NSH的协议层报文,例如,网络层报文,传输层报文或应用层报文。SP设备需要通过匹配协议层报文头特征来恢复NSH头,并将处理后的协议层报文转发给业务功能转发器(Service Function Forwarder,SFF)。由于同一个业务链中的协议层报文头特征是动态变化的,因此,需要SP设备每次接收到来自SF设备的业务流报文后,通过上报SFC控制器以获取恢复NSH的转发规则,这导致了SFC控制器与SP设备之间大量的信令开销,无法满足对报文的实时性处理的要求。
发明内容
本申请实施例提供一种处理报文的方法和装置,有利于降低控制信令的开销。
第一方面,提供了一种处理报文的方法,其特征在于,包括:转发设备从业务功能链控制器接收第一规则,所述第一规则包括匹配域,所述匹配域为网络服务包头NSH;所述转发设备接收第一业务流报文,将所述第一业务流报文的报文头特征与所述第一规则的匹配域进行匹配;若所述第一业务流报文的报文头特征与所述第一规则的匹配域匹配成功,所述转发设备根据所述第一规则创建第二规则和第三规则,所述第二规则和所述第三规则的优先级高于所述第一规则。
应理解,本申请实施例提到的规则,可以指一个具体的规则,也可以指一类规则,例如,所述第一规则可能包含多个具体规则,例如,所述多个具体规则可以包括具体规则1和具体规则2,其中,所述具体规则1对应的匹配域为SPI=1、SI=2,所述具体规则2对应的匹配域为SPI=2、SI=3,可选地,所述第一规则还可以包括更多个具体规则,对于所述第二规则和所述第三规则亦是如此。
可选地,所述转发设备为SFF或SP设备,所述转发设备具有创建规则的能力,所述转发设备可以根据SFC控制器下发的第一规则,创建第二规则和第三规则,从而可以根据第二规则和第三规则对来自SFF、SF设备或分类器的业务流报文进行处理,不必每次通过上报SFC控制器获取相应的规则,然后根据SFC下发的规则实现对报文的处理,因此,有利于降低控制信令的开销,从另一方面来讲,在转发设备上也不用存储大量的转发规则,因此,降低转发设备的存储开销。
可选地,在一些实施例中,所述第一规则的匹配域还包括协议层包头特征。
可选地,在一些实施例中,所述第二规则的匹配域为NSH,所述方法还包括:所述转发设备从业务功能转发器SFF或分类器接收第二业务流报文,将所述第二业务流报文的报文头特征与所述第二规则的匹配域进行匹配,所述第二业务流报文的报文头特征包括NSH;若所述第二业务流报文的报文头特征与所述第二规则的匹配域匹配成功,执行所述第二规则的动作:去除所述第二业务流报文的NSH,并将处理后的第二业务流报文转发至业务功能SF设备。
由于来自分类器或SFF的报文为包括NSH的业务流报文,所述第二规则的匹配域为NSH,所述转发设备可以根据第二规则处理来自SFF或分类器的报文。
可选地,在一些实施例中,所述第二规则的匹配域还包括协议层包头特征。
可选地,在一些实施例中,所述第三规则的匹配域为报文头特征,所述方法还包括:
所述转发设备从SF设备接收第三业务流报文,
将所述第三业务流报文的报文头特征与所述第三规则的匹配域进行匹配;
若所述第三业务流报文的报文头特征与所述第三规则的匹配域匹配成功,执行所述第三规则的动作:为所述第三业务流报文添加NSH。
由于来自SF设备的报文为不包括NSH的协议层报文,所述第三规则的匹配域为协议层包头特征,所述转发设备可以根据第三规则处理来自SF设备的报文。
可选地,在一些实施例中,所述转发设备为SFF,所述方法还包括:
处理已添加NSH的所述第三业务流报文。
可选地,在一些实施例中,所述转发设备为SP设备,所述方法还包括:
将已添加NSH的所述第三业务流报文转发至SFF。
可选地,在一些实施例中,所述第一业务流报文、所述第二业务流报文和所述第三业务流报文属于同一业务流。
第二方面,提供了一种处理报文的装置,包括用于执行第一方面或其各种实现方式中的方法的单元。
第三方面,提供一种处理报文的装置,包括处理器、存储器、第一网络接口,第二网络接口和第三网络接口。其中第一网络接口,第二网络接口,第三网络接口,处理器和存储器之间通信连接,所述存储器用于存储程序,所述处理器用于执行程序,当所述程序被执行时,所述处理器基于所述第一网络接口,第二网络接口和第三网络接口执行第一方面中的方法。
第四方面,提供一种处理报文的系统,包括第二方面提供的处理数据报文的装置和控制设备,所述控制设备用于向所述处理报文的装置下发第一规则,所述第一规则的匹配域为网络服务包头NSH。
第五方面,提供一种计算机可读介质,所述计算机可读介质存储用于计算机执行的程序代码,所述程序代码包括用于执行第一方面中的方法的指令。
第六方面,提供一种计算机程序产品。所述计算机程序产品包括能够被计算机执行的程序代码,所述程序代码包括用于执行第一方面中的方法的指令。
基于上述技术方案,本申请实施例的处理报文的方法,转发设备可以根据业务功能链SFC控制器下发的第一规则,生成两个优先级较高的第二规则和第三规则,从而可以根据所述第二规则和所述第三规则处理来自分类器,SFF或SF设备的业务流报文,因此,所述转发设备不用通过上报SFC控制器获取恢复NSH的规则,从而,有利于降低控制信令的开销。
附图说明
图1是适用于本申请实施例的网络架构的一例的示意图;
图2是根据本申请实施例的处理报文的方法的示意性流程图;
图3是转发设备为SP设备时,根据本申请实施例的处理报文的方法的示意性流程图;
图4是转发设备为SP设备时,根据本申请实施例的处理报文的方法的一例流程图;
图5是转发设备为SFF设备时,根据本申请实施例的处理报文的方法的示意性流程图;
图6是转发设备为SFF设备时,根据本申请实施例的处理报文的方法的一例流程图;
图7是根据本申请实施例的处理数据报文的装置的示意框图;
图8是根据本申请实施例的处理数据报文的装置的一种硬件实现的结构示意图;
图9是根据本申请实施例的处理数据报文的系统的示意框图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
图1所示为适用于本申请实施例的一种网络架构的示意图,应理解,图1所示的网络架构只是为了帮助本领域技术人员更好地理解本申请实施例,而非限制本申请实施例的范围。
如图1所示,该网络架构包括:
SFC控制器,用于构造业务功能路径(Service Function Path,SFP),并向业务功能路径上的节点(如分类器或SFF)下发路径信息,例如,路径消息包括分类规则、转发规则等;
分类器(classifier),用于根据分类规则对业务流进行分类处理,将其转入相应的业务功能路径中进行处理;
SFF,用于根据转发规则转发业务流报文,SFF可以为路由器、交换机等物理或虚拟的转发设备;
SP设备,用于在SF不支持SFC时,实现对SFC的支持;
SF设备,用于对业务流进行增值服务处理的业务功能,SF设备可以是一个虚拟的元素,也可以是嵌入在物理网络设备上的某种功能实体。例如,防火墙(Firewall)、深度报文检测(Deep Packet Inspection,DPI)、网络地址转换(Network Address Translation,NAT)或负载均衡(Load Balance,LB)等。
例如,业务流报文的处理过程如下:SFC控制器构建业务功能路径,所述业务功能路径是一系列业务功能的有序集合,业务流报文经分类器分类后,通过SFF的转发,依次遍历SFP中的各个SF设备,从而实现对业务流报文的处理。具体的,可以用业务路径标识(Service Path Identifier,SPI)指示是哪条SFP,可以用业务索引(Service Index,SI)指示业务流报文的处理位置,例如,一条SFP为Firewall->DPI->QoS,SPI为1,SI初始值为3,当Firewall处理完业务流报文时,SI变为2,依次类推,QoS处理完报文时,SI变为0,业务流报文处理完毕。
由于大多数SF设备不支持NSH,需要部署SP设备对发往SF设备的业务流报文做去NSH头处理,并对来自SF设备的业务流报文做添加NSH头处理。SP设备从SF设备接收的业务流报文为无NSH的协议层报文,例如,网络层(或者说,L3)报文,传输层(或者说,L4)报文,或应用层(或者说,L7)报文,SP设备将协议层报文头特征(或者说,协议层包头特征)与SP设备的转发规则进行匹配,以恢复NSH报文头,并将处理后的业务流报文转发给SFF,但是同一个业务功能路径的协议层包头特征是动态变化的,因此SP设备上的转发规则需要涵盖所有协议层包头特征情况,这导致了SP设备每次接收到来自SF设备的业务流报文后,通过上报SFC控制器以获取恢复NSH的转发规则,这导致了SFC控制器与SP设备之间大量的信令开销,无法满足对报文的实时性处理的要求。
有鉴于此,本申请实施例提出一种处理报文的方法,转发设备可以根据SFC控制器下发的第一规则,生成两个优先级较高的第二规则和第三规则,所述转发设备可以根据所述第二规则和所述第三规则处理来自分类器,SFF或SF设备的业务流报文,从而所述转发设备不用通过上报SFC控制器获取恢复NSH的规则,因此,有利于降低控制信令的开销。
应理解,本申请实施例中,转发设备具有创建规则的能力,所述转发设备可以为SP设备,或者所述转发设备也可以为SFF,此情况下的SFF相当于SFF和SP设备的结合。例如,若实际场景为图1所示的右半部分,即包括SP设备和SFF2,所述转发设备可以为SP设备,SP设备具有创建规则的能力,SFF2设备不具备创建规则能力。或者,若实际场景为图1中的左半部分,即只包括SFF1,所述转发设备可以为SFF1设备,SFF1设备具备创建规则能力,此时的SFF1设备的功能相当于SFF2设备和SP设备的功能的集合。或者,实际场景中包括多个SFF,所述多个SFF中的部分SFF可以具有创建规则的能力,另一部分不具备创建规则的能力,例如,SFF1设备具有创建规则能力,SFF2设备不具备创建规则能力。
图2是根据本申请实施例的处理报文的方法的示意性流程图,图2的方法200可以由转发设备执行,例如,SFF或SP设备,如图2所示,所述方法包括:
在210中,转发设备从业务功能链控制器接收第一规则,所述第一规则包括匹配域,所述匹配域为网络服务包头NSH;
在220中,所述转发设备接收第一业务流报文,将所述第一业务流报文的报文头特征与所述第一规则的匹配域进行匹配;
在230中,若所述第一业务流报文的报文头特征与所述第一规则的匹配域匹配成功,所述转发设备根据所述第一规则创建第二规则和第三规则,所述第二规则和所述第三规则的优先级高于所述第一规则。
具体的,SFC控制器首先构建业务功能路径,并向所述业务功能路径上的网元发送相应的规则。对于转发设备而言,所述SFC控制器向所述转发设备发送第一规则,所述第一规则的匹配域为NSH,可选地,所述第一规则的匹配域还可以包括协议层包头特征。所述转发设备可以接收来自分类器或SFF的第一业务流报文,所述第一业务流报文属于某一业务流,所述业务功能路径用于指示所述业务流的转发路径,所述第一业务流报文为所述业务流在所述业务功能路径的某个处理位置的业务流报文。
所述转发设备接收到所述第一业务流报文后,可以将所述第一业务流报文的报文头特征与所述第一规则的匹配域进行匹配,若所述第一业务流报文的报文头特征和所述第一规则的匹配域匹配成功,所述转发设备执行的动作:创建第二规则和第三规则,并将转入至所述第二规则或所述第三规则处理所述第一业务流报文,其中,所述第二规则和所述第三规则的优先级高于所述第一规则,所述第二规则和所述第三规则用于在所述转发设备后续接收到业务流报文时,优先根据第二规则或第三规则,对该业务流报文进行处理。
例如,由于所述第二规则和所述第三规则的优先级高于所述第一规则,所述转发设备可以先将所述第二业务流报文的报文头特征与所述第二规则的匹配域进行匹配,若匹配成功,则根据所述第二规则的动作对所述第二业务流报文进行处理,若匹配失败,再将所述第二业务流报文的报文头特征与所述第三规则的匹配域进行匹配,若匹配成功,则根据所述第三规则的动作对所述第二业务流报文进行处理。
或者,所述转发设备也可以先将所述第二业务流报文的报文头特征与所述第三规则的匹配域进行匹配,再将所述第二业务流报文的报文头特征与所述第二规则的匹配域进行匹配,本申请实施例对于所述转发设备先使用所述第二规则和所述第三规则中的哪个规则的匹配域与所述第二业务流报文的报文头特征进行匹配不作限定。
可选地,若所述第二业务流报文的报文头特征与所述第二规则和所述第三规则的匹配域都匹配失败,所述转发设备可以继续匹配所述转发设备中的其他规则,如果与某个规则的匹配域匹配成功,则执行该规则的动作,例如,若所述第二业务流报文的报文头特征与所述第二规则和所述第三规则的匹配域均不匹配,所述转发设备继续匹配转发设备中的其它规则的匹配域,若与第一规则的匹配域匹配成功,则执行所述第一规则的动作。若与所述转发设备中的每个规则的匹配域都不匹配,所述转发设备可以丢弃所述第二业务流报文,或者可以将所述第二业务流报文转发至SFC控制器,由所述SFC控制器确定如何对所述第二业务流报文进行处理。
可选地,转发设备还可以根据业务流报文的头特征决定匹配所述第二规则还是所述第三规则。例如,若业务流报文是NSH报文,所述转发设备确定匹配第二规则。当业务流报文是L3/L4/L7报文时,确定匹配第三规则。例如,转发设备接收第二业务流报文,第二业务流报文是NSH报文,则转发设备将第二业务流报文的报文头特征与第二规则的匹配域进行匹配,若匹配成功,则根据所述第二规则的动作对所述第二业务流报文进行处理,若匹配失败,则转发设备丢弃该第二业务流报文或上报SFC控制器。再例如,转发设备接收第二业务流报文,第二业务流报文是协议层报文,则转发设备将该第二业务流报文的报文头特征与第三规则的匹配域进行匹配,若匹配成功,则根据所述第三规则的动作对所述第二业务流报文进行处理,若匹配失败,则转发设备丢弃该第二业务流报文或上报SFC控制器。
需要说明的是,本申请实施例提到的规则,可以指一个具体的规则,也可以指一类规则,例如,所述第一规则可能包含多个具体规则。举例来说,所述多个具体规则可以包括具体规则1和具体规则2,其中,所述具体规则1对应的匹配域为SPI=1、SI=2,所述具体规则2对应的匹配域为SPI=2、SI=3,当业务流报文的报文头特征与所述第一规则包括的多个具体规则中的任一具体规则匹配成功,即可认为所述业务流报文的报文头特征与所述第一规则的匹配域匹配成功。可选地,所述第一规则还可以包括更多个具体规则,对于所述第二规则和所述第三规则亦是如此,这里不再赘述。
可选地,若所述第一业务流报文的报文头特征和所述第一规则的匹配域匹配成功,所述转发设备还可以进一步确定所述第一业务流报文在业务功能路径的处理位置。例如,可以根据SI确定所述第一业务流报文在业务功能路径上的处理位置,若SI不为零,则可确定业务流报文的处理位置不是结束位置,所述转发设备可以创建所述第二规则和所述第三规则。若SI为零,即当前的处理位置为业务功能路径的结束位置,所述转发设备可以去除所述第一业务流报文的NSH,将去除NSH的所述第一业务流报文转发至网络。
也就是说,所述第二规则和所述第三规则是在业务流报文的报文头特征与第一规则的匹配域匹配成功,并且所述业务流报文的处理位置不是结束位置的情况下创建的,若所述业务流报文的报文头特征与第一规则的匹配域匹配成功,但是所述业务流报文的处理位置是结束位置,则转发设备直接去除业务流报文的NSH,将去除NSH的业务流报文转发至网络。
以下,详细描述所述转发设备如何根据所述第二规则和所述第三规则对业务流报文进行处理。
可选地,在一些实施例中,所述第二规则的匹配域为NSH,所述方法还包括:
所述转发设备从业务功能转发器SFF或分类器接收第二业务流报文;
将所述第二业务流报文的报文头特征与所述第二规则的匹配域进行匹配,所述第二业务流报文的报文头特征包括NSH;
若所述第二业务流报文的报文头特征与所述第二规则的匹配域匹配成功,执行所述第二规则的动作:去除所述第二业务流报文的NSH,并将处理后的第二业务流报文转发至业务功能SF设备。
具体的,所述转发设备可以接收到来自分类器的第二业务流报文,此情况下,所述第二业务流报文可以为所述第一业务流报文。或者,所述转发设备还可以接收来自SFF的业务流报文,例如,若所述转发设备为SFF1设备,所述第二业务流报文可以为来自SFF2设备的业务流报文。也就是说,所述第二规则可以用于处理来自SFF或来自分类器的报文。
所述第二规则的匹配域为NSH,可选地,所述第二规则的匹配域还包括协议层包头特征。例如,协议层包头特征包括网络层包头特征、传输层包头特征或应用层包头特征。其中,网络层包头特征包括源互联网协议(Internet Protocol,IP)地址、目的IP地址或网络层端口号。传输层包头特征包括传输层端口号或隧道端点标识(Tunnelling EndpointIDentifier,TEID)。应用层包头特征包括报文类型。
在所述转发设备接收到来自SFF或分类器的第二业务流报文时,所述转发设备可以将所述第二业务流报文的报文头特征与所述第二规则的匹配域进行匹配,若匹配成功,所述转发设备执行所述第二规则的动作:去除所述第二业务流报文的NSH,并将处理后的所述第二业务流报文转发至SF设备,所述SF设备为业务功能路径上的下一个SF设备。
可选地,在一些实施例中,所述第三规则的匹配域为协议层包头特征,所述方法还包括:
所述转发设备从SF设备接收第三业务流报文,
将所述第三业务流报文的报文头特征与所述第三规则的匹配域进行匹配;
若所述第三业务流报文的报文头特征与所述第三规则的匹配域匹配成功,执行所述第三规则的动作:为所述第三业务流报文添加NSH。
具体的,所述第三规则的匹配域为协议层包头特征,例如,协议层包头特征包括网络层包头特征、传输层包头特征或应用层包头特征。网络层包头特征包括源IP地址、目的IP地址或网络层端口号。传输层包头特征包括传输层端口号或隧道端点标识TEID。应用层包头特征包括报文类型。
若所述转发设备接收到来自SF设备的第三业务流报文,来自SF设备的第三业务流报文为协议层报文,所以所述第三业务流报文的报文头特征为协议层包头特征,所述转发设备可以将所述第三业务流报文的报文头特征与所述第三规则的匹配域进行匹配。若所述第三业务流报文的报文头特征与所述第三规则的匹配域匹配成功,所述转发设备执行所述第三规则的动作:为所述第三业务流报文添加NSH头、设置NSH头域、并将处理后的第三业务流报文发往下一跳。其中,NSH头域包括SPI、SI,下一跳可以是SFF,还可以是其它规则。当下一跳是SFF时,SFF的地址可以用SFF的MAC地址,或IP地址表示,本申请实施例不做限定,以下实施例以MAC地址为例进行举例说明。
可选的,若所述转发设备为SFF,此情况下,所述转发设备将添加NSH的所述第三业务流报文转入至第四规则进行处理,所述第四规则的匹配域为NSH头特征,包括SPI和SI。当SI为0时,表明SPI对应的业务功能路径已经处理完毕,反之则表明SPI对应的业务功能路径没有处理完毕。若NSH中的SI不为零,所述第四规则的动作具体为:转发设备将添加NSH后的所述第三业务流报文发送至下一跳,该下一跳指的是转发设备的其它规则,例如,下一跳可以为所述第一规则;若NSH中的SI为零,所述第四规则的动作具体为:转发设备去除添加了NSH后的所述第三业务流报文的NSH,将去除NSH的所述第三业务流报文转发至网络。
可选的,所述转发设备还可以为SP设备,此情况下,所述转发设备将已添加NSH的所述第三业务流报文转发至SFF,由所述SFF处理添加NSH的所述第三业务流报文,具体的,所述SFF可以根据上述第四规则处理所述第三业务流报文,为了简洁,这里不再赘述。
应理解,在本申请实施例中,所述第一业务流报文、所述第二业务流报文和所述第三业务流报文属于同一业务流。
需要说明的是,本申请实施例中的具体规则,可以由Openflow协议中的流表项实现。后续实施例中,均以Openflow协议中的流表项来标识具体规则。
以下,结合图3至图6,介绍转发设备为SP设备或SFF时,根据本申请实施例的处理报文的方法。
图3是当转发设备为SP设备的情况下,根据本申请实施例的处理报文的方法的示意性流程图。如图3所示,所述方法包括:
在301中,SFC控制器构建业务功能路径,并向所述业务功能路径上的网元发送相应的规则。
具体地,所述SFC可以向分类器下发规则0,所述规则0的匹配域为协议层包头特征,例如,L3/L4/L7特征,所述分类器接收到业务流报文后,将所述业务流报文的报文头特征与所述规则0的匹配域进行匹配,若所述业务流报文的报文头特征与所述规则0的匹配域匹配成功,所述分类器执行的动作为:为所述业务流报文添加NSH,并设置NSH中的SPI和SI,并将添加了NSH的所述业务流报文转发至下一跳。其中,下一跳为SFF。所述SFF的地址可以用SFF的媒体接入控制(Media Access Control,MAC)地址表示,也可以用SFF的IP地址表示。
需要说明的是,分类器中的规则0可以是SFC控制器下发的,也可以通过如下方式实现:在分类器之前或之中部署DPI,所述分类器可以根据所述DPI对业务流报文进行深度检测的检测结果获取规则0,此情况下,所述分类器可以同样实现根据协议层包头特征(例如,L3/L4/L7特征)对所述业务流报文的报文头特征进行分类处理。
在302中,分类器可以根据规则0对所述业务流报文A进行处理;
具体的,所述规则0的匹配域为协议层包头特征,所述分类器可以将接收的业务流报文A的报文头特征与所述规则0的匹配域进行匹配,若所述业务流报文A的报文头特征与所述规则0的匹配域匹配成功,所述分类器执行所述规则0的动作:为所述业务流报文A添加NSH,并设置NSH中的SPI和SI,并将添加了NSH后的业务流报文发送至下一跳。本实施例中,将添加了NSH后的业务流报文记为业务流报文B。其中,业务流报文B的下一跳为SFF,所述SFF的地址可以用SFF的MAC地址或IP地址表示。
在303中,所述分类器向SFF发送所述业务流报文B。
在304中,所述SFF接收所述业务流报文B,并对所述业务流报文B进行处理。
对于SFF而言,在301中所述SFC控制器给所述SFF下发的规则为规则1,所述规则1的匹配域为NSH,所述SFF接收到所述业务流报文B时,所述SFF根据所述规则1对所述业务流报文B进行处理,具体的,将所述业务流报文B的报文头特征与所述规则1的匹配域进行匹配。若匹配到SI为零的具体规则,则去除业务流报文的NSH并将去除NSH的所述业务流报文B转发至网络;若匹配到SI不为零的具体规则,则将所述业务流报文B发送至下一跳。在图3的例子中,所述业务流报文B的下一跳为SP设备,所述SP设备的地址可以用SP设备的MAC地址表示,也可以用SP设备的IP地址表示,本申请实施例对此不作限定,仅以SP设备的MAC地址为例进行说明。
需要说明的是,此处的规则1表示的是一类规则,包含多个具体的规则,例如,可以包含2条具体的规则,分别是SI不等于0对应的具体规则、和SI=0对应的具体规则,无论业务流报文的报文头特征与两个具体规则中的哪个具体规则匹配成功,都可以认为是与所述规则1匹配成功。
在本实施例中,将步骤303处理后的所述业务流报文B称为业务流报文C。
在305中,所述SFF向SP设备发送所述业务流报文C。
在306中,所述SP设备接收所述业务流报文C,并对所述业务流报文C进行处理。
对于SP设备,在301中所述SFC控制器给所述SP设备下发的规则为规则2,所述规则2的匹配域为NSH,所述SP设备接收到所述业务流报文C时,将所述业务流报文C的报文头特征与所述规则2的匹配域进行匹配,若匹配成功,则创建规则3和规则4,并将所述业务流报文C转入至规则3或规则4进行处理,其中,所述规则3和规则4的优先级高于规则2。
具体的,所述规则3的匹配域为NSH,若所述业务流报文C的报文头特征与规则3的匹配域匹配成功,则执行所述规则3的动作:去除NSH,并将所述业务流报文C转发至下一跳。其中,所述业务流报文C的下一跳为SF设备,可以用SF设备的MAC地址或IP地址表示。所述规则4的匹配域为协议层包头特征,若匹配成功,执行所述规则4的动作为:为所述业务流报文C添加NSH,设置NSH的SPI,SI,并将添加NSH的业务流报文C转发至SFF。
以下,结合具体示例介绍对业务流报文的处理过程,业务流报文A的业务功能路径为Firewall->LB,即从防火墙设备到负载均衡设备。该业务功能路径的SPI为1,业务索引SI为2,该业务流报文A的L3特征为源IP为1.1.1.2,目的IP为3.1.1.2,源端口号为3,目的端口号为6,该业务流报文为L3报文。
在本示例中,SP设备可以为图1所示的网络架构中的SP设备,SFF可以为图1所示的网络架构中的SFF2,防火墙设备和负载均衡设备可以为图1所示的网络架构中的SF3和SF4,以SF3为防火墙设备,SF4为负载均衡设备为例进行描述。
以下,结合图4,详细介绍对业务流报文A的处理过程。
S1,所述分类器接收到所述业务流报文A后,可以将所述业务流报文A的报文头特征与所述分类器中的规则0的匹配域进行匹配,匹配成功,所述分类器为所述业务流报文A添加NSH,并设置NSH中的SPI为1,SI为2,将添加NSH后的业务流报文A记为业务流报文B,将所述业务流报文B转发给SFF。
具体的,分类器上的规则0具体表示如下:
Match:source IP=1.1.1.2,destination IP=3.1.1.2,source port=3,destination port=6;
Action:PUSH_NSH,set_NSH_field(SPI=1,SI=2),set_MAC_field(SFF MAC),output。
即所述规则0的匹配域为源IP为1.1.1.2,目的IP为3.1.1.2,源端口为3,目的端口为6,动作为:添加NSH,将添加NSH的业务流报文发送至SFF,也就是说,当分类器接收到的业务流报文的源IP为1.1.1.2,目的IP为3.1.1.2,源端口为3,目的端口为6,则分类器对该业务流报文执行如下处理:添加NSH,设置SPI为1,SI为2,并将添加了NSH的业务流报文发送至SFF。
S2,SFF接收业务流报文B,并根据所述SFF中的规则1对所述业务流报文B进行处理;
将所述业务流报文B的报文头特征与所述规则1的匹配域进行匹配,匹配到SPI为1,SI为2,即SI不为零对应的具体规则1,SFF将所述业务流报文B的目的地址设置为SP设备的MAC地址或IP地址,并转发至SP设备。在本实施例中,将SFF处理后的业务流报文B记为业务流报文C。
具体的,SFF上的规则1描述如下:
Match:NSH(SPI=1,SI≠0);
Action:set_MAC_field(SP MAC),output。
也就是所述规则1包括匹配域为SPI=1,SI≠0的具体规则1,当匹配成功时,执行如下动作:将业务流报文的地址设置为SP的MAC地址,也就是说,当SFF接收到的业务流报文的头特征为SPI为1,SI不为0时,SFF将所述业务流报文发送至SP。
Match:NSH(SPI=1,SI=0);
Action:POP_NSH,output。
也就是所述规则1包括匹配域为SPI=1,SI=0的具体规则2,当匹配成功时,执行如下动作:去除业务流报文的NSH头,并发送至网络,也就是说,当SFF接收到的业务流报文的头特征为SPI为1,SI为0时,SFF将所述业务流报文去除NSH,并发送至网络。
总的来说,SFF中的规则1可以包括两个具体规则,即SPI=1,SI≠0对应的具体规则1和SPI=1,SI=0对应的具体规则2,当业务流报文的报文头特征与所述规则1包括具体规则1或具体规则2中的任一具体规则匹配成功,即可认为所述业务流报文的报文头特征与所述规则1的匹配域匹配成功。
结合前述示例,所述业务流报文B的报文头特征与规则1的具体规则1的匹配域匹配成功,即所述业务流报文B的报文头特征与规则1匹配成功,则执行具体规则1的动作,将业务流报文C发送至SP设备。
S3,SP设备接收业务流报文C,并根据所述SP设备中的规则2对所述业务流报文C进行处理。
具体的,所述SP设备将所述业务流报文C的报文头特征与所述规则2的匹配域进行匹配,匹配到SPI为1,SI为2对应的具体规则,创建规则3和规则4,并将业务流报文C转入至规则3或规则4进行处理。在本实施例中,将SP处理后的业务流报文C记为业务流报文D。
SP设备上的规则2描述如下:
Match:NSH_header(SPI=1,SI=2);
Action:create_rule(rule3),create_rule(rule4),gotorule(rule3)。
也就是所述规则2包括匹配域为SPI=1,SI=2对应的具体规则,当匹配成功时,执行如下动作:创建规则3和规则4,并将报文转入至规则3进行处理。也就是说,当SP设备接收到的业务流报文的头特征为SPI为1,SI为2时,SP设备创建2个规则:规则3和队则4,并将接收到的业务流报文转入至规则3进行处理。
其中,根据规则2创建的规则3描述如下:
Match:NSH_header(SPI=1,SI=2);
Action:POP_NSH,set_MAC_field(Firewall MAC),output。
也就是所述规则3包括匹配域为SPI=1,SI=2对应的具体规则,当匹配成功时,执行如下动作:设置业务流报文的地址为防火墙的地址,也就是说,当SP设备接收到的业务流报文的头特征为SPI为1,SI为2时,SP设备将所述业务流报文发送至Firewall。
根据规则2创建的规则4表示如下:
Match:source IP=1.1.1.2,destination IP=3.1.1.2,source port=3,destination port=6;
Action:PUSH_NSH,set_NSH_field(SPI=1,SI=1),set_MAC_field(SFF MAC),output。
表示当SP设备接收到的业务流报文的源IP为1.1.1.2,目标IP为3.1.1.2,源端口为3,目的端口为6,则SP设备对接收到的业务流报文执行如下动作:添加NSH,设置SPI为1,SI为1,并将添加了NSH的业务流报文发送至SFF。
结合前述示例,业务流报文C的报文头特征与规则3的匹配域匹配成功,所述SP执行规则3的动作:去除所述业务流报文C的NSH,并将去除了NSH的业务流报文C发送至下一跳。其中,所述去除了NSH的业务流报文C的下一跳为防火墙设备,所述防火墙设备的地址可以用防火墙设备的MAC地址或IP地址表示。本实施例中,仅以用MAC地址表示作为示例,将去除了NSH的业务流报文C称为业务流报文D。
S4,防火墙设备接收到业务流报文D后,对所述业务流报文D进行处理,并将处理后的业务流报文D发送至SP设备。本实施例中,将经防火墙处理后的业务流报文D称为业务流报文E。
S5,SP设备接收到业务流流报文E后,可以将业务流报文E的报文头特征与所述SP设备中的规则4的匹配域进行匹配,若匹配成功,则为所述业务流报文E添加NSH,并设置NSH中的SPI为1,SI为1,将所述业务流报文E的目的地址设置为SFF的MAC地址或IP地址,并将所述业务流报文E转发至SFF。本实施例中,将SP设备处理后的业务流报文E记为业务流报文F。
S6,SFF接收到所述业务流报文F后,根据所述SFF中的规则1对业务流报文F进行处理,具体的,判定业务流报文F的NSH的SI不为零,将所述业务流报文F的目的地址设置为SP设备的MAC地址或IP地址,将业务流报文F转发给SP设备。
S7,SP设备接收到业务流报文F后,按照所述SP设备中的规则的优先级依次匹配,先匹配规则3或规则4,若匹配不成功,继续匹配规则2。
结合前述示例,SP设备接收到业务流报文F后,因为业务流报文F是NSH头报文,且NSH中的SPI=1,SI=1,因此与规则3和规则4匹配失败。所述SP设备继续匹配所述SP中的其他规则,例如,规则2,若匹配成功,根据规则2,创建2个高先级规则5和规则6,并将业务流报文F转入至规则5进行处理。
其中,规则5的匹配域为NSH,规则5的动作为:去除NSH,并将接收到的业务流报文发送至下一跳。其中,所述接收到的业务流报文的下一跳为SF设备,所述SF设备的地址可以用SF设备的MAC地址表示,也可以由SF设备的IP地址表示,本申请实施例不做限定。规则6的匹配域为协议层包头特征,所述规则6的动作为:添加NSH头,并将接收到的业务流报文发送至下一跳。其中,所述接收到的业务流报文的下一跳为SFF,可以用SFF的MAC地址表示,也可以用SFF的IP地址表示,本申请实施例不做限定。
需要说明的是,本实施例中的规则2是一类规则,包含多个具体的规则,除了包含S3中描述的具体规则外,还可以包括如下规则:
Match:NSH_header(SPI=1,SI=1);
Action:create_rule(rule5),create_rule(rule6),gotorule(rule5)。
也就是所述规则1还可以包括匹配域为SPI=1,SI=1对应的具体规则3,当匹配成功时,执行如下动作:创建规则5和规则6,将业务流报文转入至规则5进行处理。也就是说,当SFF接收到的业务流报文的SPI为1,SI为1时,SFF创建2个高优先级规则:规则5和规则6,并将业务流报文转入至规则5进行处理。
总的来说,所述规则2可以包括如下具体规则:SPI=1,SI=2对应的具体规则1,SPI=1,SI=0对应的具体规则2,SPI=1,SI=1对应的具体规则3。当业务流报文的报文头特征与所述规则2包括具体规则1~具体规则3中的任一具体规则匹配成功,即可认为所述业务流报文的报文头特征与所述规则2的匹配域匹配成功。
规则5的描述如下:
Match:NSH_header(SPI=1,SI=1);
Action:POP_NSH,set_MAC_field(LB MAC),output。
表示的是当SFF接收到的业务流报文的SPI为1,SI为1时,SFF对业务流报文执行如下处理:去除NSH头,并将去除了NSH头的业务流报文发送至LB设备。
根据规则2创建的规则6描述如下:
Match:source IP=1.1.1.2,destination IP=3.1.1.2,source port=3,destination port=6;
Action:PUSH_NSH,set_NSH_field(SPI=1,SI=0),set_MAC_field(SFF MAC),output。
表示当SP设备接收到的业务流报文的源IP为1.1.1.2,目标IP为3.1.1.2,源端口为3,目的端口为6时,则SP设备对接收到的业务流报文执行如下动作:添加NSH,设置SPI为1,SI为0,并将添加了NSH的业务流报文发送至SFF。
在本实施例中,SP设备接收业务流报文F后,按照规则优先级依次匹配SP设备上的规则。与规则2匹配成功,执行规则2的动作,创建2个高先级规则:规则5和规则6,并将业务流报文F转入至规则5。将业务流报文F的NSH头特征与规则5的匹配域进行匹配,匹配成功,则执行规则5的动作:去除业务流报文E的NSH,将去除了NSH的业务流报文E发送至LB设备。本申请实施例中,将去除了NSH的业务流报文F称为业务流报文G。
S8,LB设备接收到业务流报文G后,对所述业务流报文G进行处理,将处理后的业务流报文G转发至SP设备,将处理后的业务流报文G记为业务流报文H。
S9,SP设备接收到业务流报文H后,按照所述SP中的规则的优先级依次匹配。结合前述示例,所述业务流报文H的报文头特征与规则6的匹配域匹配成功,则执行规则6的动作:添加NSH,设置SPI为1,SI为0,并将添加了NSH的业务流报文发送至SFF。其中,SFF的地址可以用SFF的MAC地址或IP地址表示,将添加NSH的业务流报文H记为业务流报文I。
S10,SFF接收到业务流报文I后,根据所述SFF中的规则1对所述业务流报文I进行处理,由于此时,SI为零,即到达业务功能路径的结束位置,所述SFF执行规则1包括的具体规则2的动作:去除业务流报文I的NSH,将去除NSH的业务流报文I转发至网络。
图5所示为当转发设备为SFF时,根据本申请实施例的处理报文的方法的示意性流程图。也就是说,在本实施例中,具备创建规则能力的为SFF,如图5所示,所述方法包括如下内容:
501,SFC控制器构建业务功能链SFC,并向所述业务功能路径上的网元发送相应的规则。
具体的,对于分类器,在501中所述SFC控制器下发的规则为规则1,所述规则1的匹配域为协议层包头特征。
在502中,所述分类器根据所述分类器中的规则1对业务流报文A进行处理。
具体的,所述分类器可以将接收的业务流报文A的报文头特征与所述规则1的匹配域进行匹配,若所述业务流报文A的报文头特征与所述规则1的匹配域匹配成功,所述分类器执行所述规则1的动作:为所述业务流报文A添加NSH,并设置NSH中的SPI和SI,并将添加NSH的所述业务流报文A发送至SFF。本实施例中,将添加了NSH后的业务流报文A记为业务流报文B。
在503中,将所述业务流报文B转发给SFF。
在504中,所述SFF接收所述业务流报文B,并对业务流报文B进行处理。
对于SFF而言,在501中所述SFC控制器下发的规则为规则2,所述规则2的匹配域为NSH,所述SFF接收到所述业务流报文B时,将所述业务流报文B的报文头特征与所述规则2的匹配域进行匹配,若匹配到SI为零,则去除业务流报文B的NSH并将去除NSH的业务流报文B转发至网络,若匹配到SI不为零,创建规则3和规则4,并根据规则3或规则4对所述业务流报文B进行处理,其中,所述规则3和规则4的优先级高于规则2。所述规则3的匹配域为NSH,若匹配成功,所述规则3的动作为:去除NSH,将业务流报文的目的地址设置为SF的MAC地址或IP地址,并将业务流报文转发至SF。所述规则4的匹配域为协议层包头特征,若匹配成功,所述规则4的动作为:为业务流报文添加NSH,并修改NSH的SPI和SI,并根据前述的第四规则处理已添加NSH的所述业务流报文,为了简洁,这里不再赘述。
以下,结合具体示例介绍对业务流报文的处理过程,业务流报文A的业务功能路径为Firewall->LB,即从防火墙设备到负载均衡设备。该业务功能路径的SPI为1,业务索引SI为2,该业务流报文A的L3特征为源IP为1.1.1.2,目的IP为3.1.1.2,源端口号为3,目的端口号为6,该业务流报文为L3报文。
在本示例中,SFF设备可以为图1所示的网络架构中的SFF1设备,防火墙设备和负载均衡设备可以为图1所示的网络架构中的SF1和SF2,以SF1为防火墙设备,SF2为负载均衡设备为例进行描述。
以下,结合图6,详细介绍对业务流报文A的处理过程。
S1,所述分类器接收到所述业务流报文A后,可以将所述业务流报文A的报文头特征与所述规则1的匹配域进行匹配,匹配成功,所述分类器为所述业务流报文A添加NSH,并设置NSH中的SPI为1,SI为2,将添加NSH后的业务流报文A记为业务流报文B,并设置所述业务流报文B的目的地址为SFF的MAC地址或IP地址,将所述业务流报文B转发给SFF。
具体的,规则1的描述如下:
Match:source IP=1.1.1.2,destination IP=3.1.1.2,source port=3,destination port=6;
Action:PUSH_NSH,set_NSH_field(SPI=1,SI=2),set_MAC_field(SFF MAC),output。
表示当分类器接收到的业务流报文的源IP为1.1.1.2,目的IP为3.1.1.2,源端口为3,目的端口为6,则分类器对该业务流报文执行如下处理:添加NSH,设置SPI为1,SI为2,并将添加了NSH的业务流报文发送至SFF。
S2,SFF根据规则2对所述业务流报文B进行处理,具体的,将所述业务流报文B的报文头特征与所述规则2的匹配域进行匹配,匹配到SPI为1,SI为2,则SFF创建2个高优先级规则:规则3和规则4,并将该业务流报文B转入至规则3进行处理。
其中,规则3的匹配域为NSH,包括SP、SI,所述规则3的动作为:SFF去除业务流报文的NSH,并将去除NSH的业务流报文发送至SF。规则4的匹配域为协议层包头特征,所述规则4的动作为:SFF为业务流报文添加NSH,设置SPI、SI,并将添加了NSH的业务流报文推送至规则2进行处理。
结合前述示例,规则2的描述如下:
Match:NSH(SPI=1,SI=2);
Action:create_rule(rule3),create_rule(rule4),gotorule(rule3)。
表示当SFF接收到的业务流报文头特征为SPI为1,SI为2时,SFF创建2个高先级规则,并将业务流报文转入至规则3进行处理。
Match:NSH(SPI=1,SI=0);
Action:POP_NSH,output。
表示当SFF接收到的业务流报文的头特征为SPI为1,SI为0时,SFF将所述业务流报文去除NSH,并发送至网络。
根据规则2创建的高优先级规则3的描述如下:
Match:NSH_header(SPI=1,SI=2);
Action:POP_NSH,set_MAC_field(Firewall MAC),output;
表示当SP设备接收到的业务流报文的头特征为SPI为1,SI为2时,SP设备将所述业务流报文发送至防火墙设备。
根据规则2创建的高优先级规则4描述如下:
Match:source IP=1.1.1.2,destination IP=3.1.1.2,source port=3,destination port=6;
Action:PUSH_NSH,set_NSH_field(SPI=1,SI=1),gotorule(rule2)。
表示当SP设备接收到的业务流报文的源IP为1.1.1.2,目标IP为3.1.1.2,源端口为3,目的端口为6,则SP设备对接收到的业务流报文执行如下动作:添加NSH,设置SPI为1,SI为1,并将添加了NSH的业务流报文转入至规则2。
结合前述示例,所述业务流报文B的报文头特征与规则3的匹配域匹配成功,则执行规则3的动作,将经SFF处理后的所述业务流报文B记为业务流报文C,将业务流报文C发送给防火墙设备。
S3,防火墙设备接收到所述业务流报文C后,对所述业务流报文C进行处理,并将处理后的业务流报文C发送至SFF。
S4,SFF接收到经所述防火墙设备处理后的所述业务流流报文C后,按照所述SFF中的规则的优先级依次进行匹配,直至匹配到某一规则,则执行相应的动作。
结合前述示例,所述业务流报文C为L3报文,将所述业务流报文C的报文头特征与所述规则4的匹配域进行匹配,若匹配成功,则执行规则4的动作:为所述业务流报文C添加NSH,并设置NSH中的SPI为1,SI为1,将添加NSH的业务流报文C记为业务流报文D,然后根据规则2对所述业务流报文D进行处理。
需要说明的是,本实施例的规则2指的是一类规则,除了包含S2中所示的具体规则外,还可以包括如下具体规则:
Match:NSH(SPI=1,SI=1);
Action:create_rule(rule5),create_rule(rule6),gotorule(rule5)。
表示当SFF接收到的业务流报文头特征为SPI为1,SI为1时,SFF创建2个高先级规则:规则5和规则6,并将业务流报文转入至规则5进行处理。
也就是说,所述规则2可以包括如下具体规则:SPI=1,SI=2对应的具体规则1,SPI=1,SI=0对应的具体规则2,SPI=1,SI=1对应的具体规则3,当业务流报文的报文头特征与所述规则2包括具体规则1~具体规则3中的任一具体规则匹配成功,即可认为所述业务流报文的报文头特征与所述规则2的匹配域匹配成功。。
根据规则2创建的高优先级规则5的描述如下:
Match:NSH_header(SPI=1,SI=1);
Action:POP_NSH,set_MAC_field(LB MAC),output。
表示当SFF接收到的业务流报文的头特征为SPI为1,SI为1时,SFF执行如下动作:去除NSH头,并将所述业务流报文发送至LB设备。
根据规则2创建的高优先级规则6描述如下:
Match:source IP=1.1.1.2,destination IP=3.1.1.2,source port=3,destination port=6;
Action:PUSH_NSH,set_NSH_field(SPI=1,SI=0),gotorule(rule2)。
表示当SFF接收到的业务流报文的源IP为1.1.1.2,目标IP为3.1.1.2,源端口为3,目的端口为6,则SFF对接收到的业务流报文执行如下动作:添加NSH,设置SPI为1,SI为0,并将添加了NSH的业务流报文转入至规则2。
结合前述示例,业务流报文D的报文头特征与规则5的匹配域匹配成功,执行规则5的动作:去除业务流报文D的NSH,将去除了NSH的业务流报文称为业务流报文E,将业务流报文E发送至LB设备。
S5,LB设备接收到业务流报文E后,对所述业务流报文E进行处理,将处理后的业务流报文E转发至SFF。
S6,SFF接收到经LB设备处理后的所述业务流流报文E后,按照所述SFF中的规则的优先级依次进行匹配,直至匹配到某一规则,则执行相应的动作。
需要说明的是,SFF中的规则3、规则4、规则5、规则6的优先级相同,且都高于规则2。
所述业务流流报文E的报文头特征为L3特征,与规则6的匹配域匹配成功,则SFF执行规则6的动作:为所述业务流报文E添加NSH,设置SPI为1,SI为0,并将添加了NSH的业务流报文转入至规则2。本实施例中,将添加了NSH的业务流报文E称为业务流报文F。
此时,业务流报文F中的SI为0,匹配到规则2的中SPI=1,SI为0对应的具体规则2,即到达业务功能路径的结束位置,所述SFF去除业务流报文F的NSH,将去除NSH的业务流报文F转发至网络,至此,所述业务流报文A的处理过程结束。
因此,本申请实施例的处理报文的方法,转发设备可以根据SFC控制器下发的第一规则,生成两个优先级较高的第二规则和第三规则,从而可以根据所述第二规则和所述第三规则处理来自分类器,SFF或SF设备的业务流报文,因此,所述转发设备不用通过上报SFC控制器获取恢复NSH的规则,从而,有利于降低控制信令的开销。从另一方面来讲,也有利于避免转发设备上存储大量的转发规则对存储空间的浪费。
上文结合图2至图6,详细描述了本申请的方法实施例,下文结合图7至图9,描述本申请的装置实施例,应理解,装置实施例与方法实施例相互对应,类似的描述可以参照方法实施例。
图7是根据本申请实施例的处理报文的装置的示意框图。图7的装置700的一个例子是转发设备,例如,SFF或SP。装置700包括接收模块710,匹配模块720和操作模块730。
接收模块710,用于从业务功能链控制器接收第一规则,所述第一规则包括匹配域,所述匹配域为网络服务包头NSH,
所述接收模块710还用于接收第一业务流报文;
匹配模块720,用于将所述第一业务流报文的报文头特征与所述第一规则的匹配域进行匹配;
操作模块730,用于在所述第一业务流报文的报文头特征与所述第一规则的匹配域匹配成功的情况下,根据所述第一规则创建第二规则和第三规则,所述第二规则和所述第三规则的优先级高于所述第一规则。
可选地,在一些实施例中,所述第一规则的匹配域还包括协议层包头特征。
可选地,在一些实施例中,所述第二规则的匹配域为NSH,所述接收模块710还用于:
从业务功能转发器SFF或分类器接收第二业务流报文,
所述匹配模块720还用于:
将所述第二业务流报文的报文头特征与所述第二规则的匹配域进行匹配,所述第二业务流报文的报文头特征包括NSH;
所述操作模块730还用于:若所述第二业务流报文的报文头特征与所述第二规则的匹配域匹配成功,执行所述第二规则的动作:去除所述第二业务流报文的NSH,并将处理后的第二业务流报文转发至业务功能SF设备。
可选地,在一些实施例中,所述第二规则的匹配域还包括协议层包头特征。
可选地,在一些实施例中,所述第三规则的匹配域为协议层包头特征,所述接收模块710还用于:
从SF设备接收第三业务流报文,
所述匹配模块720还用于:
将所述第三业务流报文的报文头特征与所述第三规则的匹配域进行匹配;
所述操作模块730还用于:
若所述第三业务流报文的报文头特征与所述第三规则的匹配域匹配成功,执行所述第三规则的动作:为所述第三业务流报文添加NSH。
可选地,在一些实施例中,所述转发设备为SFF,所述操作模块还用于:
处理已添加NSH的所述第三业务流报文。
可选地,在一些实施例中,所述转发设备为SP设备,所述装置还包括:
发送模块,用于将已添加NSH的所述第三业务流报文转发至SFF。
可选地,在一些实施例中,所述第一业务流报文、所送第二业务流报文和所述第三业务流报文属于同一业务流。
具体地,该装置700可对应于根据本申请实施例的处理报文的方法200中的转发设备,或图3所示方法中SP设备,或图5所示方法中的SFF,该装置700可以包括用于执行图2中方法200中转发设备,或图3中SP设备或图5中SFF执行的方法的实体单元。并且,该装置700中的各实体单元和上述其他操作和/或功能分别为了实现图2中方法200中转发设备,或图3中SP设备或图5中SFF的相应流程,为了简洁,在此不再赘述。
如图8所示,本申请实施例提供一种处理数据报文的装置的其中一种硬件实现。该装置可以是转发设备,示例性的,可以是SFF或SP设备。
该装置包括处理器、存储器、第一网络接口,第二网络接口和第三网络接口。其中第一网络接口,第二网络接口,第三网络接口,处理器和存储器之间通信连接。第一网络接口可以与控制设备连接,进行交互,示例性的,该控制设备可以是SFC控制器。第二网络接口作为该装置的输入端口,可以用于接收业务流报文。第三网络接口作为该装置的输出端口,可以用于发送经过处理器处理的业务流报文。示例性的,每个网络接口可以包含多个输入和输出端口。第一、第二和第三网络接口可以是相互独立的网络接口,也可相互合并为一个网络接口;存储器可以为半导体存储单元,可以直接被处理器访问。
其中,存储器用于存储计算机可执行的程序代码,该程序代码用来执行如图2,图3或图5所示的处理报文的方法,以及用于存储本申请实施例提供的流表项。处理器,用于根据存储器存储的计算机可执行的程序代码,执行如图2,图3或图5所示的处理报文的方法,对接收到的业务流报文进行处理。
本申请另一实施例还提供一种处理报文的系统,如图9所示,该系统包括转发设备910和控制设备920。
可选地,所述处理报文的系统还可以包括分类器。示例性的,所述转发设备910可以为图7所示的装置700,所述控制设备920可以为图1所示的SFC控制器,或也可以为图2所示的方法200,图3或图5中的SFC控制器。
本申请实施例还提供了一种计算机可读介质,所述计算机可读介质存储用于计算机执行的程序代码,所述程序代码用于执行如图2,图3或图5所示的处理数据报文的方法。
本申请实施例还提供一种计算机程序产品。该计算机程序产品包括能够被计算机执行的程序代码,该程序代码用来执行如图2,图3或图5所示的处理数据报文的方法。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种处理报文的方法,其特征在于,包括:
转发设备从业务功能链控制器接收第一规则,所述第一规则包括匹配域,所述匹配域为网络服务包头NSH;
所述转发设备接收第一业务流报文,将所述第一业务流报文的报文头特征与所述第一规则的匹配域进行匹配;
若所述第一业务流报文的报文头特征与所述第一规则的匹配域匹配成功,所述转发设备根据所述第一规则创建第二规则和第三规则,所述第二规则和所述第三规则的优先级高于所述第一规则;
所述转发设备接收第二业务流报文,将所述第二业务流报文的报文头特征与所述第二规则的匹配域进行匹配,若所述第二业务流报文的报文头特征与所述第二规则的匹配域匹配失败,所述转发设备将所述第二业务流报文的报文头特征与所述第三规则的匹配域进行匹配,若所述第二业务流报文的报文头特征与所述第三规则的匹配域匹配失败,所述转发设备将所述第二业务流报文的报文头特征与所述第一规则的匹配域进行匹配;
或者,
所述转发设备接收第二业务流报文,将所述第二业务流报文的报文头特征与所述第三规则的匹配域进行匹配,若所述第二业务流报文的报文头特征与所述第三规则的匹配域匹配失败,所述转发设备将所述第二业务流报文的报文头特征与所述第二规则的匹配域进行匹配,若所述第二业务流报文的报文头特征与所述第二规则的匹配域匹配失败,所述转发设备将所述第二业务流报文的报文头特征与所述第一规则的匹配域进行匹配。
2.根据权利要求1所述的方法,其特征在于,所述第一规则的匹配域还包括协议层包头特征。
3.根据权利要求1所述的方法,其特征在于,所述第二规则的匹配域为NSH,所述转发设备接收第二业务流报文,包括:
所述转发设备从业务功能转发器SFF或分类器接收所述第二业务流报文,所述第二业务流报文的报文头包括NSH;
所述方法还包括:
若所述第二业务流报文的报文头特征与所述第二规则的匹配域匹配成功,执行所述第二规则的动作:去除所述第二业务流报文的NSH,并将处理后的第二业务流报文转发至业务功能SF设备。
4.根据权利要求3所述的方法,其特征在于,所述第二规则的匹配域还包括协议层包头特征。
5.根据权利要求3或4所述的方法,其特征在于,所述第三规则的匹配域为协议层包头特征,所述方法还包括:
所述转发设备从SF设备接收第三业务流报文,
将所述第三业务流报文的报文头特征与所述第三规则的匹配域进行匹配;
若所述第三业务流报文的报文头特征与所述第三规则的匹配域匹配成功,执行所述第三规则的动作:为所述第三业务流报文添加NSH。
6.根据权利要求5所述的方法,其特征在于,所述转发设备为SFF,所述方法还包括:
处理已添加NSH的所述第三业务流报文。
7.根据权利要求5所述的方法,其特征在于,所述转发设备为SP设备,所述方法还包括:
将已添加NSH的所述第三业务流报文转发至SFF。
8.根据权利要求5所述的方法,其特征在于,所述第一业务流报文、所述第二业务流报文和所述第三业务流报文属于同一业务流。
9.一种处理报文的装置,其特征在于,包括:
接收模块,用于从业务功能链控制器接收第一规则,所述第一规则包括匹配域,所述匹配域为网络服务包头NSH,
所述接收模块还用于接收第一业务流报文;
匹配模块,用于将所述第一业务流报文的报文头特征与所述第一规则的匹配域进行匹配;
操作模块,用于在所述第一业务流报文的报文头特征与所述第一规则的匹配域匹配成功的情况下,根据所述第一规则创建第二规则和第三规则,所述第二规则和所述第三规则的优先级高于所述第一规则;
所述接收模块,还用于接收第二业务流报文;
所述匹配模块,还用于将所述第二业务流报文的报文头特征与所述第二规则的匹配域进行匹配,若所述第二业务流报文的报文头特征与所述第二规则的匹配域匹配失败,将所述第二业务流报文的报文头特征与所述第三规则的匹配域进行匹配,若所述第二业务流报文的报文头特征与所述第三规则的匹配域匹配失败,将所述第二业务流报文的报文头特征与所述第一规则的匹配域进行匹配;
或者,
所述匹配模块,还用于将所述第二业务流报文的报文头特征与所述第三规则的匹配域进行匹配,若所述第二业务流报文的报文头特征与所述第三规则的匹配域匹配失败,将所述第二业务流报文的报文头特征与所述第二规则的匹配域进行匹配,若所述第二业务流报文的报文头特征与所述第二规则的匹配域匹配失败,将所述第二业务流报文的报文头特征与所述第一规则的匹配域进行匹配。
10.根据权利要求9所述的装置,其特征在于,所述第一规则的匹配域还包括协议层包头特征。
11.根据权利要求9所述的装置,其特征在于,所述第二规则的匹配域为NSH,所述接收模块具体用于:
从业务功能转发器SFF或分类器接收所述第二业务流报文,所述第二业务流报文的报文头包括NSH;
所述操作模块还用于:
若所述第二业务流报文的报文头特征与所述第二规则的匹配域匹配成功,执行所述第二规则的动作:去除所述第二业务流报文的NSH,并将处理后的第二业务流报文转发至业务功能SF设备。
12.根据权利要求11所述的装置,其特征在于,所述第二规则的匹配域还包括协议层包头特征。
13.根据权利要求11或12所述的装置,其特征在于,所述第三规则的匹配域为协议层包头特征,所述接收模块还用于:
从SF设备接收第三业务流报文,
所述匹配模块还用于:
将所述第三业务流报文的报文头特征与所述第三规则的匹配域进行匹配;
所述操作模块还用于:
若所述第三业务流报文的报文头特征与所述第三规则的匹配域匹配成功,执行所述第三规则的动作:为所述第三业务流报文添加NSH。
14.根据权利要求13所述的装置,其特征在于,所述装置为SFF,所述操作模块还用于:
处理已添加NSH的所述第三业务流报文。
15.根据权利要求13所述的装置,其特征在于,所述装置为SP设备,所述装置还包括:
发送模块,用于将已添加NSH的所述第三业务流报文转发至SFF。
16.根据权利要求13所述的装置,其特征在于,所述第一业务流报文、所述第二业务流报文和所述第三业务流报文属于同一业务流。
17.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至8中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/078608 WO2018176272A1 (zh) | 2017-03-29 | 2017-03-29 | 处理报文的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110431885A CN110431885A (zh) | 2019-11-08 |
CN110431885B true CN110431885B (zh) | 2021-02-26 |
Family
ID=63673970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780088660.1A Expired - Fee Related CN110431885B (zh) | 2017-03-29 | 2017-03-29 | 处理报文的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200028779A1 (zh) |
EP (1) | EP3589024A4 (zh) |
CN (1) | CN110431885B (zh) |
WO (1) | WO2018176272A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2576323B (en) * | 2018-08-13 | 2021-01-06 | Metaswitch Networks Ltd | Programmable packet data processing system |
US11411843B2 (en) * | 2019-08-14 | 2022-08-09 | Verizon Patent And Licensing Inc. | Method and system for packet inspection in virtual network service chains |
CN115277582B (zh) * | 2022-07-13 | 2024-03-26 | 清华大学 | 一种软件数据包分类加速方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104639404A (zh) * | 2013-11-08 | 2015-05-20 | 天津瑞辰永道信息科技有限公司 | 一种多媒体宽带接入网络系统 |
WO2016011616A1 (zh) * | 2014-07-23 | 2016-01-28 | 华为技术有限公司 | 业务报文转发方法及装置 |
US20160028640A1 (en) * | 2014-07-22 | 2016-01-28 | Futurewei Technologies, Inc. | Service Chain Header and Metadata Transport |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110093169A (ko) * | 2010-02-11 | 2011-08-18 | 주식회사 팬택 | 반송파 집합화에서 지시 정보를 송신 및 수신하는 방법 및 장치 |
EP3079301B1 (en) * | 2013-12-31 | 2018-05-02 | Huawei Technologies Co., Ltd. | Packet processing method, apparatus and system |
CN104518969B (zh) * | 2014-12-12 | 2018-12-25 | 北京智谷睿拓技术服务有限公司 | 数据报文处理方法、装置及交换机 |
CN106465230B (zh) * | 2015-02-13 | 2019-07-23 | 华为技术有限公司 | 控制接入的装置、系统和方法 |
-
2017
- 2017-03-29 EP EP17902970.7A patent/EP3589024A4/en not_active Withdrawn
- 2017-03-29 CN CN201780088660.1A patent/CN110431885B/zh not_active Expired - Fee Related
- 2017-03-29 WO PCT/CN2017/078608 patent/WO2018176272A1/zh unknown
-
2019
- 2019-09-27 US US16/585,454 patent/US20200028779A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104639404A (zh) * | 2013-11-08 | 2015-05-20 | 天津瑞辰永道信息科技有限公司 | 一种多媒体宽带接入网络系统 |
US20160028640A1 (en) * | 2014-07-22 | 2016-01-28 | Futurewei Technologies, Inc. | Service Chain Header and Metadata Transport |
WO2016011616A1 (zh) * | 2014-07-23 | 2016-01-28 | 华为技术有限公司 | 业务报文转发方法及装置 |
Non-Patent Citations (2)
Title |
---|
Andrew R. Curtis.DevoFlow: Scaling Flow Management for High-Performance Networks.《 ACM SIGCOMM Computer Communication Review》.2011, * |
DevoFlow: Scaling Flow Management for High-Performance Networks;Andrew R. Curtis;《 ACM SIGCOMM Computer Communication Review》;20110815;第1-2、3.2.4、4.1-4.2节 * |
Also Published As
Publication number | Publication date |
---|---|
WO2018176272A1 (zh) | 2018-10-04 |
US20200028779A1 (en) | 2020-01-23 |
EP3589024A1 (en) | 2020-01-01 |
EP3589024A4 (en) | 2020-01-08 |
CN110431885A (zh) | 2019-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11792046B2 (en) | Method for generating forwarding information, controller, and service forwarding entity | |
US20220329523A1 (en) | System and method for dataplane-signaled packet capture in ipv6 environment | |
CN108702331B (zh) | Sr应用段与服务功能链(sfc)报头元数据的集成 | |
CN108141416B (zh) | 一种报文处理方法、计算设备以及报文处理装置 | |
US10250501B2 (en) | Service packet forwarding method and apparatus | |
CN107005472B (zh) | 一种用于提供域间服务功能链接的方法及装置 | |
US7889748B1 (en) | Mapping a port on a packet switch appliance | |
CN110138618B (zh) | 一种报文处理方法、装置及系统 | |
CN109361606B (zh) | 一种报文处理系统及网络设备 | |
CN106878194B (zh) | 一种报文处理方法和装置 | |
CN110431885B (zh) | 处理报文的方法和装置 | |
CN111801911B (zh) | 业务功能链拥塞跟踪 | |
US20170201466A1 (en) | Data packet processing apparatus and method | |
CN107005470A (zh) | 用于创建数据分组的子流的方法 | |
US20170222953A1 (en) | User packet forwarding control method and processing node | |
KR101500251B1 (ko) | 통신 시스템, 노드, 패킷 전송 방법 및 프로그램을 기록한 컴퓨터 판독가능 기록 매체 | |
CN114338510B (zh) | 控制和转发分离的数据转发方法和系统 | |
EP3166273B1 (en) | Method and system for processing service node ability | |
US10177935B2 (en) | Data transfer system, data transfer server, data transfer method, and program recording medium | |
CN105282055B (zh) | 识别网络分组的内部目的地的方法及其装置 | |
CN110235417A (zh) | 一种sdn及其报文转发的方法和装置 | |
US9356864B2 (en) | Packet transfer apparatus and packet relay method | |
CN113556345A (zh) | 一种报文处理方法、装置、设备及介质 | |
US10063487B2 (en) | Pattern matching values of a packet which may result in false-positive matches |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210226 |