控制器、服务节点和数据包转发方法

文档序号:9757261阅读:363来源:国知局
控制器、服务节点和数据包转发方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其涉及控制器、服务节点和数据包转发方法。
【背景技术】
[0002]在固定或移动宽带接入领域及数据中心应用中,会存在很多基于4层到7层的增值业务处理,包括:防病毒、防火墙、应用缓存和加速、网络地址转换(Network AddressTranslat1n,NAT)地址转换等增值业务处理功能。通常如图1所示,在固定或移动用户接入设备后面串接提供上述增值业务处理功能的增值业务处理节点。在实际应用中,部分数据流如仅视频或Web访问业务流才需要应用缓存和加速。但在图1所示组网技术中,所有的业务流都需要流经串接的多个增值业务处理节点,不管这些数据流是否需要进行相应的增值业务处理。此方式对增值业务处理节点的处理容量要求大,导致不必要的网络设备投资;同时,也会增加网络中的故障点,某个增值业务设备出现故障,会导致整体业务流中断和故障。
[0003]为解决上述问题,业界提出了配置“业务链”的概念,业务链包括某个数据流所需经过的增值业务处理节点的序列。比如,业务链一:防病毒节点、防火墙节点、NAT地址转换节点;业务链二:应用缓存和加速节点、防火墙节点、NAT地址转换节点;业务链三:防火墙节点、NAT地址转换节点。对应不同业务链的不同数据流只需流经相应的服务节点(服务节点即:增值业务处理节点)即可。
[0004]采用业务链技术的一个典型的网络架构如图2所示,网络中通常包括:业务协同层、分类器、交换机、控制器、服务节点等多个部件,各部件功能列举如下:
[0005]业务协同层:运营商的操作维护人员通过业务协同层配置业务链,以及进入各业务链的数据流的类型。通常,配置业务链时,需要配置该业务链上的服务节点的序列和该业务链对应的数据流的类型,数据流的类型的分类方法依据场景而异。业务协同层根据配置的业务链的信息(比如:业务链标识、服务节点的序列和该业务链对应的数据流的类型)配置控制器,并将数据流的类型与业务链的对应关系发送至分类器。
[0006]分类器:将数据流按照预先配置好的规则分类,属于某种类型的数据流会被导入该类型对应的业务链,发往该业务链上的第一个服务节点;
[0007]控制器:根据业务协同层配置的业务链的信息,向相关交换机下发流表项,以配置业务链的数据转发路径,通常,流表项中包括入端口标识、业务链标识、源IP地址、目的IP地址、协议类型、源端口号、目的端口号、执行的操作中的一项或多项信息。其中,控制器的逻辑可以通过软件定义网络(Software Defined Network, SDN)控制器实现。
[0008]交换机:可为物理交换机或虚拟交换机。交换机根据控制器配置的流表项转发由各端口收到的数据包;
[0009]服务节点:对收到的数据包进行业务处理,处理完后将数据包发送出去。
[0010]图2中包含两条业务链:业务链I和业务链2。业务链I的服务节点的序列包括服务节点bl-cl-el,数据流流经业务链I时,会串行依次被服务节点bl、cl和el处理;业务链2的服务节点的序列包括服务节点al-dl,数据流流经业务链2时,会串行依次被服务节点al和dl处理,服务节点al、bl连接交换机1,服务节点cl、dl和el连接交换机2。
[0011]业务链中的数据流会被全部转发到业务链上的服务节点,服务节点将处理完的数据包发出,交换机会将其转发到下一个服务节点。很多过滤型的服务节点,比如:防火墙节点、入侵检测节点、防病毒节点,有时只需要检查数据流中前面几个数据包,就可以确定该数据流后续的数据包可以通过或者禁止通过。但目前,该数据流后续的数据包仍需要经过该过滤型的服务节点,由于后续数据包仍需要该过滤性的服务节点处理,因此数据包的处理效率低。
[0012]综上,现有采用业务链技术的网络中,数据流的所有数据包都需要经过过滤型的服务节点,数据包处理效率低。

【发明内容】

[0013]本发明实施例提供控制器、服务节点和数据包转发方法,用以解决采用业务链技术的网络中,数据流的所有数据包都需要经过过滤型的服务节点,数据包处理效率低的问题。
[0014]第一方面,本发明实施例提供一种控制器,包括:
[0015]接收模块,用于接收M个服务节点中的第一服务节点发送的上报信息,所述上报信息用于指示同一组数据流中的第一数据流的变更的后续处理动作,其中,所述同一组数据流对应一条业务链,所述业务链指示所述同一组数据流中的每个数据流需要经过的所述M个服务节点组成的序列,所述M为大于等于I的自然数;
[0016]处理模块,用于根据所述上报信息,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,所述第二服务节点为所述第一服务节点在所述业务链上的前一个服务节点,所述第二流表用于指示所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点依照所述第一数据流的变更的后续处理动作转发所述第一数据流的后续数据包。
[0017]结合第一方面,在第一种可能的实现方式中,所述处理模块还用于:在所述接收模块接收第一服务节点发送的上报信息之前,
[0018]根据所述业务链,确定所述同一组数据流的转发规则,其中,所述M个服务节点对应N个交换节点,所述第一转发规则包含N个第一流表,每个交换节点对应一个第一流表,所述N为大于等于I的自然数;
[0019]在所述每个交换节点上配置所述每个交换节点对应的第一流表,其中,所述每个交换节点被配置的第一流表用于指示所述每个交换节点依照所述第一转发规则转发所述同一组数据流中的每个数据流。
[0020]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理模块还用于:在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表之后,
[0021]配置所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上的流表的优先级,其中,所述第二流表的优先级高于所述第一流表。
[0022]结合第一方面、第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述接收模块具体用于:
[0023]接收所述第一服务节点发送的所述第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
[0024]结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节占.V,
[0025]所述处理模块具体用于:
[0026]根据所述第一数据流的特征信息确定所述业务链,从所述业务链上确定第三服务节点,所述第三服务节点为所述第一服务节点在所述业务链上的后一个服务节点;
[0027]在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中,所述第二流表包含至少一个新流表项,所述新流表项包括所述第一数据流的特征信息、入端口和出端口,其中,所述出端口配置为所述第三服务节点对应的交换节点的端口。
[0028]结合第一方面的第三种可能的实现方式,在第五种可能的实现方式中,所述第一数据流的变更的后续处理动作指示丢弃所述第一数据流的后续数据包;
[0029]所述处理模块具体用于:在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中所述第二流表指示丢弃所述第一数据流的后续数据包。
[0030]第二方面,本发明实施例提供一种服务节点,包括:
[0031]接收模块,用于接收第一数据流的数据包并进行处理;
[0032]发送模块,用于在确定对所述第一数据流的后续处理动作发生变更时,向控制器发送上报信息,所述上报信息用于指示所述第一数据流的变更的后续处理动作。
[0033]结合第二方面,在第一种可能的实现方式中,所述上报信息包括所述第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
[0034]结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节点或者丢弃所述第一数据流的后续数据包。
[0035]第三方面,本发明实施例提供一种数据包转发方法,包括:
[0036]接收M个服务节点中的第一服务节点发送的上报信息,所述上报信息用于指示同一组数据流中的第一数据流的变更的后续处理动作,其中,所述同一组数据流对应一条业务链,所述业务链指示所述同一组数据流中的每个数据流需要经过的所述M个服务节点组成的序列,所述M为大于等于I的自然数;
[0037]根据所述上报信息,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表,其中,所述第二服务节点为所述第一服务节点在所述业务链上的前一个服务节点,所述第二流表用于指示所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点依照所述第一数据流的变更的后续处理动作转发所述第一数据流的后续数据包。
[0038]结合第三方面,在第一种可能的实现方式中,所述接收第一服务节点发送的上报信息之前,还包括:
[0039]根据所述业务链,确定所述同一组数据流的转发规则,其中,所述M个服务节点对应N个交换节点,所述第一转发规则包含N个第一流表,每个交换节点对应一个第一流表,所述N为大于等于I的自然数;
[0040]在所述每个交换节点上配置所述每个交换节点对应的第一流表,其中,所述每个交换节点被配置的第一流表用于指示所述每个交换节点依照所述第一转发规则转发所述同一组数据流中的每个数据流。
[0041]结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表之后,还包括:
[0042]配置所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上的流表的优先级,其中,所述第二流表的优先级高于所述第一流表。
[0043]结合第三方面、第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式,在第三种可能的实现方式中,接收所述M个服务节点中的第一服务节点发送的上报信息包括:
[0044]接收所述第一服务节点发送的所述第一数据流的特征信息以及所述第一数据流的变更的后续处理动作指示。
[0045]结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一数据流的变更的后续处理动作指示为:所述第一数据流的后续数据包绕过所述第一服务节占.V,
[0046]根据所述上报信息,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表包括:
[0047]根据所述第一数据流的特征信息确定所述业务链,从所述业务链上确定第三服务节点,所述第三服务节点为所述第一服务节点在所述业务链上的后一个服务节点;
[0048]在所述第一服务节点对应的交换节点或者所述第二服务节点对应的交换节点上重新配置所述第二流表,其中,所述第二流表包含至少一个新流表项,所述新流表项包括所述第一数据流的特征信息、入端口和出端口,其中,所述出端口配置为所述第三服务节点对应的交换节点的端口。
[0049]结合第三方面的第三种可能的实现方式,在第五种可能的实现方式中,所述第一数据流的变更的后续处理动作指示丢弃所述第一数据流的后续数据包;
[0050]根据所述上报信息,在所述第一服务节点对应的交换节点或者第二服务节点对应的交换节点上重新配置第二流表包括:
[0051]在所述第一服务节点对应的交换节点或者所
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1