CN110784535B - 报文转发方法、装置及网络设备 - Google Patents
报文转发方法、装置及网络设备 Download PDFInfo
- Publication number
- CN110784535B CN110784535B CN201911023627.8A CN201911023627A CN110784535B CN 110784535 B CN110784535 B CN 110784535B CN 201911023627 A CN201911023627 A CN 201911023627A CN 110784535 B CN110784535 B CN 110784535B
- Authority
- CN
- China
- Prior art keywords
- service
- node
- message
- board
- board group
- 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.)
- Active
Links
Images
Classifications
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种报文转发方法、装置及网络设备,报文转发方法应用于网络设备中的接口板,设备还包括至少一种业务类型的业务板组,包括:接收第一报文,并确定第一报文所对应的服务链;从服务链中选取第一节点,向与第一节点对应的第一业务板组发送第一报文,第一业务板组用于向接口板发送包含第一报文的第二报文;接收第二报文,并判断服务链是否包括除第一节点外的第二节点;若是,则从第二节点中选取一节点作为新的第一节点,并以第二报文作为新的第一报文,重复执行向与所述第一节点对应的第一业务板组发送第一报文的过程,直至服务链不包括第二节点。通过在一台设备内实现服务链内报文的转发,可以简化服务链结构,并降低成本。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种报文转发方法、装置及网络设备。
背景技术
如图1所示的设备间服务链结构,每条服务链中的各个节点依次连接,每个节点由一台设备实现,负责处理一种业务。VCFC(VCF Controller,VCF控制器)基于不同的租户应用向服务链中的接入点下发引流规则以引导报文进入某条服务链,报文进入服务链后按照各节点的连接顺序依次传递。例如:服务链包括节点1、节点2和节点3,业务处理顺序为节点1→节点2→节点3,那么报文的处理过程为进入节点1由节点1先进行处理,然后进入节点2由节点2处理,再进入节点3由节点处理,最后由节点3转发处理后的报文。
然而,由于服务链中的每个节点由一台设备实现且只处理一种业务,如果需要实现多种业务,就需要布设多台设备,进而导致服务链结构复杂且实现成本高。
发明内容
本发明的目的是针对上述现有技术的不足提出的一种报文转发方法、装置及网络设备,该目的是通过以下技术方案实现的。
本发明的第一方面提出了一种报文转发方法,应用于网络设备中的接口板,所述网络设备还包括至少一种业务类型的业务板组,每种业务类型的业务板组用于处理所述业务类型的业务,所述方法包括:
接收第一报文,并确定所述第一报文所对应的服务链;所述服务链包括对所述第一报文进行业务处理的至少一业务节点,每个业务节点用于处理一种业务类型的业务;
从所述服务链中选取第一节点,向与所述第一节点对应的第一业务板组发送所述第一报文,所述第一业务板组与第一节点处理相同业务类型的业务,所述第一业务板组用于向所述接口板发送对所述第一报文进行业务处理后的包含第一报文的第二报文;
接收所述第二报文,并判断所述服务链是否包括除所述第一节点外的第二节点;
若是,则从所述第二节点中选取一节点作为新的第一节点,并以所述第二报文作为新的第一报文,重复执行向与所述第一节点对应的第一业务板组发送所述第一报文以及接收所述第一业务板组发送的所述第二报文的过程,直至所述服务链不包括所述第二节点。
本发明的第二方面提出了一种报文转发方法,应用于网络设备中第一业务类型的第一业务板组中的第一业务板,所述第一业务板组与服务链中的第一节点对应,所述第一业务板与所述第一节点均用于处理第一业务类型的业务,所述方法包括:
接收本网络设备中接口板发送的第一报文,对所述第一报文进行第一业务类型的业务处理后,生成包含所述第一报文的第二报文;
向所述接口板发送所述第二报文,以使所述接口板判断所述服务链是否包括除所述第一节点外的第二节点,若是,则从所述第二节点中选取一节点作为新的第一节点,并向与所述新的第一节点处理相同业务类型的业务的业务板组发送所述第二报文。
本发明的第三方面提出了一种报文转发装置,应用于网络设备中的接口板,所述网络设备还包括至少一种业务类型的业务板组,每种业务类型的业务板组用于处理所述业务类型的业务,所述装置包括:
第一接收模块,用于接收第一报文,并确定所述第一报文所对应的服务链;所述服务链包括对所述第一报文进行业务处理的至少一业务节点,每个业务节点用于处理一种业务类型的业务;
选取模块,用于从所述服务链中选取第一节点;
发送模块,用于向与所述第一节点对应的第一业务板组发送所述第一报文,所述第一业务板组与第一节点处理相同业务类型的业务,所述第一业务板组用于向所述接口板发送对所述第一报文进行业务处理后的包含第一报文的第二报文;
第二接收模块,用于接收所述第二报文;
判断模块,用于判断所述服务链是否包括除所述第一节点外的第二节点,若是,则从所述第二节点中选取一节点作为新的第一节点,并以所述第二报文作为新的第一报文,返回执行所述发送模块的过程。
本发明的第四方面提出了一种报文转发装置,应用于网络设备中第一业务类型的第一业务板组中的第一业务板,所述第一业务板组与服务链中的第一节点对应,所述第一业务板与所述第一节点均用于处理第一业务类型的业务,所述装置包括:
接收模块,用于接收本网络设备中接口板发送的第一报文;
处理模块,用于对所述第一报文进行第一业务类型的业务处理后,生成包含所述第一报文的第二报文;
发送模块,用于向所述接口板发送所述第二报文,以使所述接口板判断所述服务链是否包括除所述第一节点外的第二节点,若是,则从所述第二节点中选取一节点作为新的第一节点,并向与所述新的第一节点处理相同业务类型的业务的业务板组发送所述第二报文
本发明的第五方面提出了一种网络设备,所述网络设备包括至少一种业务类型的业务板组,每种业务类型的业务板组用于处理所述业务类型的业务;
所述网络设备的接口板,用于接收第一报文,并确定所述第一报文所对应的服务链,所述服务链包括对所述第一报文进行业务处理的至少一业务节点,每个业务节点用于处理一种业务类型的业务;从所述服务链中选取第一节点,并从与所述第一节点对应的第一业务板组中选取第一业务板,向所述第一业务板发送所述第一报文,所述第一业务板组与第一节点处理相同业务类型的业务;
所述第一业务板,用于对所述第一报文进行业务处理后,生成包含所述第一报文的第二报文,向所述接口板发送所述第二报文;
所述接口板,还用于在接收到所述第二报文时,判断所述服务链是否包括除所述第一节点外的第二节点;若是,则从所述第二节点中选取一节点作为新的第一节点,并以所述第二报文作为新的第一报文,重复执行并从与所述第一节点处理相同业务类型的业务的第一业务板组中选取第一业务板,向所述第一业务板发送所述第一报文的过程,直至所述服务链不包括所述第二节点。
在本申请实施例中,通过在一台设备内实现服务链,可以简化服务链结构,并降低服务链实现成本。由于每种业务类型的业务板组在服务链中代表一个节点,且由接口板负责服务链内的报文转发,因此在实现服务链时,由主控板直接向接口板下发服务链信息和引流规则即可,无需对业务板进行配置,进而达到灵活实现服务链配置的目的。另外,通过直接修改服务链信息还可以实现业务类型的灵活裁剪,满足用户的个性化需求。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为相关技术示出的一种设备间服务链的结构示意图;
图2为本发明根据一示例性实施例示出的一种网络设备的结构示意图;
图3为本发明根据一示例性实施例示出的一种报文转发方法的实施例流程图;
图4为本发明根据一示例性实施例示出的另一种报文转发方法的实施例流程图;
图5为本发明根据一示例性实施例示出的一种报文转发装置的实施例流程图;
图6为本发明根据一示例性实施例示出的另一种报文转发装置的实施例流程图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
通常基于SDN(Software Defined Network,软件定义网络)实现的服务链技术应用的是VXLAN(Virtual Extensible Local Area Network,虚拟扩展局域网)网络,如图1所示,为一种设备间服务链的结构,其中的每个节点由一台设备实现,并且每台设备只处理一种业务,图1中示出两条服务链,一条服务链包括节点1、节点2、节点3,另一条服务链为节点1、节点3。
下面对设备间服务链的工作原理进行介绍:
1、入方向的接入点接收到来自源服务器的IP报文时,根据VCFC下发的报文引流规则确定要引入的服务链,然后对报文进行VXLAN封装并在报文中的Service Path ID字段添加确定的服务链的信息,并将VXLAN报文发送至该服务链的首节点;
2、该服务链中的首节点对VXLAN报文进行业务处理,在处理结果为不丢弃时,若该服务链在本节点配置有下一跳地址,则将VXLAN报文转发至下一个节点进行业务处理;若该服务链在本节点未配置下一跳地址,则将报文转发至出方向的接入点;
3、出方向的接入点对VXLAN报文进行解封装,并对解封装得到的IP报文进行三层转发。
如上所述的设备间服务链,一方面,由于服务链中的每个节点由一台设备实现且只处理一种业务,因此服务链结构复杂且实现成本高;另一方面,在实现一条服务链时,需要VCFC分别配置服务链中每个节点的下一跳地址,服务链实现不够灵活。
为解决上述技术问题,本发明通过在一台设备中实现服务链,如图2所示的网络设备结构,包括主控板、接口板和至少一种业务类型的业务板组(图2中示出了3个业务板组),每种业务类型的业务板组用于处理所述业务类型的业务。
其中,主控板负责监控业务板上下线,并向接口板下发业务板组的信息和业务板组的业务类型,以使该业务板组用于处理该业务类型的业务,主控板还基于用户的不同需求向接口板下发服务链的信息和引流规则以实现设备内服务链;接口板负责基于服务链的内部的报文转发和三层转发。
通过业务板组方式组织同一业务类型的业务板,可以确保业务的可靠性和性能。在需要对报文进行某种业务类型的业务处理时,由接口板从对应的业务板组中选择业务板进行业务处理。
示例性的,再如图2所示,假设业务板0和业务板1均做DDoS业务,组为DDoS业务类型的业务板组1,业务板2和业务板3均做FW(防火墙)业务,组为FW业务类型的业务板组2,业务板4和业务板5均做IPS(Intrusion Prevention System,入侵防御系统)业务,组为IPS业务类型的业务板组3。
在一实施例中,对于实现服务链的过程,主控板在接收到外部的配置指令时,将所述配置指令携带的服务链的信息和引流规则下发至接口板。
在本发明中,主控板可以通过界面向用户展示本设备中已插入的业务板、各业务板的业务类型以及用于识别报文流的引流规则(如ACL(Access Control List,访问控制列表)),从而用户根据应用需求输入服务链的ID、要进行业务处理的业务节点以及各业务节点的处理顺序,并从引流规则中选择用于引导报文进入服务链的规则,从而主控板可以接收到携带服务链的信息以及引流规则的配置指令。
由此可见,服务链的信息包括对报文进行业务处理的至少一业务节点、报文被至少一业务节点处理的处理顺序以及服务链的ID。每一业务节点用于处理一种业务类型的业务,且每一业务节点对应一种业务类型的业务板组。
示例性的,可以通过openflow方式将服务链信息和引流规则下发给接口板。
示例性的,如下所示的一条服务链信息和引流规则:
service-chain path 1
acl 3000
service function FW
service function IPSEC
service function DPI
表示的含义为:服务链的ID为1,引流规则为访问控制列表acl3000,服务链包括FW业务类型节点、IPSEC业务类型节点、DPI(Deep Packet Inspection,深度数据包检测)业务类型节点,处理顺序依次为FW业务类型节点、IPSEC业务类型节点、DPI业务类型节点。在这里,处理顺序可以是按照引流规则中各业务类型节点的先后顺序。在其他示例中,还可以以编号大小(例如编号小为先处理)表示处理顺序,例如:
service-chain path 1
acl 3000
service function 1FW
service function 2IPSEC
service function 3DPI
又例如:
service-chain path 1
acl 3000
1service function FW
2service function IPSEC
3service function DPI
其中,假设acl 3000为rule 0permit ospf;rule 5permit udp,表示基于ospf(Open Shortest Path First开放式最短路径优先)协议和udp(User Datagram Protocol,用户数据报协议)协议的报文会进入该服务链。
基于上述图2所示的网络设备,下面以网络设备中接口板和业务板的交互方式,介绍服务链内报文转发的流程:
所述接口板,用于接收第一报文,并确定第一报文所对应的服务链,从所述服务链中选取第一节点,并从与第一节点对应的第一业务板组中选取第一业务板,向第一业务板发送第一报文,所述第一业务板组与第一节点处理相同业务类型的业务;
所述第一业务板,用于对第一报文进行业务处理后,生成包含第一报文的第二报文,向接口板发送第二报文;
所述接口板,还用于在接收到第二报文时,判断所述服务链是否包括除第一节点外的第二节点;若是,则从第二节点中选取一节点作为新的第一节点,并以第二报文作为新的第一报文,重复执行并从与第一节点处理相同业务类型的业务的第一业务板组中选取第一业务板,向第一业务板发送第一报文的过程,直至所述服务链不包括第二节点。
其中,第一报文来源于外部设备,第二报文来源于业务板,接口板可以通过不同的接口接收第一报文和第二报文。
在一实施例中,由于主控板是直接将服务链信息和引流规则下发至接口板,业务板上不存在服务链相关的配置,因此当业务板下线时需要由主控板管理服务链。
针对主控板监控业务板下线的处理过程可以为:在主控板检测到任一第二业务板下线时,将第二业务板的标识从第二业务板所属的第二业务板组中删除,并在判定第二业务板组中不包含除第二业务板之外的其他业务板时,向接口板发送删除消息,所述删除消息用于控制接口板删除与第二业务板组对应的节点所属的第一服务链的信息和第二业务板组的信息。
其中,主控板会定期向设备中的每一业务板发送保活消息,若业务板超过一定时间未返回响应消息,则确定该业务板下线,业务板下线原因包括拔出、故障、重启。由于接口板中存有服务链的信息和网络设备中所有业务板组的信息,因此在业务板组不包含任何业务板时,需要向接口板发送包含该业务板组对应的节点所属的服务链ID和该业务板组的ID的删除消息,以控制接口板删除与该业务板组对应的节点所属的服务链的信息和该业务板组的信息。
在一个例子中,主控板还可以在判定第二业务板组中不包含其他业务板时,将第一服务链置为失效状态,并记录第一服务链的失效原因为第二业务板组,以在有业务板添加到第二业务板组时能够重新下发第一服务链的信息到接口板。
基于此,主控板在检测到第三业务板上线时,可以将第三业务板的标识添加到与第三业务板处理相同业务类型的业务的第三业务板组中,并在判定处于失效状态的第二服务链的失效原因为第三业务板组时,将第二服务链置为有效状态,并将第二服务链的信息和第三业务板组的信息下发至接口板,以使接口板存储第二服务链的信息和第三业务板组的信息。
另外,主控板在判定第二服务链对应的失效原因包含除所述第三业务板组之外的其他业务板组时,可以将第三业务板组的信息下发至接口板,以使接口板更新第三业务板组的信息。
即,当第二服务链对应的失效原因不为第三业务板组时,表明第三业务板组仍然有业务板工作,此时,新增了第三业务板,则需要将更新后的第三业务板的信息下发到接口板,以使接口板更新第三业务板组的信息。
其中,基于上述所述的业务板下线原因,当有业务板插入、重启成功或故障恢复时,业务板会主动向主控板发生上线消息,该上线消息包括上线业务板的标识。在服务链被置为失效状态并记录失效原因后,如果该服务链中其他节点对应的业务板组不存在时,还会在失效原因中再加入该业务板组的ID,从而服务链的失效原因中有可能包含多个业务板组的ID,因此会出现第二服务链对应的失效原因不仅仅是第三业务板组情况,在将第三业务板组的信息下发至接口板的同时,还需要删除失效原因中的第三业务板组的ID。
本领域技术人员可以理解的是,上述所述的第一业务板组、第二业务板组、第三业务板组,及第一服务链、第二服务链只是为了方便描述,对本发明不存在任何限定。
基于上述描述可知,通过在一台设备内实现服务链,可以简化服务链结构,并降低服务链实现成本。由于每种业务类型的业务板组在服务链中代表一个节点,且由接口板负责服务链内的报文转发,因此在实现服务链时,由主控板直接向接口板下发服务链信息和引流规则即可,无需对业务板进行配置,进而达到灵活实现服务链配置的目的。另外,通过直接修改服务链信息还可以实现业务类型的灵活裁剪,满足用户的个性化需求。
基于上述图2所示的网络设备,下面分别在接口板侧和业务板侧,以具体实施例对设备内服务链中的报文转发流程进行详细阐述。
对于接口板侧,图3为本发明根据一示例性实施例示出的一种报文转发方法的实施例流程图,该报文转发方法包括如下步骤301-305。
步骤301:接收第一报文,并确定第一报文所对应的服务链。
在一实施例中,在确定第一报文所对应的服务链之前,可以对第一报文进行合法性检查,如果检查通过,再执行确定第一报文所对应的服务链的过程。
其中,检查形式可以包括报文长度检查、报文类型检查等。
在一实施例中,针对确定第一报文所对应的服务链的过程,可以将第一报文的报文特征与服务链对应的规则匹配,若匹配成功,则将所述服务链确定为第一报文对应的服务链。
示例性的,用于匹配规则的报文特征可以是报文的五元组信息。
步骤302:从所述服务链中选取第一节点。
其中,由于服务链包括报文被述至少一业务节点处理的处理顺序,因此可以从服务链中选取处理顺序中的首节点作为第一节点。
步骤303:向与第一节点对应的第一业务板组发送第一报文,所述第一业务板组与第一节点处理相同业务类型的业务,所述第一业务板组用于向接口板发送对第一报文进行业务处理后的包含第一报文的第二报文。
在一实施例中,由于第一业务板组包括均用于处理第一业务类型的业务的至少一第一业务板,因此针对向与第一节点对应的第一业务板组发送第一报文的过程,可以为:从第一业务板组中选择目标业务板,并将第一报文发送至目标业务板,以使目标业务板对第一报文进行第一业务类型的业务处理后,生成包含第一报文的第二报文,并在第二报文中插入第一业务板组ID,并向接口板发送第二报文。
其中,第一业务板组中的第一业务板均处理一种业务类型的业务,因此可以通过负载分担方式从第一业务板组中选择一个第一业务板,并将第一报文发送至选择的第一业务板上以进行业务处理。
示例性的,负载分担方式可以采用hash算法实现。
需要说明的是,接口板在接收到第一报文时,会分析第一报文的报文特征,然后再将第一报文和分析得到的报文特征封装到结构体类型的报文,再向第一业务板发送报文,因此针对向第一业务板发送第一报文的过程,是将一个包含第一报文和报文特征的结构体类型的报文发送至第一业务板。在另一个示例中,接口板在接收到第一报文时,会分析第一报文的报文特征,然后再将第一报文封装到结构体类型的报文,再向第一业务板发送报文,因此针对向第一业务板发送第一报文的过程,是将一个包含第一报文的结构体类型的报文发送至第一业务板。
基于此,报文进入服务链后,需要遍历服务链中的每一节点进行业务处理,为了提高遍历效率,在向与第一节点对应的第一业务板组发送第一报文之前,可以将所述服务链ID填充到结构体类型报文中,以在后续接收到包含第一报文和服务链ID的第二报文时,可以直接根据服务链ID找到对应的服务链。
示例性的,可以通过在结构体类型报文中预设两个字段,一个预设字段用于填充服务链ID,另一个预设字段用于在业务板中填充业务板组ID。
步骤304:接收第二报文,并判断所述服务链是否包括除第一节点外的第二节点,若是,则执行步骤305,否则,执行步骤306。
在本发明中,由于接口板既要与外部设备通信,还要与内部业务板通信,为了进行区别,可以通过两个接口来分别通信,即第一接口接收第一报文,第二接口接收第二报文。
在一实施例中,由于服务链包括报文被述至少一业务节点处理的处理顺序,因此针对判断所述服务链是否包括除第一节点外的第二节点的过程,可以判断第一节点是否为所述处理顺序的尾节点,若否,则判定所述至少一业务节点包括除第一节点外的第二节点。
在一个例子中,可以依据第二报文包括的第一业务板组的ID,确定与第一业务板组处理相同业务类型的业务的第一节点,再判断第一节点是否为所述处理顺序的尾节点。具体的,接口板依据第二报文包括的服务链ID和包括的第一业务板组的ID,判断第一业务板组对应的第一节点是否为服务链ID对应的服务链的尾节点。
在另一例子中,在上述步骤303中,从服务链中选取第一节点后,可以记录报文特征与第一节点的对应关系,从而在步骤304中,可以确定第二报文的报文特征对应的第一节点,再判断第一节点是否为所述处理顺序的尾节点。
步骤305:从第二节点中选取一节点作为新的第一节点,并以第二报文作为新的第一报文,返回执行步骤303的过程。
在一实施例中,针对从第二节点中选取一节点作为新的第一节点的过程,可以在第二节点中,将处理顺序中位于第一节点下一顺序的节点作为新的第一节点。
步骤306:从第二报文中提取第一报文,并对第一报文进行三层转发。
基于上述步骤301至步骤306的描述,在通过第一接口接收到外部设备的第一报文时,表示报文还未在服务链中进行业务处理,则将对应的服务链中的首节点作为第一节点,以用于进行业务处理;若通过第二接口接收到第二报文时,表示报文在服务链中已经历过业务处理,且第二报文中包括业务板组的ID,则从服务链中选择所述业务板组对应节点的下一个节点作为第一节点。
值得注意的是,只有在节点对应的业务板组对报文的业务处理结果为不丢弃,接口板才会接收到第二报文。
至此,完成上述图3所示的接口板侧的报文转发流程,通过该流程可以实现设备内服务链中的报文转发。
对于业务板侧,图4为本发明根据一示例性实施例示出的另一种报文转发方法的实施例流程图,基于上述图3所示实施例基础上,该报文转发方法应用于网络设备中第一业务类型的第一业务板组中的第一业务板,所述第一业务板组与服务链中的第一节点对应,所述第一业务板与所述第一节点均用于处理第一业务类型的业务,该报文转发方法包括如下步骤401-402。
步骤401:接收接口板发送的第一报文,对第一报文进行第一业务类型的业务处理后,生成包含第一报文的第二报文。
需要说明的是,在对第一报文进行第一业务类型的业务处理后,如果业务处理结果为不丢弃,则生成包含第一报文的第二报文。
在一实施例中,还可以在第二报文中插入第一业务板组的ID。
针对插入第一业务板组的ID的方式可以为:若第二报文中的预设字段未填充数据,则在预设字段内填充第一业务板组的ID;若第二报文中的预设字段填充有数据,则将预设字段内的数据更新为第一业务板组的ID。
步骤402:向接口板发送第二报文,以使接口板判断服务链是否包括除所述第一节点外的第二节点,若是,则从所述第二节点中选取一节点作为新的第一节点,并向与所述新的第一节点处理相同业务类型的业务的业务板组发送所述第二报文。
至此,完成上述图4所示的业务板侧的报文转发流程,通过该流程可以实现设备内服务链中的报文转发。
综合上述图2至图4所示实施例的描述,下面对设备中主控板、业务板以及接口板之间的交互进行详细介绍,包括如下步骤501至507。
步骤501:主控板在接收到外部的配置指令时,将配置指令携带的服务链信息和引流规则下发至接口板。
其中,服务链信息包括对报文进行业务处理的至少一业务节点、报文被至少一业务节点处理的处理顺序以及服务链的ID。
步骤502:接口板接收第一报文。
步骤503:确定第一报文对应的服务链,并从服务链中选取处理顺序中的首节点作为第一节点。
步骤503:从与第一节点对应的第一业务板组中选择一个业务板,并将服务链ID和第一报文通过结构体类型的报文发送至选择的业务板。
步骤504:业务板对第一报文进行业务类型的业务处理后,如果业务处理结果为不丢弃,则生成包含第一报文和服务链ID的第二报文,并在第二报文中插入第一业务板组ID,并将第二报文发送至接口板。
其中,第二报文即为结构体类型的报文。
步骤505:接口板在接收到第二报文时,依据第二报文包括的服务链ID和第一业务板组ID,判断第一业务板组对应的第一节点是否为服务链ID对应的服务链的尾节点,若是,则执行步骤507,若否,则执行步骤506。
步骤506:接口板将处理顺序中位于第一节点下一顺序的节点作为新的第一节点,并以第二报文作为新的第一报文,返回执行步骤503的过程。
步骤507:接口板从第二报文中提取第一报文,并对第一报文进行三层转发。
至此,完成业务板以及接口板之间的交互流程。
与前述方法实施例相对应,本申请还提供了相应的装置实施例。
图5为本发明根据一示例性实施例示出的一种报文转发装置的实施例流程图,该报文转发装置可以应用于如上述图2所示的网络设备中的接口板,该报文转发装置包括:
第一接收模块510,用于接收第一报文,并确定所述第一报文所对应的服务链;所述服务链包括对所述第一报文进行业务处理的至少一业务节点,每个业务节点用于处理一种业务类型的业务;
选取模块520,用于从所述服务链中选取第一节点;
发送模块530,用于向与所述第一节点对应的第一业务板组发送所述第一报文,所述第一业务板组与第一节点处理相同业务类型的业务,所述第一业务板组用于向所述接口板发送对所述第一报文进行业务处理后的包含第一报文的第二报文;
第二接收模块540,用于接收所述第二报文;
判断模块550,用于判断所述服务链是否包括除所述第一节点外的第二节点,若是,则从所述第二节点中选取一节点作为新的第一节点,并以所述第二报文作为新的第一报文,返回执行发送模块530的过程。
在一可选实现方式中,所述第一接收模块510,具体用于在确定所述第一报文对应的服务链过程中,将所述第一报文的报文特征与服务链对应的规则匹配;若匹配成功,则将所述服务链确定为所述第一报文对应的服务链。
在一可选实现方式中,所述第一业务板组包括均用于处理所述第一业务类型的业务的至少一第一业务板;所述发送模块530,具体用于在向与所述第一节点对应的第一业务板组发送所述第一报文过程中,从所述第一业务板组中选择目标业务板,并将所述第一报文发送至所述目标业务板,以使所述目标业务板对所述第一报文进行第一业务类型的业务处理后,生成包含所述第一报文的第二报文,并在第二报文中插入所述第一业务板组的ID,向所述接口板发送所述第二报文;
所述服务链还包括报文被所述至少一业务节点处理的处理顺序;所述判断模块550,具体用于依据所述第二报文包括的第一业务板组的ID,确定与所述第一业务板组处理相同业务类型的业务的所述第一节点;判断所述第一节点是否为所述处理顺序的尾节点;若否,则判定所述至少一业务节点包括除所述第一节点外的第二节点。
在一可选实现方式中,所述判断模块550,还具体用于判断所述第一节点是否为所述处理顺序的尾节点;若否,则判定所述至少一业务节点包括除所述第一节点外的第二节点。
在一可选实现方式中,所述判断模块550,还具体用于在从所述第二节点中选取一节点作为新的第一节点过程中,在所述第二节点中,将所述处理顺序中位于所述第一节点下一顺序的节点作为新的第一节点。
图6为本发明根据一示例性实施例示出的另一种报文转发装置的实施例流程图,该报文转发装置可以应用于如上述图2所示的网络设备中第一业务类型的第一业务板组中的第一业务板,所述第一业务板组与服务链中的第一节点对应,所述第一业务板与所述第一节点均用于处理第一业务类型的业务,该报文转发装置包括:
接收模块610,用于接收本网络设备中接口板发送的第一报文;
处理模块620,用于对所述第一报文进行第一业务类型的业务处理后,生成包含所述第一报文的第二报文;
发送模块630,用于向所述接口板发送所述第二报文,以使所述接口板判断所述服务链是否包括除所述第一节点外的第二节点,若是,则从所述第二节点中选取一节点作为新的第一节点,并向与所述新的第一节点处理相同业务类型的业务的业务板组发送所述第二报文。
在一可选实现方式中,所述装置还包括(图6中未示出):
插入模块,用于在所述处理模块620生成包含所述第一报文的第二报文之后,在所述第二报文中插入所述第一业务板组的ID。
在一可选实现方式中,所述插入模块,具体用于若所述第二报文中的预设字段未填充数据,则在所述预设字段内填充所述第一业务板组的ID;若所述第二报文中的预设字段填充有数据,则将所述预设字段内的数据更新为所述第一业务板组的ID。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (9)
1.一种报文转发方法,其特征在于,应用于网络设备中的接口板,所述网络设备还包括至少一种业务类型的业务板组,每种业务类型的业务板组用于处理所述业务类型的业务,所述方法包括:
接收第一报文,并确定所述第一报文所对应的服务链;所述服务链包括对所述第一报文进行业务处理的至少一业务节点,每个业务节点用于处理一种业务类型的业务;
从所述服务链中选取第一节点,向与所述第一节点对应的第一业务板组发送所述第一报文,所述第一业务板组与第一节点处理相同业务类型的业务,所述第一业务板组用于向所述接口板发送对所述第一报文进行业务处理后的包含第一报文的第二报文;
接收所述第二报文,并判断所述服务链是否包括除所述第一节点外的第二节点;
若是,则从所述第二节点中选取一节点作为新的第一节点,并以所述第二报文作为新的第一报文,重复执行向与所述第一节点对应的第一业务板组发送所述第一报文以及接收所述第一业务板组发送的所述第二报文的过程,直至所述服务链不包括所述第二节点;
所述第一业务板组包括均用于处理第一业务类型的业务的至少一第一业务板;所述向与所述第一节点对应的第一业务板组发送所述第一报文,包括:
从所述第一业务板组中选择目标业务板,并将所述第一报文发送至所述目标业务板,以使所述目标业务板对所述第一报文进行第一业务类型的业务处理后,生成包含所述第一报文的第二报文,并在所述第二报文中插入所述第一业务板组的ID,向所述接口板发送所述第二报文;
所述服务链还包括报文被所述至少一业务节点处理的处理顺序;所述判断所述服务链是否包括除所述第一节点外的第二节点,包括:
依据所述第二报文包括的第一业务板组的ID,确定与所述第一业务板组处理相同业务类型的业务的所述第一节点;
判断所述第一节点是否为所述处理顺序的尾节点;
若否,则判定所述至少一业务节点包括除所述第一节点外的第二节点。
2.根据权利要求1所述的方法,其特征在于,所述确定所述第一报文对应的服务链,包括:
将所述第一报文的报文特征与服务链对应的规则匹配;
若匹配成功,则将所述服务链确定为所述第一报文对应的服务链。
3.根据权利要求1所述的方法,其特征在于,从所述第二节点中选取一节点作为新的第一节点,包括:
在所述第二节点中,将所述处理顺序中位于所述第一节点下一顺序的节点作为新的第一节点。
4.一种报文转发方法,其特征在于,应用于网络设备中第一业务类型的第一业务板组中的第一业务板,所述第一业务板组与服务链中的第一节点对应,所述第一业务板与所述第一节点均用于处理第一业务类型的业务,所述方法包括:
接收本网络设备中接口板发送的第一报文,对所述第一报文进行第一业务类型的业务处理后,生成包含所述第一报文的第二报文,所述第二报文包括服务链ID;
所述生成包含所述第一报文的第二报文之后,所述方法还包括:
在所述第二报文中插入所述第一业务板组的ID,包括:若所述第二报文中的预设字段未填充数据,则在所述预设字段内填充所述第一业务板组的ID;若所述第二报文中的预设字段填充有数据,则将所述预设字段内的数据更新为所述第一业务板组的ID;
向所述接口板发送所述第二报文,以使所述接口板判断所述服务链是否包括除所述第一节点外的第二节点,若是,则从所述第二节点中选取一节点作为新的第一节点,并向与所述新的第一节点处理相同业务类型的业务的业务板组发送所述第二报文;
所述服务链还包括报文被至少一业务节点处理的处理顺序;所述接口板判断所述服务链是否包括除所述第一节点外的第二节点,包括:
依据所述第二报文包括的第一业务板组的ID,确定与所述第一业务板组处理相同业务类型的业务的所述第一节点;
判断所述第一节点是否为所述处理顺序的尾节点,包括:依据所述服务链ID和所述第一业务板组ID,判断第一业务板组对应的第一节点是否为服务链ID对应的服务链的尾节点;
若否,则判定所述至少一业务节点包括除所述第一节点外的第二节点。
5.一种网络设备,其特征在于,所述网络设备包括至少一种业务类型的业务板组,每种业务类型的业务板组用于处理所述业务类型的业务;
所述网络设备的接口板,用于接收第一报文,并确定所述第一报文所对应的服务链,所述服务链包括对所述第一报文进行业务处理的至少一业务节点,每个业务节点用于处理一种业务类型的业务;从所述服务链中选取第一节点,并从与所述第一节点对应的第一业务板组中选取第一业务板,向所述第一业务板发送所述第一报文,所述第一业务板组与第一节点处理相同业务类型的业务;
所述第一业务板,用于对所述第一报文进行业务处理后,生成包含所述第一报文的第二报文,向所述接口板发送所述第二报文;
所述接口板,还用于在接收到所述第二报文时,判断所述服务链是否包括除所述第一节点外的第二节点;若是,则从所述第二节点中选取一节点作为新的第一节点,并以所述第二报文作为新的第一报文,重复执行并从与所述第一节点处理相同业务类型的业务的第一业务板组中选取第一业务板,向所述第一业务板发送所述第一报文的过程,直至所述服务链不包括所述第二节点;
所述网络设备的主控板,用于在检测到任一第二业务板下线时,将所述第二业务板的标识从所述第二业务板所属的第二业务板组中删除,并在判定所述第二业务板组中不包含除所述第二业务板之外的其他业务板时,向所述接口板发送删除消息,所述删除消息用于控制接口板删除与所述第二业务板组对应的节点所属的第一服务链的信息和所述第二业务板组的信息;
所述主控板,还用于在判定所述第二业务板组中不包含所述其他业务板时,将所述第一服务链置为失效状态,并记录所述第一服务链的失效原因为所述第二业务板组。
6.根据权利要求5所述的网络设备,其特征在于,所述主控板,还用于在检测到第三业务板上线时,将所述第三业务板的标识添加到与所述第三业务板处理相同业务类型的业务的第三业务板组中,并在判定处于失效状态的第二服务链的失效原因为所述第三业务板组时,将所述第二服务链置为有效状态,并将所述第二服务链的信息和所述第三业务板组的信息下发至接口板,以使接口板存储所述第二服务链的信息和所述第三业务板组的信息。
7.根据权利要求6所述的网络设备,其特征在于,所述主控板,还用于在判定所述第二服务链对应的失效原因包含除所述第三业务板组之外的其他业务板组时,将所述第三业务板组的信息下发至接口板,以使接口板更新所述第三业务板组的信息。
8.一种报文转发装置,其特征在于,应用于网络设备中的接口板,所述网络设备还包括至少一种业务类型的业务板组,每种业务类型的业务板组用于处理所述业务类型的业务,所述装置包括:
第一接收模块,用于接收第一报文,并确定所述第一报文所对应的服务链;所述服务链包括对所述第一报文进行业务处理的至少一业务节点,每个业务节点用于处理一种业务类型的业务;
选取模块,用于从所述服务链中选取第一节点;
发送模块,用于向与所述第一节点对应的第一业务板组发送所述第一报文,所述第一业务板组与第一节点处理相同业务类型的业务,所述第一业务板组用于向所述接口板发送对所述第一报文进行业务处理后的包含第一报文的第二报文;
第二接收模块,用于接收所述第二报文;
判断模块,用于判断所述服务链是否包括除所述第一节点外的第二节点,若是,则从所述第二节点中选取一节点作为新的第一节点,并以所述第二报文作为新的第一报文,返回执行所述发送模块的过程;
所述第一业务板组包括均用于处理第一业务类型的业务的至少一第一业务板;所述发送模块,具体用于在向与所述第一节点对应的第一业务板组发送所述第一报文过程中,从所述第一业务板组中选择目标业务板,并将所述第一报文发送至所述目标业务板,以使所述目标业务板对所述第一报文进行第一业务类型的业务处理后,生成包含所述第一报文的第二报文,并在第二报文中插入所述第一业务板组的ID,向所述接口板发送所述第二报文;
所述服务链还包括报文被所述至少一业务节点处理的处理顺序;所述判断模块,具体用于依据所述第二报文包括的第一业务板组的ID,确定与所述第一业务板组处理相同业务类型的业务的所述第一节点;判断所述第一节点是否为所述处理顺序的尾节点;若否,则判定所述至少一业务节点包括除所述第一节点外的第二节点。
9.一种报文转发装置,其特征在于,应用于网络设备中第一业务类型的第一业务板组中的第一业务板,所述第一业务板组与服务链中的第一节点对应,所述第一业务板与所述第一节点均用于处理第一业务类型的业务,所述装置包括:
接收模块,用于接收本网络设备中接口板发送的第一报文;
处理模块,用于对所述第一报文进行第一业务类型的业务处理后,生成包含所述第一报文的第二报文;
所述装置,还包括:
插入模块,用于在所述处理模块生成包含所述第一报文的第二报文之后,在所述第二报文中插入所述第一业务板组的ID,包括:若所述第二报文中的预设字段未填充数据,则在所述预设字段内填充所述第一业务板组的ID;若所述第二报文中的预设字段填充有数据,则将所述预设字段内的数据更新为所述第一业务板组的ID;
发送模块,用于向所述接口板发送所述第二报文,以使所述接口板判断所述服务链是否包括除所述第一节点外的第二节点,若是,则从所述第二节点中选取一节点作为新的第一节点,并向与所述新的第一节点处理相同业务类型的业务的业务板组发送所述第二报文;
所述服务链还包括报文被至少一业务节点处理的处理顺序;所述接口板判断所述服务链是否包括除所述第一节点外的第二节点,包括:
依据所述第二报文包括的第一业务板组的ID,确定与所述第一业务板组处理相同业务类型的业务的所述第一节点;
判断所述第一节点是否为所述处理顺序的尾节点,包括:依据所述服务链ID和所述第一业务板组ID,判断第一业务板组对应的第一节点是否为服务链ID对应的服务链的尾节点;
若否,则判定所述至少一业务节点包括除所述第一节点外的第二节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911023627.8A CN110784535B (zh) | 2019-10-25 | 2019-10-25 | 报文转发方法、装置及网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911023627.8A CN110784535B (zh) | 2019-10-25 | 2019-10-25 | 报文转发方法、装置及网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110784535A CN110784535A (zh) | 2020-02-11 |
CN110784535B true CN110784535B (zh) | 2022-06-28 |
Family
ID=69386692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911023627.8A Active CN110784535B (zh) | 2019-10-25 | 2019-10-25 | 报文转发方法、装置及网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110784535B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018209A (zh) * | 2007-03-12 | 2007-08-15 | 杭州华为三康技术有限公司 | 一种路由器、路由器业务板和业务板间的数据包传输方法 |
CN102821036A (zh) * | 2012-04-20 | 2012-12-12 | 杭州华三通信技术有限公司 | 一种实现报文转发的方法及设备 |
CN104283806A (zh) * | 2014-10-31 | 2015-01-14 | 杭州华三通信技术有限公司 | 业务链处理方法和设备 |
CN105227463A (zh) * | 2014-06-13 | 2016-01-06 | 杭州迪普科技有限公司 | 一种分布式设备中业务板间的通信方法 |
CN105847185A (zh) * | 2015-01-16 | 2016-08-10 | 杭州迪普科技有限公司 | 分布式设备的报文处理方法、装置及分布式设备 |
CN106878202A (zh) * | 2016-12-09 | 2017-06-20 | 新华三技术有限公司 | 一种报文处理方法及装置 |
WO2018001011A1 (zh) * | 2016-06-27 | 2018-01-04 | 华为技术有限公司 | 一种选择网络功能进行数据转发的方法及业务功能转发器 |
CN108390954A (zh) * | 2018-03-26 | 2018-08-10 | 新华三信息安全技术有限公司 | 一种报文传输方法和设备 |
-
2019
- 2019-10-25 CN CN201911023627.8A patent/CN110784535B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018209A (zh) * | 2007-03-12 | 2007-08-15 | 杭州华为三康技术有限公司 | 一种路由器、路由器业务板和业务板间的数据包传输方法 |
CN102821036A (zh) * | 2012-04-20 | 2012-12-12 | 杭州华三通信技术有限公司 | 一种实现报文转发的方法及设备 |
CN105227463A (zh) * | 2014-06-13 | 2016-01-06 | 杭州迪普科技有限公司 | 一种分布式设备中业务板间的通信方法 |
CN104283806A (zh) * | 2014-10-31 | 2015-01-14 | 杭州华三通信技术有限公司 | 业务链处理方法和设备 |
CN105847185A (zh) * | 2015-01-16 | 2016-08-10 | 杭州迪普科技有限公司 | 分布式设备的报文处理方法、装置及分布式设备 |
WO2018001011A1 (zh) * | 2016-06-27 | 2018-01-04 | 华为技术有限公司 | 一种选择网络功能进行数据转发的方法及业务功能转发器 |
CN106878202A (zh) * | 2016-12-09 | 2017-06-20 | 新华三技术有限公司 | 一种报文处理方法及装置 |
CN108390954A (zh) * | 2018-03-26 | 2018-08-10 | 新华三信息安全技术有限公司 | 一种报文传输方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110784535A (zh) | 2020-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102569305B1 (ko) | 데이터 메시지 검출 방법, 디바이스 및 시스템 | |
US10148573B2 (en) | Packet processing method, node, and system | |
CN108141416B (zh) | 一种报文处理方法、计算设备以及报文处理装置 | |
US8964569B2 (en) | Generic monitoring packet handling mechanism for OpenFlow 1.1 | |
CN106878194B (zh) | 一种报文处理方法和装置 | |
CN107078957A (zh) | 通信网络中的网络服务功能的链接 | |
CN110601983A (zh) | 一种协议无感知源路由转发方法及系统 | |
US20140241368A1 (en) | Control apparatus for forwarding apparatus, control method for forwarding apparatus, communication system, and program | |
CN107395481A (zh) | Evpn拓扑中的广播、未知单播或组播业务的出口节点保护 | |
CN105337881A (zh) | 一种数据报文的处理方法、业务节点以及引流点 | |
EP2482497A1 (en) | Data forwarding method, data processing method, system and device thereof | |
EP2833585A1 (en) | Communication system, upper layer switch, control device, switch control method, and program | |
CN106789625A (zh) | 一种环路检测方法及装置 | |
JP6801409B2 (ja) | 経路探索システム、経路探索方法及び経路探索プログラム | |
CN106656615B (zh) | 一种基于tracert命令的报文处理方法及装置 | |
CN108200158A (zh) | 请求传输系统、方法、装置及存储介质 | |
US8161555B2 (en) | Progressive wiretap | |
CN105743687B (zh) | 节点故障的判断方法及装置 | |
CN104601467A (zh) | 一种发送报文的方法和装置 | |
CN106105098A (zh) | 交换机及业务请求报文的处理方法 | |
CN114338510B (zh) | 控制和转发分离的数据转发方法和系统 | |
CN111901317A (zh) | 一种访问控制策略处理方法、装置和设备 | |
CN110391984B (zh) | 一种报文转发方法及装置 | |
CN110855566B (zh) | 上行流量的牵引方法和装置 | |
CN110784535B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |