[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN108141416A - 一种报文处理方法、计算设备以及报文处理装置 - Google Patents

一种报文处理方法、计算设备以及报文处理装置 Download PDF

Info

Publication number
CN108141416A
CN108141416A CN201680003591.5A CN201680003591A CN108141416A CN 108141416 A CN108141416 A CN 108141416A CN 201680003591 A CN201680003591 A CN 201680003591A CN 108141416 A CN108141416 A CN 108141416A
Authority
CN
China
Prior art keywords
message
path
service
payload
switch
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.)
Granted
Application number
CN201680003591.5A
Other languages
English (en)
Other versions
CN108141416B (zh
Inventor
杨永强
左少夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN108141416A publication Critical patent/CN108141416A/zh
Application granted granted Critical
Publication of CN108141416B publication Critical patent/CN108141416B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/036Updating the topology between route computation elements, e.g. between OpenFlow controllers
    • H04L45/037Routes obligatorily traversing service-related nodes
    • H04L45/0377Routes obligatorily traversing service-related nodes for service chaining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/036Updating the topology between route computation elements, e.g. between OpenFlow controllers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/036Updating the topology between route computation elements, e.g. between OpenFlow controllers
    • H04L45/037Routes obligatorily traversing service-related nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种报文处理方法,用于转发服务流的报文。本申请提供的报文处理方法包括:接收第一交换机发送的第一报文,其中第一报文归属于从第一设备流向第二设备的服务流。确定所述服务流经过的服务链。根据服务流经过的服务链,确定服务流的转发路径,该转发路径包括服务链中的一个或多个服务节点。修改第一报文得到第二报文,其中第二报文归属于该服务流,且第二报文的有效载荷包括第一报文的有效载荷和转发路径指示信息。根据服务流的转发路径生成第一流表,并控制通信接口503将第一流表发送给第一交换机。将第二报文发送给第一交换机,以使第一交换机根据第一流表转发所述第二报文。本申请还提供了相关的计算设备以及报文处理装置。

Description

一种报文处理方法、计算设备以及报文处理装置 技术领域
本申请涉及通信领域,尤其涉及一种报文处理方法、计算设备以及报文处理装置。
背景技术
软件定义网络(英文:software defined network,缩写:SDN)是由美国斯坦福大学Clean Slate研究组提出的一种网络设计理念,其核心技术开放流(英文:OpenFlow)协议将网络设备的控制与数据平面分离,将网络的控制权集中在SDN控制器中,屏蔽了底层物理转发设备的差异,摆脱了硬件对网络架构的限制。
报文在SDN网络中转发的过程中有可能会经过多种服务的处理,如防火墙、网络地址转换(英文:network address translation,缩写:NAT)、负载均衡(英文:Load Balancing,缩写:LB)等。这些服务有可能会对报文的报头进行修改,例如防火墙服务有可能修改报文的媒体访问控制(英文:media acess control,缩写:MAC)地址,NAT、LB服务有可能修改报文的MAC地址和五元组信息。
但是报文的报头一旦被修改,报头中原本携带的信息便有可能会丢失。这会导致SDN控制器无法识别报文的转发路径,报文无法正常转发。
发明内容
本申请提供了一种报文处理方法,用于SDN控制器识别报文的转发路径以实现报文的正常转发。本申请还提出了相关的计算设备以及报文处理装置。
本申请第一方面提供了一种报文处理方法,其适用于SDN控制器。其中,SDN控制器接收第一交换机发送的第一报文,该第一报文归属于从第一设备流向第二设备的服务流,第一设备与第一交换机相连。其中,第一设备与第二设备可以为物理主机也可以为虚拟设备。SDN控制器确定服务流经过的服务链,并根据服务流经过的服务链,确定服务流的转发路径,该转发路径包括服 务链中的一个或多个服务节点。服务节点可以为物理主机也可以为虚拟设备。SDN控制器修改第一报文,得到第二报文,其中,第二报文与第一报文同样归属于该服务流,且第二报文的有效载荷中包括第一报文的有效载荷与转发路径指示信息,该转发路径指示信息用于指示该服务流的转发路径。SDN控制器根据该服务流的转发路径生成第一流表,并将第一流表发送给第一交换机。然后SDN控制器将第二报文发送给第一交换机,使得第一交换机根据第一流表转发第二报文。本申请中报文的转发路径指示信息携带在报文的有效载荷中,故转发路径指示信息不会因报文的报头被修改而丢失。这样就保证了SDN控制器能够识别报文原本的转发路径,进而向交换机下发流表,指示交换机按照报文原本的转发路径来转发报文。
可选的,SDN控制器在确定了服务流的转发路径后,向转发路径中的中间交换机下发预置流表。其中,中间交换机为服务链中的一个或多个非最后一跳服务节点对应的交换机。该预置流表由SDN控制器根据服务流的转发路径生成,用于指示中间交换机转发第二报文。这样中间交换机在接收到第二报文后,能够根据SDN控制器下发的预置流表直接转发第二报文,无需另行向SDN控制器请求流表。
可选的,SDN控制器接收第二交换机发送的第三报文,该第二交换机为中间交换机之一,且第三报文为第二交换机对应的服务节点对第二报文进行修改得到。第三报文与第二报文归属于同一服务流,且第三报文的有效载荷与第二报文的有效载荷相同。SDN控制器解析第三报文的有效载荷,获得第三报文的有效载荷中的转发路径指示信息,并根据该转发路径指示信息确定该服务流的转发路径。SDN控制器根据服务流的转发路径生成第二流表,然后将第二流表发送给第二交换机,使得第二交换机根据第二流表转发第三报文。由于本申请中将报文的转发路径指示信息携带在报文的有效载荷中,故SDN控制器只需要解析报文的有效载荷,即可识别报文原本的转发路径,使得报文能够按照原本的转发路径进行转发。
可选的,SDN控制器在向第二交换机下发了第二流表后,删除第二交换机上的预置流表。
可选的,SDN控制器中还设置有设备列表,该设备列表中列举了一个或 多个设备,该一个或多个设备会修改经过的报文的MAC地址和五元组信息。中间交换机不是该设备列表中所列设备对应的交换机。
可选的,SDN控制器在接收到第二交换机上发的第三报文后,将第二交换机对应的服务节点添加到该设备列表中。
可选的,SDN控制器还接收第三交换机发送的第四报文,该第三交换机为服务链中的最后一跳服务节点对应的交换机。该第四报文的有效载荷与第二报文的有效载荷相同,第四报文由第三报文经过一个或多个服务节点修改后得到,故第四报文与第三报文归属于同样的服务流。SDN控制器解析第四报文的有效载荷,获得第四报文的有效载荷中携带的转发路径指示信息。SDN控制器根据该转发路径指示信息,确定服务流的转发路径,并根据确定的转发路径生成第三流表发送给第三交换机。SDN控制器在获得了第四报文的有效载荷中携带的转发路径指示信息,还删除第四报文的有效载荷中的转发路径指示信息,得到第五报文,然后将第五报文发送给第三交换机,使得第三交换机根据第三流表转发第五报文。本申请通过将报文的转发路径指示信息携带在报文的有效载荷中,使得SDN控制器能够通过解析报文的有效载荷来识别报文的转发路径。这样SDN控制器能够向交换机下发流表,指示交换机按照报文原本的转发路径来转发报文。且SDN控制器在服务链的最后一跳中将报文的有效载荷复原,使得报文的原始有效载荷能够被转发到目的地。
可选的,转发路径的指示信息的长度为M个字节,该SDN控制器在修改第一报文时,具体在第一报文的有效载荷的末尾扩展M个字节,并向扩展的M个字节中填写转发路径指示信息,得到第二报文。
可选的,转发路径的指示信息的长度为M个字节,该SDN控制器在修改第一报文时,具体向第一报文的有效载荷的末尾M个字节中填写转发路径指示信息,得到第二报文。
可选的,转发路径指示信息包括该服务流的服务链的标识信息。
可选的,转发路径指示信息还包括服务流的租户标识。
可选的,转发路径指示信息还包括服务流的五元组信息。
可选的,SDN控制器在修改第一报文时,还将第一报文的目的MAC地址修改为服务链中第一跳服务节点的MAC地址。
可选的,SDN控制器在修改第四报文时,还将第四报文的目的MAC地址修改为第二设备的MAC地址。
可选的,SDN控制器还存储有七层节点列表,该七层节点列表中记录有一个或多个七层服务节点,七层服务节点为承载七层服务的服务节点。与七层服务节点的上一跳服务节点对应的交换机称为上一跳交换机,中间交换机不为上一跳交换机。SDN控制器接收上一跳交换机发送的第一目标报文,第一目标报文归属于所述服务流,且第一目标报文的有效载荷与第二报文的有效载荷相同。SDN控制器解析第一目标报文的有效载荷,获得有效载荷中携带的转发路径指示信息。SDN控制器根据转发路径指示信息确定服务流的转发路径,并根据务流的转发路径生成目标流表,并将目标流表发送给所述上一跳交换机。SDN控制器删除所述第一目标报文的有效载荷中的转发路径指示信息,得到第二目标报文。SDN控制器将所述第二目标报文发送给所述上一跳交换机,以使得上一跳交换机根据目标流表转发第二目标报文。
本申请第二方面提供了一种计算设备,包括处理器、存储器以及通信接口。通过调用存储器中存储的程序代码,处理器用于执行本申请第一方面提供的报文处理方法。
本申请第三方面提供了一种报文处理装置,包括通信模块和处理模块。其中,通信模块用于:接收第一交换机发送的第一报文,该第一报文归属于从第一设备流向第二设备的服务流,第一设备与第一交换机相连。其中,第一设备与第二设备可以为物理主机也可以为虚拟设备。处理模块用于:确定服务流经过的服务链,并根据服务流经过的服务链,确定服务流的转发路径,该转发路径包括服务链中的一个或多个服务节点。服务节点可以为物理主机也可以为虚拟设备。修改第一报文,得到第二报文,其中,第二报文与第一报文同样归属于该服务流,且第二报文的有效载荷中包括第一报文的有效载荷与转发路径指示信息,该转发路径指示信息用于指示该服务流的转发路径。根据该服务流的转发路径生成第一流表,并将第一流表发送给第一交换机。通信模块还用于:将第二报文发送给第一交换机,使得第一交换机根据第一流表转发第二报文。
可选的,通信模块还用于:在处理模块确定了服务流的转发路径后,向转发路径中的中间交换机下发预置流表。其中,中间交换机为服务链中的一个或 多个非最后一跳服务节点对应的交换机。该预置流表由处理模块根据服务流的转发路径生成,用于指示中间交换机转发第二报文。这样中间交换机在接收到第二报文后,能够根据通信模块下发的预置流表直接转发第二报文,无需另行向SDN控制器请求流表。
可选的,通信模块还用于:接收第二交换机发送的第三报文,该第二交换机为中间交换机之一,且第三报文为第二交换机对应的服务节点对第二报文进行修改得到。第三报文与第二报文归属于同一服务流,且第三报文的有效载荷与第二报文的有效载荷相同。处理模块还用于:解析第三报文的有效载荷,获得第三报文的有效载荷中的转发路径指示信息,并根据该转发路径指示信息确定该服务流的转发路径根据服务流的转发路径生成第二流表。通信模块还用于:将第二流表发送给第二交换机,使得第二交换机根据第二流表转发第三报文。
可选的,处理模块还用于:在通信模块向第二交换机下发了第二流表后,删除第二交换机上的预置流表。
可选的,报文处理装置中设置有设备列表,该设备列表中列举了一个或多个设备,该一个或多个设备会修改经过的报文的MAC地址和五元组信息。中间交换机不是该设备列表中所列设备对应的交换机。
可选的,处理模块还用于:在接收到第二交换机上发的第三报文后,将第二交换机对应的服务节点添加到该设备列表中。
可选的,通信模块还用于:接收第三交换机发送的第四报文,该第三交换机为服务链中的最后一跳服务节点对应的交换机。该第四报文的有效载荷与第二报文的有效载荷相同,第四报文由第三报文经过一个或多个服务节点修改后得到,故第四报文与第三报文归属于同样的服务流。处理模块还用于:解析第四报文的有效载荷,获得第四报文的有效载荷中携带的转发路径指示信息。根据该转发路径指示信息,确定服务流的转发路径,并根据确定的转发路径生成第三流表。通信模块还用于:将第三流表发送给第三交换机。处理模块还用于:删除第四报文的有效载荷中的转发路径指示信息,得到第五报文。通信模块还用于:将第五报文发送给第三交换机,使得第三交换机根据第三流表转发第五报文。
可选的,转发路径的指示信息的长度为M个字节,处理模块还用于:在第一报文的有效载荷的末尾扩展M个字节,并向扩展的M个字节中填写转发路径指示信息,得到第二报文。
可选的,转发路径的指示信息的长度为M个字节,处理模块还用于:向第一报文的有效载荷的末尾M个字节中填写转发路径指示信息,得到第二报文。
可选的,转发路径指示信息包括该服务流的服务链的标识信息。
可选的,转发路径指示信息还包括服务流的租户标识。
可选的,转发路径指示信息还包括服务流的五元组信息。
可选的,处理模块还用于:在修改第一报文时,将第一报文的目的MAC地址修改为服务链中第一跳服务节点的MAC地址。
可选的,处理模块还用于:在修改第四报文时,还将第四报文的目的MAC地址修改为第二设备的MAC地址。
可选的,报文处理装置还存储有七层节点列表,该七层节点列表中记录有一个或多个七层服务节点,七层服务节点为承载七层服务的服务节点。与七层服务节点的上一跳服务节点对应的交换机为上一跳交换机,中间交换机不为上一跳交换机。通信模块还用于接收上一跳交换机发送的第一目标报文,第一目标报文归属于所述服务流,且第一目标报文的有效载荷与第二报文的有效载荷相同。处理模块还用于:解析第一目标报文的有效载荷,获得有效载荷中携带的转发路径指示信息。根据转发路径指示信息确定服务流的转发路径,并根据务流的转发路径生成目标流表。通信模块还用于:将目标流表发送给所述上一跳交换机。处理模块还用于:删除所述第一目标报文的有效载荷中的转发路径指示信息,得到第二目标报文。通信模块还用于:将所述第二目标报文发送给所述上一跳交换机,以使得上一跳交换机根据目标流表转发第二目标报文。
本申请第四方面提供了一种计算机程序产品,该该计算机程序产品可以为一个软件安装包,该软件安装包被计算设备运行时,执行本申请第一方面提供的报文处理方法。
本申请第五方面提供了一种存储介质,该存储介质中存储了程序代码,该程序代码被计算设备运行时,执行本申请第一方面提供的报文处理方法。该存 储介质包括但不限于快闪存储器、硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid state drive,缩写:SSD)。
附图说明
图1为SDN网络的一种组网方式;
图2是SDN网络的另一种组网方式;
图3是SDN网络中服务链的一个示意图;
图4(a)是本申请提供的报文处理方法的一个实施例流程图;
图4(b)是本申请提供的报文处理方法的另一个实施例流程图;
图4(c)是本申请提供的报文处理方法的另一个实施例流程图;
图5是本申请提供的计算设备一个实施例结构图;
图6是本申请提供的报文处理装置一个实施例结构图。
具体实施方式
本申请提供了一种报文处理方法,用于SDN控制器识别报文的转发路径以实现报文的正常转发。本申请还提出了相关的计算设备以及报文处理装置,以下将分别进行说明。
SDN网络存在多种组合方式。举例来说,图1展示的是物理主机+物理交换机的组网方式,其中SDN网络包括多个物理主机,以及与该多个物理主机相连的、用于转发该读个物理主机的报文的物理交换机。图2是虚拟设备+虚拟交换机(英文:virtual switch,缩写:VS)的组网方式,其中SDN网络包括多个物理主机,每个物理主机上设置有多个虚拟设备,如虚拟机(英文:virtual machine,缩写:VM)、容器等。还设置有虚拟交换机用于转发该多个虚拟机的报文。SDN网络还有其它的组网方式,例如通过直通网卡技术实现虚拟机+物理交换机组网,或采用部分物理主机+物理交换机、部分虚拟设备+虚拟交换机的混合组网等。
报文在SDN网络中转发的过程中有可能会经过多种服务的处理,如防火 墙、NAT、LB等。一般的,将SDN网络中的流量按照服务进行分类,划分出一个或多个服务流。贯穿本说明书,一个服务流由一系列报文构成,该一系列报文由相同的源设备发出,且具有相同的目的设备。归属于一个服务流的报文在由源设备发出时,报头中携带有相同的五元组信息(原IP地址、目的IP地址。原端口号、目的端口号、协议类型)。归属于一个服务流的报文具有相同的转发路径。服务流所经过的服务序列称为该服务流所经过的服务链。例如,若属于某服务流的报文在转发过程中依次经过防火墙、NAT、LB服务处理,则防火墙-NAT-LB即为该服务流所经过的服务链。
报文的服务处理任务由SDN网络中的设备来承载。其中该设备可以是实体的设备(即物理主机),也可以是虚拟的设备(即VM)。一个设备上可以承载多项服务,一项服务也可以由多个设备来承载。一般的,SDN控制器在确定了报文的服务链后,指定用于承载该服务链中每项服务的设备,该指定的设备称为服务节点(英文:service node,缩写:SN)。服务链的各服务节点的序列就是报文的转发路径。
若根据承载的服务进行划分,则服务节点至少可以分为三类:第一类服务节点承载的服务用于只用于对报文进行检查与过滤,不会对报头进行任何修改,如二层防火墙、入侵防御系统(英文:intrusion prevention system,缩写:IPS)等。第二类服务节点承载的服务会修改报文的源MAC地址,如三层防火墙、路由器等,故经过第二类服务节点的报文的源MAC地址会发生变化。第三类服务节点承载的服务会修改报文的MAC地址以及五元组信息,如LB、NAT等服务,故经过第三类服务节点的报文的MAC地址和五元组信息都会发生变化。
图3是SDN网络中服务链的一个示意图,其中没有展示SDN网络的实际组网结构,而是展示了交换机与服务节点的连接关系。在图3中,每个交换机可以是物理交换机也可以是虚拟交换机,每个服务节点可以是物理主机也可以是虚拟机。服务流从第一设备流向第二设备,第一设备与第二设备可以是实体的设备也可以是虚拟的设备。服务流所经过的服务链包括N个服务节点,按照报文经过的次序依次称为第一跳服务节点、第二跳服务节点……第N跳服务节点,N为正整数。其中,第一服务节点是第一跳服务节点至第N-1跳服 务节点中的某个服务节点,第二服务节点是第N跳服务节点(即最后一跳服务节点),服务链中的其他服务节点省略不在图3中出示。
SDN网络中的交换机根据流表来转发报文。流表包括匹配域和执行域,匹配域中包括匹配条件,用于判断流表是否与报文匹配。匹配条件一般为五元组信息的形式,也可以为其他形式。执行域用于指示对报文具体转发动作。在图3中,第一设备发出服务流的首包,交换机1接收到服务流的首包后,先在本地保存的流表中查找与该首包匹配的流表,若在本地查找不到匹配流表,则将该首包发送给SDN控制器。SDN控制器根据服务流所经过的服务链,确定服务流的转发路径为第一设备依次经过该N个服务节点到第二设备,于是向第一设备所连接的交换机下发流表,以使得第一设备所连接的交换机根据下发的流表转发该首包。
此外,现阶段的技术还在报文的源MAC地址中携带服务链的标识信息,使得SDN控制器能够将服务链的标识信息与转发路径对应起来。在后续该N个服务节点相连的交换机向SDN控制器发送报文请求流表时,SDN控制器能够根据报文的源MAC地址中携带的服务链的标识信息,确定转发路径,进而向该N个服务节点所连接的交换机下发流表。
但是,在源MAC地址中携带服务链的标识信息并不具有普适性。举例来说:第二类和第三类服务节点均有可能修改报文的源MAC地址,这样的操作会造成源MAC地址中携带的服务链的标识信息的丢失,使得SDN控制器无法确定报文所属的转发路径。SDN控制器或是丢弃报文,或是为报文指定新的转发路径。因此在现阶段的技术中,若服务流经过第二类或第三类服务节点,则归属于该服务流的报文无法按照报文所属的转发路径进行转发。
针对上述问题,本申请在图3所示的服务链的基础上提供了一种报文处理方法,其基本流程请参阅图4(a)~图4(c)。
一、第一设备发出的第一报文的处理。请参阅图4(a)。
401、第一设备向第一交换机发送第一报文。
本实施例仅以图3所示的服务链为例进行描述。其中,服务流由第一设备流向第二设备,服务流的首包为第一报文,由第一设备发送给相连的第一交换 机。
402、第一交换机将第一报文发送给SDN控制器。
由于第一报文时服务流的首包,故第一交换机中没有与第一报文匹配的流表,第一交换机将第一报文发送给SDN控制器,SDN控制器接收该第一报文。
403、SDN控制器确定服务流的转发路径。
SDN控制器根据第一报文的报头中的五元组等信息,确定第一报文归属的服务流,进而确定该服务流所经过的服务链,并指定服务链的N个服务节点为第一跳服务节点~第N跳服务节点。于是得到了服务流的转发路径为:第一设备依次经过该N个服务节点到第二设备。
404、SDN控制器将第一报文修改为第二报文。
SDN控制器向第一报文的有效载荷(英文:payload)中添加转发路径指示信息,使得第一报文变为第二报文。第二报文的有效载荷中包括第一报文的有效载荷,以及该转发路径指示信息。
转发路径指示信息用于与服务流的转发路径对应。转发路径指示信息的形式有很多。在本申请的一些实施例中,转发路径指示信息为服务流所经过的服务链的标识信息。若服务链的标识不全局唯一,则转发路径指示信息还可以包括服务流的租户标识信息。此外,转发路径指示信息中还可以包括服务流的五元组信息。转发路径指示信息也可以为其它的形式,只要SDN控制器能够根据转发路径指示信息唯一获取步骤403中确定的转发路径即可。
SDN控制器向第一报文的有效载荷中添加转发路径指示信息的方法有很多。设转发路径指示信息的长度为M个字节。可选的,若第一报文的有效载荷的长度增加M个字节后仍不大于网络的最大传输单元(英文:maximum transmission unit,缩写:MTU),则SDN控制器可以在第一报文的有效载荷的末尾扩展M个字节,并将转发路径指示信息填写到扩展的M个字节中,这样得到的第二报文包括第一报文的全部有效载荷。又可选的,SDN控制器可以直接向第一报文的有效载荷的末尾的M个字节中填写该转发路径指示信息,这样第二报文包括第一报文除末尾M个字节之外的有效载荷。SDN控制器也可以通过其它方式向第一报文的有效载荷中添加转发路径指示信息得到第二报文,本申请中不做限定。
由于第二报文由第一报文修改后得到,且第二报文相比于第一报文而言报头未做任何修改,故第二报文与第一报文归属于同一个服务流。
405、SDN控制器生成第一流表发送给第一交换机。
SDN控制器根据确定的服务流的转发路径,生成第一流表下发给第一交换机。第一流表的匹配域与第二报文匹配。
本实施例对步骤404与步骤405之间的顺序不做限定,步骤405也可以位于步骤404之前。
406、SDN控制器将第二报文发送给第一交换机。
407、第一交换机根据第一流表转发第二报文。
第一交换机接收到第一流表与第二报文后,确定第一流表与第二报文匹配,于是根据第一流表的执行域的指示转发第二报文,使得第二报文被转发到第一跳服务节点。
通过图4(a)所示的步骤401~407可以看出,本申请中将报文的转发路径指示信息携带在报文的有效载荷中。由于第二类服务节点与第三类服务节点仅修改报文的报头部分,不修改报文的有效载荷,故本申请中报文携带的转发路径指示信息不会丢失。这样就保证了SDN控制器能够识别报文原本的转发路径,进而向交换机下发流表,指示交换机按照报文原本的转发路径来转发报文。
可选的,SDN控制器在步骤403中确定了服务流的转发路径后,还可以向中间交换机下发预置流表。其中,中间交换机为与转发路径中除最后一跳之外的服务节点相连的交换机。举例来说,图3中的第二交换机即为一个中间交换机。预置流表由SDN控制器根据转发路径生成,用于指示中间交换机转发第二报文。其中,预置流表的匹配域与第二报文匹配。这样中间交换机在接收到第二报文后,能够根据SDN控制器下发的预置流表直接转发第二报文,无需另行向SDN控制器请求流表。
值得指出的是,第三类服务节点会修改报文的MAC地址与五元组信息,导致修改后的报文无法与预置流表相匹配。因此可选的,SDN控制器中还可以包括设备列表,该设备列表中列举了多个设备,该多个设备为SDN控制器已识别的第三类服务节点。SDN控制器在向中间交换机下发预置流表之前, 还确定中间交换机的具体范围为:中间交换机不是设备列表中列举的设备对应的交换机。这样SDN控制器就不会向已识别的第三类服务节点对应的交换机下发预置流表,能够节约SDN控制器的性能。
可选的,SDN控制器在步骤404中修改第一报文时,还可以将第一报文的MAC地址修改为服务链中第一跳服务节点的MAC地址,得到第二报文。这样第一交换机在转发第二报文时,无需执行修改第二报文的MAC地址的相关操作。
二、第一服务节点发出的第二报文的处理。请参阅图4(b)。
408、第一服务节点向第二交换机发送第三报文。
本实施例中以第一服务节点为第三类服务节点为例进行描述。第二报文在经过第一服务节点后,报头部分的MAC地址以及五元组信息均被第一服务节点修改,变为了第三报文。第三报文相比于第二报文而言有效载荷部分未做修改,故第三报文与第二报文的有效载荷相同,均包括第一报文的有效载荷与转发路径指示信息。
虽然第三报文与第二报文的报头不同,但是第三报文是由第二报文修改得到的,故第三报文仍与第二报文归属相同的服务流。
409、第二交换机将第三报文发送给SDN控制器。
第二交换机中没有与第三报文匹配的流表,第二交换机将第三报文发送给SDN控制器,SDN控制器接收该第三报文。
410、SDN控制器确定转发路径。
SDN控制器解析第三报文的有效载荷,获取第三报文的有效载荷中的转发路径指示信息。SDN控制器根据转发路径指示信息,确定第三报文归属的服务流的转发路径。
411、SDN控制器生成第二流表发送给第二交换机。
SDN控制器根据确定的服务流的转发路径,生成第二流表下发给第二交换机。第二流表的匹配域与第三报文匹配。
412、第二交换机根据第二流表转发第三报文。
第二交换机接收到第一流表后,确定第二流表与第三报文匹配,于是根据 第二流表的执行域的指示转发第三报文,使得第三报文被转发到第一服务节点的下一跳服务节点。
通过图4(b)所示的步骤408~412可以看出,本申请中将报文的转发路径指示信息携带在报文的有效载荷中。SDN控制器只需要解析报文的有效载荷,即可识别报文原本的转发路径,使得报文能够按照原本的转发路径进行转发。
步骤409中提到,第二交换机中没有与第三报文匹配的流表。其具体情况可以分为以下三种:
情况一、SDN控制器未执行向中间交换机下发预置流表的操作。在这种情况下,第一服务节点可以是第一类至第三类服务节点中的任一类,本申请仅以第一服务节点属于第三类服务节点为例进行说明。
情况二、SDN控制器执行了向中间交换机下发预置流表的操作,但SDN控制器已识别第一服务节点为第三类服务节点,故未向第二交换机下发预置流表。
情况三、SDN控制器向第二交换机下发了预置流表,但第一服务节点为SDN控制器未识别的第三类服务节点,第二报文经过第一服务节点变为第三报文,报头发生了变化,无法匹配SDN控制器下发的预制流表。可选的,在这种情况下,SDN控制器可以删除第二交换机上的预置流表,并将第一服务节点添加到设备列表中,以识别第一服务节点为第三类服务节点。
三、第二服务节点发出的第四报文的处理。请参阅图4(c)。
413、第二服务节点向第三交换机发送第四报文。
如图3所示,第二服务节点为服务链中的最后一跳服务节点,第三交换机为与第二服务节点相连的交换机。
其中,第四报文可以与第三报文相同,也可以为第三报文经过一次或多次修改得到。举例来说,若服务链中第一服务节点与第二服务节点之间(不包括第一服务节点,包括第二服务节点)均为第二类服务节点,则第四报文与第三报文相同。若服务链中第一服务节点与第二服务节点之间(不包括第一服务节点,包括第二服务节点)存在第二类或第三类服务节点,则第四报文与第三报 文的报头部分不同,但有效载荷相同,均包括第一报文的有效载荷与转发路径指示信息。
即使第四报文与第三报文的报头不同,第四报文也是由第三报文修改得到的,故第四报文仍与第三报文归属相同的服务流。
414、第三交换机将第四报文发送给SDN控制器。
第四报文由服务流的首包经过一次或多次修改得到,且SDN控制器未向第三交换机下发预置流表,故第三交换机中没有与第四报文相匹配的流表。第三交换机将第四报文发送给SDN控制器,SDN控制器接收该第四报文。
415、SDN控制器确定转发路径。
SDN控制器解析第四报文的有效载荷,获取第四报文的有效载荷中的转发路径指示信息。SDN控制器根据转发路径指示信息,确定第四报文归属的服务流的转发路径,即确定将第四报文转发给第二设备。
416、SDN控制器将第四报文修改为第五报文。
SDN控制器删除第四报文的有效载荷中的转发路径指示信息,得到第五报文。第五报文的有效载荷中包括第一报文的有效载荷。
具体的,SDN控制器将第四报文修改为第五报文,得到的第五报文的有效载荷应与第一报文的有效载荷相同。举例来说,若步骤404中,SDN控制器在第一报文的有效载荷的末尾扩展M个字节,并将转发路径指示信息填写到扩展的M个字节中,则步骤416中,SDN控制器删除第四报文的有效载荷的末尾M个字节,使得第五报文的有效载荷与第一报文的有效载荷相同。又举例来说,若步骤404中,SDN控制器保存第一报文的有效载荷的末尾的M个字节中的原始内容,并向第一报文的有效载荷的末尾的M个字节中填写该转发路径指示信息,则步骤416中,SDN控制器将第一报文的有效载荷的末尾的M个字节中的原始内容填写到第四报文的有效载荷的末尾的M个字节中,使得第五报文的有效载荷与第一报文的有效载荷相同。
417、SDN控制器生成第三流表发送给第三交换机。
SDN控制器根据确定的服务流的转发路径,生成第三流表下发给第三交换机。第三流表的匹配域与第五报文匹配。
418、SDN控制器将第五报文发送给第三交换机。
419、第三交换机根据第三流表转发第五报文。
第三交换机接收到第三流表与第五报文后,确定第三流表与第五报文匹配,于是根据第三流表的执行域的指示转发第五报文,使得第五报文被转发到第二设备。
通过图4(c)所示的步骤413~419可以看出,本申请中将报文的转发路径指示信息携带在报文的有效载荷中。SDN控制器只需要解析报文的有效载荷,即可识别报文原本的转发路径。这样SDN控制器能够向交换机下发流表,指示交换机按照报文原本的转发路径来转发报文。且SDN控制器在服务链的最后一跳中将报文的有效载荷复原,使得报文的原始有效载荷能够被转发到目的地。
可选的,SDN控制器在步骤416中修改第四报文时,还可以将第四报文的MAC地址修改为第二设备的MAC地址,得到第五报文。这样第三交换机在转发第五报文时,无需执行修改第五报文的MAC地址的相关操作。
需要提出来的是,SDN网络中某些服务属于七层服务,七层服务需要使用到报文的有效载荷,故报文在进入承载七层服务的服务节点时,其有效载荷需要被还原。因此可选的,本申请的一些实施例中,SDN控制器还识别服务链中承载七层服务的服务节点(为了便于描述,以下简称七层服务节点),且不向七层服务节点的上一跳服务节点相连的交换机下发预置流表。当七层服务节点的上一跳服务节点相连的交换机(为了便于描述,以下简称上一跳交换机)向SDN控制器发送报文请求流表时,SDN控制器除了向该上一跳交换机下发流表之外,还删除报文有效载荷中的转发路径指示信息,然后将报文发送给该上一跳交换机,使得上一跳交换机将删除了转发路径指示信息的报文转发给七层服务节点。
图4(a)~图4(c)所示的实施例介绍了本申请提供的报文处理方法,下面将介绍本申请提供的一种计算设备500,该计算设备500在运行时执行图4所示的报文处理方法。
如图5所示,计算设备500包括处理器501、存储器502、通信接口503。可选的,还包括总线504。处理器501、存储器502和通信接口503可以通过 总线504实现彼此之间的通信连接。当然,也可以通过无线传输等其他手段实现通信。
存储器502可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或SSD;存储器502还可以包括上述种类的存储器的组合。在通过软件来实现本申请提供的技术方案时,用于实现本申请图4(a)~图4(c)提供的报文处理方法的程序代码可以保存在存储器502中,并由处理器501来执行。
通信接口503可以是可以是有线接口,例如光纤分布式数据接口(英文:Fiber Distributed Data Interface,简称:FDDI)、以太网(英文:Ethernet)接口。通信接口503也可以是无线接口,例如无线局域网接口。
处理器501可以为中央处理器(英文:central processing unit,简称:CPU),硬件芯片或CPU和硬件芯片的组合。处理器501在运行时,通过调用存储器502的程序代码,可以执行如下步骤:
控制通信接口503接收第一交换机发送的第一报文,其中第一报文归属于从第一设备流向第二设备的服务流。
确定所述服务流经过的服务链。
根据服务流经过的服务链,确定服务流的转发路径,该转发路径包括服务链中的一个或多个服务节点。
修改第一报文得到第二报文,其中第二报文归属于该服务流,且第二报文的有效载荷包括第一报文的有效载荷和转发路径指示信息。
根据服务流的转发路径生成第一流表,并控制通信接口503将第一流表发送给第一交换机。
控制通信接口503将第二报文发送给第一交换机,以使第一交换机根据第一流表转发所述第二报文。
可选的,通过调用存储器502的程序代码,处理器501还用于:
向转发路径中的中间交换机下发预置流表。其中,中间交换机为服务链中 的非最后一跳服务节点对应的交换机,预置流表根据该转发路径生成,且预置流表用于指示中间交换机转发第二报文。
可选的,通过调用存储器502的程序代码,处理器501还用于:
控制通信接口503接收第二交换机发送的第三报文,其中第二交换机为中间交换机之一,第三报文为第二交换机对应的服务节点对第二报文进行修改得到,且第三报文归属于该服务流。第三报文的有效载荷与第二报文的有效载荷相同。
解析第三报文的有效载荷,获得有效载荷中携带的转发路径指示信息。
根据转发路径指示信息确定服务流的转发路径,并根据务流的转发路径生成第二流表。控制通信接口503将第二流表发送给所述第二交换机,以使第二交换机根据第二流表转发第三报文。
可选的,通过调用存储器502的程序代码,处理器501还用于:
删除第二交换机上的预置流表。
可选的,存储器502中还存储有设备列表,设备列表中记录有多个设备,中间交换机不是设备列表中所列设备对应的交换机。
可选的,通过调用存储器502的程序代码,处理器501还用于:
将第二交换机对应的服务节点添加到该设备列表中。
可选的,通过调用存储器502的程序代码,处理器501还用于:
控制通信接口503接收第三交换机发送的第四报文,第三交换机为服务链中的最后一跳服务节点对应的交换机,第四报文的有效载荷与第二报文的有效载荷相同,且第四报文归属与所述服务流。
解析第四报文的有效载荷,获得有效载荷中携带的所述转发路径指示信息。
根据转发路径指示信息确定服务流的转发路径,并根据服务流的转发路径生成第三流表。
控制通信接口503将第三流表发送给第三交换机。
删除第四报文的有效载荷中的转发路径指示信息,得到第五报文。
控制通信接口503将第五报文发送给第三交换机,以使第三交换机根据第三流表转发第五报文。
可选的,转发路径指示信息的长度为M个字节,M为正整数。通过调用存储器502的程序代码,处理器501还用于:
在第一报文的有效载荷的末尾扩展M个字节,并向扩展的M个字节中填写转发路径指示信息,得到第二报文;
或,向第一报文的有效载荷的末尾M个字节中填写转发路径指示信息,得到第二报文。
可选的,转发路径指示信息包括服务链的标识信息。
可选的,转发路径指示信息还包括服务流的租户标识。
可选的,转发路径指示信息还包括服务流的五元组信息。
可选的,通过调用存储器502的程序代码,处理器501还用于:
将第一报文的目的MAC地址修改为服务链中第一跳服务节点的MAC地址。
可选的,通过调用存储器502的程序代码,处理器501还用于:
将第四报文的目的MAC地址修改为第二设备的MAC地址。
可选的,存储器502中还存储有七层节点列表,该七层节点列表中记录有一个或多个七层服务节点,七层服务节点为承载七层服务的服务节点。与七层服务节点的上一跳服务节点对应的交换机称为上一跳交换机,中间交换机不为上一跳交换机。通过调用存储器502中存储的程序代码,处理器501还用于:
控制通信接口503接收上一跳交换机发送的第一目标报文,第一目标报文归属于所述服务流,且第一目标报文的有效载荷与第二报文的有效载荷相同。
解析第一目标报文的有效载荷,获得有效载荷中携带的转发路径指示信息。
根据转发路径指示信息确定服务流的转发路径,并根据务流的转发路径生成目标流表。控制通信接口503将目标流表发送给所述上一跳交换机。
删除所述第一目标报文的有效载荷中的转发路径指示信息,得到第二目标报文。
将所述第二目标报文发送给所述上一跳交换机,以使得上一跳交换机根据目标流表转发第二目标报文。
图5所示的计算设备500的具体描述可以参考图4(a)~图4(c)所示的 报文处理方法,此处不做赘述。
本申请还提供了一种报文处理装置,用于实现图4(a)~图4(c)所示的实施例提供的报文处理方法。
请参阅图6,本申请提供的报文处理装置包括通信模块601与处理模块602。在一种实现方式中,通信模块601可以为物理接口,例如为FDDI接口、以太网接口等有线接口,也可以为无线局域网接口等无线接口。处理模块602可以为CPU、硬件芯片或CPU与硬件芯片的组合。在另一种实现方式中,通信模块601与处理模块602也可以为软件模块。
通信模块601,用于接收第一交换机发送的第一报文,其中第一报文归属于从第一设备流向第二设备的服务流。
处理模块602,用于确定所述服务流经过的服务链。根据服务流经过的服务链,确定服务流的转发路径,该转发路径包括服务链中的一个或多个服务节点。修改第一报文得到第二报文,其中第二报文归属于该服务流,且第二报文的有效载荷包括第一报文的有效载荷和转发路径指示信息。根据服务流的转发路径生成第一流表。
所述通信模块601还用于:将第一流表发送给第一交换机。将第二报文发送给第一交换机,以使第一交换机根据第一流表转发所述第二报文。
可选的,通信模块601还用于:向转发路径中的中间交换机下发预置流表。其中,中间交换机为服务链中的非最后一跳服务节点对应的交换机,预置流表根据该转发路径生成,且预置流表用于指示中间交换机转发第二报文。
可选的,通信模块601还用于:接收第二交换机发送的第三报文,其中第二交换机为中间交换机之一,第三报文为第二交换机对应的服务节点对第二报文进行修改得到,且第三报文归属于该服务流。第三报文的有效载荷与第二报文的有效载荷相同。
处理模块602还用于:解析第三报文的有效载荷,获得有效载荷中携带的转发路径指示信息。根据转发路径指示信息确定服务流的转发路径,并根据务流的转发路径生成第二流表。
通信模块601还用于:将第二流表发送给所述第二交换机,以使第二交换 机根据第二流表转发第三报文。
可选的,处理模块602还用于:删除第二交换机上的预置流表。
可选的,处理模块602还用于:将第二交换机对应的服务节点添加到该设备列表中。
可选的,报文处理装置中设置有设备列表,设备列表中记录有多个设备,中间交换机不是设备列表中所列设备对应的交换机。
可选的,通信模块601还用于:接收第三交换机发送的第四报文,第三交换机为服务链中的最后一跳服务节点对应的交换机,第四报文的有效载荷与第二报文的有效载荷相同,且第四报文归属与所述服务流。
处理模块602还用于:解析第四报文的有效载荷,获得有效载荷中携带的所述转发路径指示信息。根据转发路径指示信息确定服务流的转发路径,并根据服务流的转发路径生成第三流表。
通信模块601还用于:将第三流表发送给第三交换机。
处理模块602还用于:删除第四报文的有效载荷中的转发路径指示信息,得到第五报文。
通信模块601还用于:将第五报文发送给第三交换机,以使第三交换机根据第三流表转发第五报文。
可选的,转发路径指示信息的长度为M个字节,M为正整数。处理模块602还用于:在第一报文的有效载荷的末尾扩展M个字节,并向扩展的M个字节中填写转发路径指示信息,得到第二报文;或,向第一报文的有效载荷的末尾M个字节中填写转发路径指示信息,得到第二报文。
可选的,转发路径指示信息包括服务链的标识信息。
可选的,转发路径指示信息还包括服务流的租户标识。
可选的,转发路径指示信息还包括服务流的五元组信息。
可选的,处理模块602还用于:将第一报文的目的MAC地址修改为服务链中第一跳服务节点的MAC地址。
可选的,处理模块602还用于:将第四报文的目的MAC地址修改为第二设备的MAC地址。
可选的,报文处理装置中还设置有七层节点列表,该七层节点列表中记录 有一个或多个七层服务节点,七层服务节点为承载七层服务的服务节点。与七层服务节点的上一跳服务节点对应的交换机称为上一跳交换机,中间交换机不为上一跳交换机。通信模块601还用于:接收上一跳交换机发送的第一目标报文,第一目标报文归属于所述服务流,且第一目标报文的有效载荷与第二报文的有效载荷相同。
处理模块602还用于:解析第一目标报文的有效载荷,获得有效载荷中携带的转发路径指示信息。根据转发路径指示信息确定服务流的转发路径,并根据务流的转发路径生成目标流表。
通信模块601还用于:将目标流表发送给所述上一跳交换机。
处理模块602还用于:删除所述第一目标报文的有效载荷中的转发路径指示信息,得到第二目标报文。
通信模块601还用于:将所述第二目标报文发送给所述上一跳交换机,以使得上一跳交换机根据目标流表转发第二目标报文。
图6所示的报文处理装置的具体描述可以参考图4(a)~图4(c)所示的报文处理方法,此处不做赘述。
本申请还提供了一种计算机程序产品,该该计算机程序产品可以为一个软件安装包,该软件安装包被计算设备运行时,执行图4(a)~图4(c)所示的报文处理方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块或单元的间接耦合或通信连接,可以是 电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、SSD、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (33)

  1. 一种报文处理方法,适用于软件定义网络SDN中的SDN控制器,其特征在于,所述方法包括:
    接收第一交换机发送的第一报文,所述第一报文归属于从第一设备流向第二设备的服务流;
    确定所述服务流经过的服务链;
    根据所述服务流经过的服务链,确定所述服务流的转发路径,所述转发路径包括所述服务链中的一个或多个服务节点;
    修改所述第一报文得到第二报文,所述第二报文归属所述服务流,且所述第二报文的有效载荷包括所述第一报文的有效载荷和转发路径指示信息;
    根据所述服务流的转发路径生成第一流表,并将所述第一流表发送给所述第一交换机;
    将所述第二报文发送给所述第一交换机,以使所述第一交换机根据所述第一流表转发所述第二报文。
  2. 根据权利要求1所述的报文处理方法,其特征在于,所述方法还包括:
    向所述转发路径中的中间交换机下发预置流表,所述中间交换机为所述服务链中的非最后一跳服务节点对应的交换机,所述预置流表根据所述转发路径生成,用于指示所述中间交换机转发所述第二报文。
  3. 根据权利要求2所述的报文处理方法,其特征在于,所述方法还包括:
    接收第二交换机发送的第三报文,所述第二交换机为所述中间交换机之一,所述第三报文为所述第二交换机对应的服务节点对所述第二报文进行修改得到,所述第三报文归属所述服务流,且所述第三报文的有效载荷与所述第二报文的有效载荷相同;
    解析所述第三报文的有效载荷,获得所述有效载荷中携带的所述转发路径指示信息;
    根据所述转发路径指示信息确定所述服务流的转发路径,根据所述服务流的转发路径生成第二流表,并将所述第二流表发送给所述第二交换机,以使所述第二交换机根据所述第二流表转发所述第三报文。
  4. 根据权利要求3所述的报文处理方法,其特征在于,所述方法还包括:
    删除所述第二交换机上的所述预置流表。
  5. 根据权利要求2所述的报文处理方法,其特征在于,所述SDN控制器中设置有设备列表,所述中间交换机不是所述设备列表中所列设备对应的交换机。
  6. 根据权利要求1至5中任一项所述的报文处理方法,其特征在于,所述方法还包括:
    接收第三交换机发送的第四报文,所述第三交换机为所述服务链中的最后一跳服务节点对应的交换机,所述第四报文的有效载荷与所述第二报文的有效载荷相同,所述第四报文归属所述服务流;
    解析所述第四报文的有效载荷,获得所述有效载荷中携带的所述转发路径指示信息;
    根据所述转发路径指示信息确定所述服务流的转发路径,并根据所述服务流的转发路径生成第三流表;
    将所述第三流表发送给所述第三交换机;
    删除所述第四报文的有效载荷中的所述转发路径指示信息,得到第五报文;
    将所述第五报文发送给所述第三交换机,以使所述第三交换机根据所述第三流表转发所述第五报文。
  7. 根据权利要求1至6中任一项所述的报文处理方法,其特征在于,所述转发路径指示信息的长度为M个字节,所述M为正整数,所述修改所述第一报文得到第二报文包括:
    在所述第一报文的有效载荷的末尾扩展M个字节,并向扩展的M个字节中填写所述转发路径指示信息,得到第二报文;
    或,向所述第一报文的有效载荷的末尾M个字节中填写所述转发路径指示信息,得到第二报文。
  8. 根据权利要求1至7中任一项所述的报文处理方法,其特征在于,所述转发路径指示信息包括:所述服务链的标识信息。
  9. 根据权利要求8所述的报文处理方法,其特征在于,所述转发路径指 示信息还包括:所述服务流的租户标识。
  10. 根据权利要求7或8所述的报文处理方法,其特征在于,所述转发路径指示信息还包括:所述服务流的五元组信息。
  11. 根据权利要求7所述的报文处理方法,其特征在于,所述修改所述第一报文得到第二报文还包括:
    将所述第一报文的目的媒体访问控制MAC地址修改为所述服务链中第一跳服务节点的MAC地址。
  12. 一种计算设备,包括处理器、存储器以及通信接口,其特征在于,通过调用存储器中存储的程序代码,所述处理器用于:
    接收第一交换机发送的第一报文,所述第一报文归属于从第一设备流向第二设备的服务流;
    确定所述服务流经过的服务链;
    根据所述服务流经过的服务链,确定所述服务流的转发路径,所述转发路径包括所述服务链中的一个或多个服务节点;
    修改所述第一报文得到第二报文,所述第二报文归属所述服务流,且所述第二报文的有效载荷包括所述第一报文的有效载荷和转发路径指示信息;
    根据所述服务流的转发路径生成第一流表,并将所述第一流表发送给所述第一交换机;
    将所述第二报文发送给所述第一交换机,以使所述第一交换机根据所述第一流表转发所述第二报文。
  13. 根据权利要求12所述的计算设备,其特征在于,所述处理器还用于:
    向所述转发路径中的中间交换机下发预置流表,所述中间交换机为所述服务链中的非最后一跳服务节点对应的交换机,所述预置流表根据所述转发路径生成,用于指示所述中间交换机转发所述第二报文。
  14. 根据权利要求13所述的计算设备,其特征在于,所述处理器还用于:
    接收第二交换机发送的第三报文,所述第二交换机为所述中间交换机之一,所述第三报文为所述第二交换机对应的服务节点对所述第二报文进行修改得到,所述第三报文归属所述服务流,且所述第三报文的有效载荷与所述第二报文的有效载荷相同;
    解析所述第三报文的有效载荷,获得所述有效载荷中携带的所述转发路径指示信息;
    根据所述转发路径指示信息确定所述服务流的转发路径,根据所述服务流的转发路径生成第二流表,并将所述第二流表发送给所述第二交换机,以使所述第二交换机根据所述第二流表转发所述第三报文。
  15. 根据权利要求14所述的计算设备,其特征在于,所述处理器还用于:
    删除所述第二交换机上的所述预置流表。
  16. 根据权利要求13所述的计算设备,其特征在于,所述存储器中还存储有设备列表,所述中间交换机不是所述设备列表中所列设备对应的交换机。
  17. 根据权利要求12至16中任一项所述的计算设备,其特征在于,所述处理器还用于:
    接收第三交换机发送的第四报文,所述第三交换机为所述服务链中的最后一跳服务节点对应的交换机,所述第四报文的有效载荷与所述第二报文的有效载荷相同,所述第四报文归属所述服务流;
    解析所述第四报文的有效载荷,获得所述有效载荷中携带的所述转发路径指示信息;
    根据所述转发路径指示信息确定所述服务流的转发路径,并根据所述服务流的转发路径生成第三流表;
    将所述第三流表发送给所述第三交换机;
    删除所述第四报文的有效载荷中的所述转发路径指示信息,得到第五报文;
    将所述第五报文发送给所述第三交换机,以使所述第三交换机根据所述第三流表转发所述第五报文。
  18. 根据权利要求12至17中任一项所述的计算设备,其特征在于,所述转发路径指示信息的长度为M个字节,所述M为正整数,所述处理器还用于:
    在所述第一报文的有效载荷的末尾扩展M个字节,并向扩展的M个字节中填写所述转发路径指示信息,得到第二报文;
    或,向所述第一报文的有效载荷的末尾M个字节中填写所述转发路径指 示信息,得到第二报文。
  19. 根据权利要求12至18中任一项所述的计算设备,其特征在于,所述转发路径指示信息包括:所述服务链的标识信息。
  20. 根据权利要求19所述的计算设备,其特征在于,所述转发路径指示信息还包括:所述服务流的租户标识。
  21. 根据权利要求18或19所述的计算设备,其特征在于,所述转发路径指示信息还包括:所述服务流的五元组信息。
  22. 根据权利要求18所述的计算设备,其特征在于,所述处理器还用于:
    将所述第一报文的目的媒体访问控制MAC地址修改为所述服务链中第一跳服务节点的MAC地址。
  23. 一种报文处理装置,适用于软件定义网络SDN中的SDN控制器,其特征在于,所述装置包括:
    通信模块,用于接收第一交换机发送的第一报文,所述第一报文归属于从第一设备流向第二设备的服务流;
    处理模块,用于确定所述服务流经过的服务链;
    根据所述服务流经过的服务链,确定所述服务流的转发路径,所述转发路径包括所述服务链中的一个或多个服务节点;
    修改所述第一报文得到第二报文,所述第二报文归属所述服务流,且所述第二报文的有效载荷包括所述第一报文的有效载荷和转发路径指示信息;
    根据所述服务流的转发路径生成第一流表;
    所述通信模块还用于:将所述第一流表发送给所述第一交换机;
    将所述第二报文发送给所述第一交换机,以使所述第一交换机根据所述第一流表转发所述第二报文。
  24. 根据权利要求23所述的报文处理装置,其特征在于,所述通信模块还用于:
    向所述转发路径中的中间交换机下发预置流表,所述中间交换机为所述服务链中的非最后一跳服务节点对应的交换机,所述预置流表根据所述转发路径生成,用于指示所述中间交换机转发所述第二报文。
  25. 根据权利要求24所述的报文处理装置,其特征在于,所述通信模块 还用于:接收第二交换机发送的第三报文,所述第二交换机为所述中间交换机之一,所述第三报文为所述第二交换机对应的服务节点对所述第二报文进行修改得到,所述第三报文归属所述服务流,且所述第三报文的有效载荷与所述第二报文的有效载荷相同;
    所述处理模块还用于:解析所述第三报文的有效载荷,获得所述有效载荷中携带的所述转发路径指示信息;根据所述转发路径指示信息确定所述服务流的转发路径,根据所述服务流的转发路径生成第二流表;
    所述通信模块还用于:将所述第二流表发送给所述第二交换机,以使所述第二交换机根据所述第二流表转发所述第三报文。
  26. 根据权利要求25所述的报文处理装置,其特征在于,所述处理模块还用于:删除所述第二交换机上的所述预置流表。
  27. 根据权利要求24所述的报文处理装置,其特征在于,所述报文处理装置中设置有设备列表,所述中间交换机不是所述设备列表中所列设备对应的交换机。
  28. 根据权利要求23至27中任一项所述的报文处理装置,其特征在于,所述通信模块还用于:接收第三交换机发送的第四报文,所述第三交换机为所述服务链中的最后一跳服务节点对应的交换机,所述第四报文的有效载荷与所述第二报文的有效载荷相同,所述第四报文归属所述服务流;
    所述处理模块还用于:解析所述第四报文的有效载荷,获得所述有效载荷中携带的所述转发路径指示信息;根据所述转发路径指示信息确定所述服务流的转发路径,并根据所述服务流的转发路径生成第三流表;
    所述通信模块还用于:将所述第三流表发送给所述第三交换机;
    所述处理模块还用于:删除所述第四报文的有效载荷中的所述转发路径指示信息,得到第五报文;
    所述通信模块还用于:将所述第五报文发送给所述第三交换机,以使所述第三交换机根据所述第三流表转发所述第五报文。
  29. 根据权利要求23至28中任一项所述的报文处理装置,其特征在于,所述转发路径指示信息的长度为M个字节,所述M为正整数,所述处理模块还用于:
    在所述第一报文的有效载荷的末尾扩展M个字节,并向扩展的M个字节中填写所述转发路径指示信息,得到第二报文;
    或,向所述第一报文的有效载荷的末尾M个字节中填写所述转发路径指示信息,得到第二报文。
  30. 根据权利要求23至29中任一项所述的报文处理装置,其特征在于,所述转发路径指示信息包括:所述服务链的标识信息。
  31. 根据权利要求30所述的报文处理装置,其特征在于,所述转发路径指示信息还包括:所述服务流的租户标识。
  32. 根据权利要求29或30所述的报文处理装置,其特征在于,所述转发路径指示信息还包括:所述服务流的五元组信息。
  33. 根据权利要求29所述的报文处理装置,其特征在于,所述处理模块还用于:
    将所述第一报文的目的媒体访问控制MAC地址修改为所述服务链中第一跳服务节点的MAC地址。
CN201680003591.5A 2016-09-30 2016-09-30 一种报文处理方法、计算设备以及报文处理装置 Active CN108141416B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/101381 WO2018058677A1 (zh) 2016-09-30 2016-09-30 一种报文处理方法、计算设备以及报文处理装置

Publications (2)

Publication Number Publication Date
CN108141416A true CN108141416A (zh) 2018-06-08
CN108141416B CN108141416B (zh) 2020-04-03

Family

ID=61762409

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680003591.5A Active CN108141416B (zh) 2016-09-30 2016-09-30 一种报文处理方法、计算设备以及报文处理装置

Country Status (4)

Country Link
US (1) US10938748B2 (zh)
EP (1) EP3435606B1 (zh)
CN (1) CN108141416B (zh)
WO (1) WO2018058677A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220191169A1 (en) * 2019-04-04 2022-06-16 Telefonaktiebolaget Lm Ericsson (Publ) Service handling in software defined networking based container orchestration systems
CN114827029A (zh) * 2022-03-10 2022-07-29 新华三技术有限公司 一种报文转发方法及装置
CN115086220A (zh) * 2022-06-30 2022-09-20 绿盟科技集团股份有限公司 一种网络报文转发方法、装置、设备及介质
CN115348340A (zh) * 2022-08-15 2022-11-15 中国人民解放军战略支援部队信息工程大学 一种数据转发方法、装置、设备和存储介质

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US10320679B2 (en) 2014-09-30 2019-06-11 Nicira, Inc. Inline load balancing
US9755898B2 (en) 2014-09-30 2017-09-05 Nicira, Inc. Elastically managing a service node group
US10797966B2 (en) 2017-10-29 2020-10-06 Nicira, Inc. Service operation chaining
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
EP3895390A4 (en) * 2018-12-14 2022-08-03 Nokia Solutions and Networks Oy SERVICE CHAINING MECHANISM FOR PROCESSING A DATA FLOW
US11003482B2 (en) 2019-02-22 2021-05-11 Vmware, Inc. Service proxy operations
US11411843B2 (en) * 2019-08-14 2022-08-09 Verizon Patent And Licensing Inc. Method and system for packet inspection in virtual network service chains
CN112491717B (zh) * 2019-09-12 2024-10-22 华为技术有限公司 一种服务路由方法及装置
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11659061B2 (en) * 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11368387B2 (en) 2020-04-06 2022-06-21 Vmware, Inc. Using router as service node through logical service plane
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140226662A1 (en) * 2013-02-11 2014-08-14 Cisco Technology, Inc., A Corporation Of California Packet Metadata Channels Carrying Infrastructure Metadata in Networks
CN104283785A (zh) * 2014-10-29 2015-01-14 杭州华三通信技术有限公司 一种快速处理流表的方法和装置
WO2015149831A1 (en) * 2014-03-31 2015-10-08 Telefonaktiebolaget L M Ericsson (Publ) Handling of traffic flows in a communications system
CN105099960A (zh) * 2014-04-30 2015-11-25 国际商业机器公司 用于实现服务链的方法和装置
CN105306368A (zh) * 2015-09-17 2016-02-03 杭州数梦工场科技有限公司 一种数据报文的传输方法和装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2415319B (en) 2004-06-19 2006-11-29 Agilent Technologies Inc Method of generating a monitoring datagram
US8539098B2 (en) 2007-10-17 2013-09-17 Dispersive Networks, Inc. Multiplexed client server (MCS) communications and systems
US7860100B2 (en) * 2008-10-01 2010-12-28 Cisco Technology, Inc. Service path selection in a service network
US9148380B2 (en) * 2009-11-23 2015-09-29 Cisco Technology, Inc. System and method for providing a sequence numbering mechanism in a network environment
US9668161B2 (en) * 2012-07-09 2017-05-30 Cisco Technology, Inc. System and method associated with a service flow router
US8989192B2 (en) * 2012-08-15 2015-03-24 Futurewei Technologies, Inc. Method and system for creating software defined ordered service patterns in a communications network
CN103051629B (zh) * 2012-12-24 2017-02-08 华为技术有限公司 一种基于软件定义网络中数据处理的系统、方法和节点
US9258243B2 (en) * 2013-05-10 2016-02-09 Cisco Technology, Inc. Symmetric service chain binding
US9755960B2 (en) * 2013-09-30 2017-09-05 Juniper Networks, Inc. Session-aware service chaining within computer networks
US9967183B2 (en) * 2013-12-20 2018-05-08 Huawei Technologies Co., Ltd. Source routing with entropy-header
US9407541B2 (en) * 2014-04-24 2016-08-02 International Business Machines Corporation Propagating a flow policy by control packet in a software defined network (SDN) based network
JP6532526B2 (ja) * 2014-05-30 2019-06-19 華為技術有限公司Huawei Technologies Co.,Ltd. ネットワーク制御方法及び装置
US9537752B2 (en) * 2014-07-14 2017-01-03 Cisco Technology, Inc. Encoding inter-domain shared service paths
US9866472B2 (en) * 2014-12-09 2018-01-09 Oath Inc. Systems and methods for software defined networking service function chaining
GB2525701B (en) * 2015-01-08 2016-11-30 Openwave Mobility Inc A software defined network and a communication network comprising the same
US9547570B2 (en) * 2015-01-29 2017-01-17 Huawei Technologies Co., Ltd. Devices, systems and methods for debugging network connectivity
US20160261505A1 (en) * 2015-03-04 2016-09-08 Alcatel-Lucent Usa, Inc. Localized service chaining in nfv clouds
US10103976B2 (en) * 2015-07-09 2018-10-16 Cisco Technology, Inc. Service bitmask-based service application in service function chaining
US10116553B1 (en) * 2015-10-15 2018-10-30 Cisco Technology, Inc. Application identifier in service function chain metadata
CN105591925B (zh) * 2015-12-10 2019-03-12 新华三技术有限公司 应用于sdn中的报文转发方法和设备
US9917775B2 (en) * 2015-12-22 2018-03-13 Mcafee, Llc Intelligent devices in a software-defined network
US10158568B2 (en) * 2016-02-12 2018-12-18 Huawei Technologies Co., Ltd. Method and apparatus for service function forwarding in a service domain
US10003660B2 (en) * 2016-02-29 2018-06-19 Cisco Technology, Inc. System and method for data plane signaled packet capture in a service function chaining network
US10063415B1 (en) * 2016-06-29 2018-08-28 Juniper Networks, Inc. Network services using pools of pre-configured virtualized network functions and service chains
US10237176B2 (en) * 2016-06-30 2019-03-19 Juniper Networks, Inc. Auto discovery and auto scaling of services in software-defined network environment
US11349881B2 (en) * 2016-08-05 2022-05-31 Alcatel Lucent Security-on-demand architecture

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140226662A1 (en) * 2013-02-11 2014-08-14 Cisco Technology, Inc., A Corporation Of California Packet Metadata Channels Carrying Infrastructure Metadata in Networks
WO2015149831A1 (en) * 2014-03-31 2015-10-08 Telefonaktiebolaget L M Ericsson (Publ) Handling of traffic flows in a communications system
CN105099960A (zh) * 2014-04-30 2015-11-25 国际商业机器公司 用于实现服务链的方法和装置
CN104283785A (zh) * 2014-10-29 2015-01-14 杭州华三通信技术有限公司 一种快速处理流表的方法和装置
CN105306368A (zh) * 2015-09-17 2016-02-03 杭州数梦工场科技有限公司 一种数据报文的传输方法和装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220191169A1 (en) * 2019-04-04 2022-06-16 Telefonaktiebolaget Lm Ericsson (Publ) Service handling in software defined networking based container orchestration systems
US11956203B2 (en) * 2019-04-04 2024-04-09 Telefonaktiebolaget Lm Ericsson (Publ) Service handling in software defined networking based container orchestration systems
CN114827029A (zh) * 2022-03-10 2022-07-29 新华三技术有限公司 一种报文转发方法及装置
CN115086220A (zh) * 2022-06-30 2022-09-20 绿盟科技集团股份有限公司 一种网络报文转发方法、装置、设备及介质
CN115086220B (zh) * 2022-06-30 2024-05-17 绿盟科技集团股份有限公司 一种网络报文转发方法、装置、设备及介质
CN115348340A (zh) * 2022-08-15 2022-11-15 中国人民解放军战略支援部队信息工程大学 一种数据转发方法、装置、设备和存储介质
CN115348340B (zh) * 2022-08-15 2024-03-08 中国人民解放军战略支援部队信息工程大学 一种数据转发方法、装置、设备和存储介质

Also Published As

Publication number Publication date
EP3435606B1 (en) 2021-02-17
CN108141416B (zh) 2020-04-03
EP3435606A1 (en) 2019-01-30
US10938748B2 (en) 2021-03-02
US20190222538A1 (en) 2019-07-18
WO2018058677A1 (zh) 2018-04-05
EP3435606A4 (en) 2019-04-24

Similar Documents

Publication Publication Date Title
CN108141416A (zh) 一种报文处理方法、计算设备以及报文处理装置
US11283707B2 (en) Segment routing with fast reroute for container networking
US11625154B2 (en) Stage upgrade of image versions on devices in a cluster
CN111770028B (zh) 用于计算机网络的方法和网络设备
EP3210345B1 (en) Transparent network service header path proxies
US9602415B2 (en) Flow based network service insertion
CN109802985B (zh) 数据传输方法、装置、设备及可读取存储介质
EP3085032B1 (en) Method for implicit session routing
CN107113241B (zh) 路由确定方法、网络配置方法以及相关装置
Martinello et al. Keyflow: a prototype for evolving sdn toward core network fabrics
US9754297B1 (en) Network routing metering
US20200008067A1 (en) Resource partitioning for network slices in segment routing networks
CN102857491A (zh) 集管理方案
CN107046506B (zh) 一种报文处理方法、流分类器和业务功能实例
CN105051688A (zh) 经扩展的标记联网
JP5993817B2 (ja) キャリア網における経路制御システム及び方法
CN104734955A (zh) 网络功能虚拟化的实现方法、宽带网络网关以及控制装置
CN108400922B (zh) 虚拟局域网络配置系统与方法及其计算机可读存储介质
US12028246B2 (en) Collection of segment routing IPV6 (SRV6) network telemetry information
US11671354B2 (en) Collection of segment routing IPV6 (SRV6) network telemetry information
CN111654558B (zh) Arp交互与内网流量转发方法、装置和设备
US20240291910A1 (en) Granular and efficient policy-based routing in software-defined edge networks
WO2023185502A1 (zh) 流量回注方法及防护系统
CN115664920A (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
TR01 Transfer of patent right

Effective date of registration: 20220210

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right