WO2015078233A1 - 一种基于OpenFlow的SDN虚拟化平台下行信令处理方法 - Google Patents

一种基于OpenFlow的SDN虚拟化平台下行信令处理方法 Download PDF

Info

Publication number
WO2015078233A1
WO2015078233A1 PCT/CN2014/087896 CN2014087896W WO2015078233A1 WO 2015078233 A1 WO2015078233 A1 WO 2015078233A1 CN 2014087896 W CN2014087896 W CN 2014087896W WO 2015078233 A1 WO2015078233 A1 WO 2015078233A1
Authority
WO
WIPO (PCT)
Prior art keywords
item
action
virtual network
list
port
Prior art date
Application number
PCT/CN2014/087896
Other languages
English (en)
French (fr)
Inventor
黄韬
张健男
刘江
魏亮
丁健
刘韵洁
Original Assignee
北京邮电大学
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 北京邮电大学 filed Critical 北京邮电大学
Priority to US15/039,567 priority Critical patent/US10425337B2/en
Publication of WO2015078233A1 publication Critical patent/WO2015078233A1/zh

Links

Images

Classifications

    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/32Flooding

Definitions

  • the invention belongs to the technical field of computer networks, and in particular relates to a downlink signaling processing method of an SDN virtualization platform based on OpenFlow.
  • the OpenFlow software definition network consists of two parts: a data plane, which is used to forward network packets, and a control plane, which is used to control the forwarding strategy of network packets.
  • the OpenFlow switch in the data plane maintains a forwarding table internally, which is called a virtual network flow rule description table.
  • the virtual network flow rule description table may be matched according to a layer (physical layer) to a fourth layer (transport layer) feature of the packet header, and a processing method of matching the data packet matching the virtual network flow rule description entry.
  • the OpenFlow switch queries the internal virtual network flow rule description table and processes the data packet according to the virtual network flow rule description table.
  • the OpenFlow switch If the OpenFlow switch does not have a virtual network flow rule description table that can match the data packet, the OpenFlow switch forwards the data packet to the OpenFlow controller of the control plane, and the OpenFlow controller sends a virtual network flow rule description table to the OpenFlow switch. Indicates how the OpenFlow switch handles this packet.
  • the communication between the OpenFlow switch and the OpenFlow controller follows the OpenFlow protocol. Uplink signaling (OpenFlow switch to OpenFlow controller) and downlink signaling (OpenFlow controller to OpenFlow switch) defined by the OpenFlow protocol.
  • each OpenFlow controller only controls a portion of a particular network packet in the network, such that each OpenFlow controller controls a virtual network.
  • each OpenFlow switch can only have one control logic. Therefore, packets of different characteristics cannot be handed over to different OpenFlow controllers for processing.
  • a network virtualization layer needs to be added between the OpenFlow switch and the OpenFlow controller. It receives the uplink signaling of all OpenFlow switches and forwards it to the corresponding OpenFlow controller for processing according to the characteristics of the uplink signaling. Similarly, the downlink signaling sent by the OpenFlow controller received by the network virtualization layer also processes the signaling, and then forwards it to the corresponding OpenFlow switch.
  • the specific implementation process of the network virtualization layer is as follows: the network virtualization platform establishes multiple slices corresponding to multiple virtual networks for the network, and assigns one OpenFlow controller to each slice to forward network packets belonging to different slices. Give the corresponding OpenFlow controller to implement network virtualization; add a flow space (FlowSpace) to each slice.
  • FlowSpace flow space
  • the stream space describes the characteristics of the packet forwarded to the slice, including at least one or more of the following: switch port (layer 1), source mac/destination mac or Ethernet type (layer 2), source IP / destination IP or protocol type (layer 3), TCP / UDP source port / destination port (layer 4); network packets enter the OpenFlow switch and send PacketIn signaling to the network virtualization platform, the network virtualization platform will PacketIn signaling The match in the flowSpace is matched. If the PacketIn signaling matches the flow rule in the FlowSpace, the PacketIn message is forwarded to the OpenFlow controller where the FlowSpace is located.
  • the network virtualization platform divides the virtual network based on each switch. When a packet enters the OpenFlow switch to generate PacketIn, the network virtualization platform matches the data packet with all FlowSpaces to determine which virtual network the data packet belongs to. After the packet leaves the switch and enters the next switch, the network virtualization platform also matches the data packet with all FlowSpaces to determine which virtual network the packet belongs to. In this way, each hop must be judged by the virtual network, and the efficiency is low.
  • the OpenFlow protocol allows the switch to flexibly modify the data packet.
  • a data packet When a data packet is operated by a virtual network, some fields of the data packet may be changed. After this packet enters another OpenFlow switch, it may be judged by the network virtualization platform as a packet of another virtual network, which results in a packet being controlled by different OpenFlow controllers corresponding to the virtual network, and packet isolation. Poor sex.
  • the network virtualization platform checks and modifies the matching rules of the virtual network flow rule description table sent by the OpenFlow controller corresponding to the virtual network, but does not check the mutual exclusion of the flowspace, which leads to the virtual network 1
  • the virtual network flow rule description table delivered by the corresponding OpenFlow controller may match the data packet corresponding to the virtual network 2, and generate signaling out of bounds.
  • the network virtualization platform does not define the physical scope of the virtual network, which causes the virtual network data packets to spread arbitrarily, and the data packets are not closed.
  • the present invention provides a preprocessing method for downlink signaling of an SDN virtualization platform based on OpenFlow, which is characterized by:
  • the network virtualization platform receives the downlink signaling delivered by the virtual network controller
  • the matching item is a second matching item, and the second matching item matches the data packet entering the virtual network from the edge of the virtual network;
  • the virtual network controller is an OpenFlow controller; the downlink signaling is a FlowMod; the specific domain is a Match field in a downlink signaling FlowMod; and the matching item list is a Match field of a downlink signaling FlowMod.
  • OpenFlow controller the downlink signaling is a FlowMod; the specific domain is a Match field in a downlink signaling FlowMod; and the matching item list is a Match field of a downlink signaling FlowMod.
  • the specific domain list contains an indicator of a flooding operation; if the specific domain list does not include an indicator of the flooding operation, generating a corresponding domain for each of the matching entries in the matching list, and The flow rule is issued, and the preprocessing process is terminated; if the specific domain list includes an indicator of the flooding operation, it indicates that the flooding operation is included; all ports of the virtual switch in the virtual network are obtained, and whether there are more ports; If the value is YES, the port is obtained. If the port is a virtual network edge port, if the port is a virtual network edge port, the port is matched with all the matches in the match list. , the resulting new match is added to the new match list.
  • the port is determined to be not a virtual network edge port, it is further determined whether the port is a virtual network internal port.
  • the port is not a virtual network internal port, then return to the step of detecting whether there are more ports.
  • the determining port is a virtual network internal port
  • the port is merged with all the matching items in the matching item list as the matching tags of the slice label, and the obtained new matching item is added to the new matching item list.
  • the corresponding domain is generated for each matching item in the matching item list, and the flow rule is issued, and the end is ended. Pretreatment process.
  • the specific domain is an Action domain; the Action domain belongs to FlowMod signaling.
  • the invention also provides a downlink signaling processing method for an SDN virtualization platform based on OpenFlow, which is characterized in that:
  • the new action item list is combined with the match item to generate downlink signaling, which is sent to the physical switch, and returns to continue to judge that there are more matching items;
  • the step of acquiring the next Action item further determining whether the type of the Action item is an output type; if not the output type, adding the Action item to the new Action item list, returning to determine whether there is still More Action item steps; if it is an output type, further check whether the output type parameter is equal to the indicator of the flooding operation; if the result of checking whether the output type parameter is equal to the indicator of the flooding operation is no, then one step is performed if needed Adjust the flow label status, add a specific Action item to the new Action item list, and add the output type to the new Action item list, returning to the step of determining if there are more Action items; If the result of the output type parameter equal to the indicator of the flooding operation is yes, then all ports in the virtual network except the input port in the matching are further obtained.
  • the specific Action item is added to the new Action item list, And adding the output type to the list of new Action items, returning to the step of determining if there are more Action items.
  • the downlink signaling is FlowMod signaling; the specific Action item is a ModVlan Action item.
  • the invention also provides a downlink signaling processing method for an SDN virtualization platform based on OpenFlow, which is characterized in that:
  • Action item If the type of the Action item is not output, add the Action item to the Action item list, and return a step of determining whether there are more Action items;
  • BufferID is equal to -1, obtain all the ports of the virtual network switch in the virtual network; for each port, if you need to adjust the flow label, add a specific Action item to the new Action item list, and the output type is equal to the port added to the new one.
  • the Action item list return to the step of judging whether there are more Action items;
  • the BufferID is not equal to -1, obtain all other ports of the virtual network switch in the virtual network except the corresponding port of the BufferID. For each port, if you need to adjust the flow label, add a specific Action item to the new Action item. In the list, the output type is equal to the port added to the new Action item list, and returns to the step of determining if there are more Action items.
  • the downlink signaling is PacketOut signaling; the specific Action item is a ModVlan Action item.
  • Figure 1 shows a network structure diagram in accordance with one embodiment of the present invention
  • FIG. 2 shows a schematic diagram of packet flow directions in accordance with one embodiment of the present invention
  • FIG. 3 illustrates a PacketIn signaling processing flow according to an embodiment of the present invention
  • FIG. 5 illustrates a pre-processing flow of an Action field in FlowMod signaling according to an embodiment of the present invention
  • FIG. 6 shows a process flow of an Action field in FlowMod signaling according to an embodiment of the present invention
  • FIG. 7 shows a process flow of an Action field in Packet Out signaling according to an embodiment of the present invention.
  • FIG. 1 shows a network structure diagram according to an embodiment of the present invention, wherein a network virtualization platform internally maintains a virtual network topology, and the virtual network internal switch is a virtual network switch.
  • OpenFlow switches are physical switches in the network.
  • the virtualized platform internally generates multiple virtual networks according to user configurations, and each virtual network is respectively connected to a corresponding virtual network controller. For a physical switch, the virtualization platform is equivalent to the controller of the physical switch.
  • the network virtualization platform internally maintains a virtual network flow rule description table.
  • the physical switch receives a data packet
  • the data packet is encapsulated in the PacketIn signaling and sent to the packet.
  • Network virtualization platform network The virtualization platform decides which virtual network to hand over to the virtual network for processing based on the packet characteristics in the PacketIn signaling. If the data in the PacketIn signaling includes a virtual network flow label, the virtual network flow label is popped and sent to the corresponding virtual network controller according to the virtual network flow label. If the virtual network flow label is not included, the PacketIn signaling is performed. The data packet in the match matches the virtual network flow rule description table, and the packet is handed over to the virtual network processing indicated by the match.
  • FIG. 1 A schematic diagram of packet flow direction in accordance with one embodiment of the present invention is shown in FIG.
  • the physical switch that is, the OpenFlow switch does not have a corresponding flow table, the physical switch encapsulates the data packet in the PacketIn signaling and sends the data packet to the virtualization platform;
  • the network virtualization platform maintains two tables, one is a virtual network physical range description table, and one is a virtual network flow rule description table.
  • a virtual network topology is established according to the virtual network physical range description table.
  • the data packets in the physical network are handed over to the virtual network controller corresponding to the virtual network according to the flow rules of the virtual network.
  • the virtual network physical range description table is used to describe a virtual topology of the virtual network, and the structure is as follows:
  • the DPID is a 64-bit identifier that identifies an OF (OpenFlow) switch; the OFPort is a 16-bit identifier that identifies an interface in an OF switch.
  • One interface in the network can be uniquely identified by the DPID and OFPort binary groups.
  • the virtual network physical scope description table can completely describe the physical resources used by a virtual network.
  • the virtual network flow rule description table is used to describe a virtual network data packet, and its structure is as follows:
  • a flow rule is a description of a packet that describes the header characteristics of a packet from layer 1 to layer 4.
  • the flow rule includes the following 11 matches, and is therefore also referred to as an 11-tuple, where each match has the following meaning:
  • Ether dst Ethernet destination MAC address Ether type Ethernet type IP src/mask Source IP address, mask for wildcard IP dst/mask Destination IP address, mask is used for wildcards IP proto IP protocol field IP TOS bits IP packet TOS field TCP/UDP src port TCP/UDP source port number TCP/UDP dst port TCP/UDP destination port number
  • Each match in Table 3 contains three fields, namely: matching field, matching type and matching parameters, wherein the matching field is one of the 11-tuples in Table 3, which is used to identify the matching field of the matching item;
  • the type is used to identify the matching mode of the matching domain. It has three values: ignore, equal, and other.
  • the matching parameter is used to identify the matching data parameter of the matching domain.
  • Equal matches when the data packet matches the matching parameters of this matching domain
  • Matching field inport, matching type: equal, matching parameter: 1;
  • Matching field inport, matching type: equal, matching parameter: 2;
  • Matching field inport
  • matching type other
  • matching parameter null.
  • the network virtualization platform searches for a virtual network physical range description table of all activated virtual networks, if newly accessed.
  • the physical switch is added to the virtual topology of the virtual network in the virtual network physical scope description table.
  • the network virtualization platform is responsible for detecting and maintaining the link information of the physical network.
  • the network virtualization platform discovers a physical link, and the virtual network physical range description table contains the interfaces at both ends of the physical link, the physical chain is The road is added to the virtual topology of the virtual network.
  • the virtual network flow rule is added to the virtual network, so that the data packet conforming to the flow rule is processed by the OpenFlow controller corresponding to the virtual network.
  • Each virtual switch added in the virtual network takes the entry associated with the virtual switch from the virtual network flow rule table of the database and adds it to the virtual network flow rule.
  • the OpenFlow controller After the data packet is processed by the OpenFlow controller corresponding to the virtual network, there are two directions: forwarding from the virtual network edge; or being forwarded to another virtual network node. Since the operation of the data packet by the OpenFlow controller is not limited to the forwarding operation, the OpenFlow controller may modify the packet header information of the data packet, and the modified header information may not match the virtual network flow rule of the virtual network, which may result from the virtual network. Packets forwarded by one node to another virtual network node are processed or discarded by different OpenFlow controllers. In order to solve this problem, the present invention proposes a mechanism for tagging virtual network data packets. When a packet is transmitted inside a virtual network topology, the packet must carry a unique virtual network flow label, so that regardless of how the header of the packet is modified, it can be controlled by the correct OpenFlow corresponding to the virtual network. Processing.
  • the switch ports of each virtual network are divided into three types: virtual network internal ports, virtual network edge ports, and virtual network suppression ports.
  • the virtual network internal port is the port connecting the link in the virtual network topology
  • the virtual network edge port is the port in the virtual network topology where the link is not connected
  • the virtual network suppression end is The port is the port that is closed in the virtual network topology.
  • the instruction sent by the OpenFlow controller corresponding to the virtual network is detected, and if the OpenFlow controller forwards the data packet from the internal port of the virtual network, the OpenFlow downlink signaling is modified (PacketOut/ The Action field in FlowMod) adds a tagged action to the appropriate location to ensure that the data sent from the internal port of the virtual network contains virtual network flow tags.
  • the OpenFlow downlink signaling is modified (PacketOut/ The Action field in FlowMod) adds a tagged action to the appropriate location to ensure that the data sent from the internal port of the virtual network contains virtual network flow tags.
  • an action of adding a pop-up label in the appropriate location in the action domain is required to ensure that the uplink signaling is not generated from the virtual network suppression port. Signaling is also ineffective for suppressing the forwarding of the port.
  • the virtual network flow label can be a vlan label, an mpls label, or other type of label.
  • the virtual network flow label in this embodiment is a vlan label.
  • the data packet refers to the data flow of the data plane in the software-defined network.
  • the Openflow switch encapsulates the data packet into the Openflow protocol and sends it to the corresponding Controller.
  • the Openflow protocol packet is called signaling.
  • PacketIn signaling is the most important uplink signaling in OpenFlow.
  • the OpenFlow switch looks up the flow table to process the packet. If there is no entry in the flow table of the OpenFlow switch that matches the packet, the switch will pass PacketIn signaling. The packet is handed over to the network virtualization platform for processing. If there is an entry (flow entry) matching the packet in the flow table of the OpenFlow switch, the physical switch processes the packet according to the action specified by the flow entry.
  • the network virtualization platform first receives the PacketIn packet, and it needs to decide how to handle this PacketIn and how to forward it.
  • the PacketIn message received by the network virtualization platform contains the following information:
  • the data packet is in the ingress port of the OpenFlow switch
  • Step 101 a network virtualization platform Receiving a PacketIn message received; Step 102, determining whether it has a Vlan tag; Step 103, if the data packet carries a Vlan tag, indicating that the data packet is a data packet inside the virtual network; Step 105, determining that the PacketIn occurs Whether the location of the packet is within the physical range defined by the virtual network, and whether the port receiving the PacketIn belongs to the virtual network identified by the Vlan (ie, the virtual network); if yes, the Vlan label of the data packet is popped up, and then The data packet is forwarded to the corresponding OpenFlow controller corresponding to the virtual network; step 107, if no, an error is reported; step 104, if the data packet does not carry the Vlan label, the data packet is an unclassified data packet; The virtual network flow rule of each virtual network needs to be matched with the packet header of the data packet, and the PacketIn is forwarded to the
  • PacketOut signaling and FlowMod signaling are the most important downlink signaling in OpenFlow. Downlink signaling mainly needs to process the following:
  • the processing of the matching domain of the downlink signaling is performed to prevent the matching table of the flow table sent by the virtual network controller from matching the data packet that does not belong to the virtual network flow rule, thereby ensuring the OpenFlow corresponding to the virtual network.
  • the control information delivered by the controller is within the constraint of the virtual network flow rule.
  • the action domain of the downlink signaling is processed to ensure that the data packet is forwarded with the correct virtual network flow label when being forwarded in the virtual network, and on the other hand, the diffusion range of the virtual network data packet is controlled to prevent the data packet from being virtualized. Undefined interfaces on the network spread out of the virtual network.
  • the FlowMod signaling includes a Match field.
  • the following uses FlowMod signaling as an example to describe the processing method of the Match field, but does not exclude the use in other signaling:
  • the packet Match field of the OpenFlow protocol is used to describe how a packet matches a stream entry.
  • the matches contained in the OFMatch field are as follows:
  • Tp_src Tp_src;/*TCP/UDP source port.*/TCP/UDP source port
  • Tp_dst /*TCP/UDP destination port.*/TCP/UDP destination port
  • An OFMatch contains multiple matches, and OFMatch can mask to indicate which fields need to match.
  • the intersection of OFMatch refers to the common matching field that both OFMatch have.
  • the union of OFMatch refers to all the matching fields that the two OFMatch have. When the matching fields of the two OFMatch have coincident items but the parameters of the matching matches are different, the union does not exist. The union can be recorded as OFMatch1+OFMatch2.
  • OFMatch1 dl_src+dl_dst+dl_type
  • OFMatch2 dl_src+nw_src+nw_dst
  • OFMatch1 When the dl_src of OFMatch1 is the same as the dl_src of OFMatch2, OFMatch1 has a union with OFMatch2, and the set is dl_src+dl_dst+dl_type+nw_src+nw_dst.
  • FIG. 4 illustrates the pre-processing flow of the Match field.
  • Step 201 The network virtualization platform receives the FlowMod downlink signaling sent by the OpenFlow controller.
  • Step 202 Add a match matching the virtual network flow label (SliceVlan) to the Match field in the FlowMod, so that the Match item matches the internal data of the virtual network. Packet; step 203, this patch is Match1, which is added to the Match list; Step 204, adding a match matching No.
  • SliceVlan virtual network flow label
  • the generated Match item is Match2, Match2 will match
  • the virtual network edge enters the data packet of the virtual network; in step 205, the merge operation is merged with each of the virtual network flow rules, that is, The set operation adds the calculated Match item to the Match list; in step 206, the last obtained Match list is the equivalent Match list of the FlowMod Match field in the virtual network, and ends.
  • the FlowMod signaling and the PacketOut signaling in the downlink signaling include an Action field.
  • FIG. 5 exemplarily illustrates a pre-processing flow of an Action field in FlowMod signaling.
  • Step 301 start;
  • Step 303 if the Action list does not contain All Or Flood, generate an action corresponding to each Match item in the Match list, and send the flow rule and perform step 311;
  • Step 304 if the Action list includes All or Flood, it means that the flood is included.
  • FIG. 6 exemplarily illustrates a processing flow of an Action field in FlowMod signaling.
  • FlowMod signaling has processed the Match item, generated a Match list, and generated a corresponding Action item for each item of the Match list, combining the Match item and the Action item.
  • FIG. 7 exemplarily illustrates a processing flow of an Action field in Packet Out signaling.
  • PacketOut is only processed for a specific packet, and there is no Match field.

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

本发明公开了一种基于OpenFlow的SDN虚拟化平台下行信令处理方法,在执行下行信令的预处理之后,进一步执行,判断匹配项列表中是否还有更多匹配项;如果判断还有更多的匹配项,则从匹配项列表中获取一个条目;如果判断否,则结束处理;在如果判断还有更多的匹配项,则从匹配项列表中获取一个条目步骤之后,进一步判断是否还有更多的Action项;如果没有更多的Action项,则将新的Action项列表与匹配项结合生成下行信令,下发给虚拟网络交换机,返回继续判断还有更多的匹配项;如果还有更多的Action项,则获取下一条Action项。

Description

一种基于OpenFlow的SDN虚拟化平台下行信令处理方法 技术领域
本发明属于计算机网络技术领域,具体涉及一种基于OpenFlow的SDN虚拟化平台下行信令处理方法。
背景技术
随着互联网技术的飞速发展,互联网应用与用户数量急剧增长,基于TCP/IP的互联网逐渐暴露出许多的问题与弊端。不少国家提出了下一代互联网计划,软件定义网络应运而生。
OpenFlow软件定义网络由两部分组成:数据平面,用来转发网络数据包;控制平面,用来控制网络数据包的转发策略。数据平面的OpenFlow交换机内部维护一张转发表,称之为虚拟网络流规则描述表。虚拟网络流规则描述表可以根据数据包包头的一层(物理层)到四层(传输层)特征进行匹配,并指定匹配虚拟网络流规则描述表项的数据包的处理方法。当一个数据包进入OpenFlow交换机后,OpenFlow交换机会查询内部的虚拟网络流规则描述表,按虚拟网络流规则描述表处理数据包。若OpenFlow交换机内部没有能够匹配数据包的虚拟网络流规则描述表,OpenFlow交换机会将这个数据包转发给控制平面的OpenFlow控制器,OpenFlow控制器再向OpenFlow交换机下发一条虚拟网络流规则描述表,指示OpenFlow交换机如何处理这个数据包。OpenFlow交换机和OpenFlow控制器之间的通信遵循OpenFlow协议。OpenFlow协议定义的上行信令(OpenFlow交换机到OpenFlow控制器)和下行信令(OpenFlow控制器到OpenFlow交换机)。
如果将一个OpenFlow网络交给多个OpenFlow控制器来控制,每个OpenFlow控制器只控制网络中的一部分特定的网络数据包,这样,每个OpenFlow控制器就控制着一个虚拟网络。但是在OpenFlow 1.0中,每个OpenFlow交换机只能有一个控制逻辑,因此,不能将不同特征的数据包交给不同的OpenFlow控制器处理。为此,需要在OpenFlow交换机和OpenFlow控制器之间添加一个网络虚拟化层,它接收所有OpenFlow交换机的上行信令,并根据上行信令的特征将它转发给对应的OpenFlow控制器处理。同样,网络虚拟化层收到的OpenFlow控制器下发的下行信令也要对信令进行处理,处理后再将其转发给相应的OpenFlow交换机。
网络虚拟化层具体实现过程如下:网络虚拟化平台为网络建立与多个虚拟网络相对应的多个切片(Slice),为每个Slice指定一个OpenFlow控制器,将属于不同Slice的网络数据包转发给对应的OpenFlow控制器以实现网络虚拟化;再向每个Slice中添加流空间(FlowSpace)。流空间描述了转发给Slice的数据包的特征,至少包含以下多个匹配项中的一个或多个:交换机端口(layer 1),源mac/目的mac或以太网类型(layer 2),源IP/目的IP或协议类型(layer 3),TCP/UDP源端口/目的端口(layer 4);网络数据包进入OpenFlow交换机后向网络虚拟化平台发送PacketIn信令,网络虚拟化平台将PacketIn信令与FlowSpace中的匹配项进行匹配,若PacketIn信令匹配了FlowSpace中的流规则,则将这条PacketIn消息转发给这条FlowSpace所在的OpenFlow控制器。
现有技术中存在以下缺点:
1)网络虚拟化平台基于每个交换机进行虚拟网络划分,每当一个数据包进入OpenFlow交换机产生PacketIn,网络虚拟化平台都会将数据包与所有FlowSpace匹配,判断该数据包属于哪个虚拟网络,当数据包离开本交换机进入下一个交换机后,网络虚拟化平台还会将此数据包与所有FlowSpace匹配,判断该数据包属于哪个虚拟网络。这样每一跳都要进行虚拟网络的判断,效率较低。
2)OpenFlow协议允许交换机对数据包进行灵活的修改操作,当一个数据包被一个虚拟网络操作后,数据包的部分字段可能被改变, 此数据包进入另一个OpenFlow交换机后,可能被网络虚拟化平台判断为另一个虚拟网络的数据包,这就导致了一个数据包被不同的与虚拟网络相对应的OpenFlow控制器控制,数据包隔离性差。
3)网络虚拟化平台虽然对与虚拟网络相对应的OpenFlow控制器下发的虚拟网络流规则描述表匹配项进行检查与修改,但是对flowspace的互斥性没有检查,这导致与虚拟网络1相对应的OpenFlow控制器下发的虚拟网络流规则描述表可能匹配了虚拟网络2对应的数据包,产生信令越界。
4)网络虚拟化平台对虚拟网络的物理范围没有定义,这会导致虚拟网络数据包任意扩散,数据包不具有封闭性。
发明内容
为克服上述现有技术的不足,本发明提供了一种基于OpenFlow的SDN虚拟化平台下行信令的预处理方法,其特征在于:
网络虚拟化平台接收虚拟网络控制器下发的下行信令;
向下行信令中的特定域添加虚拟网络流标签相匹配的第一匹配项,使得该特定域与虚拟网络内部数据包相匹配;
将该第一匹配项添加到匹配项列表中;
向下行信令中的特定域添加与无标签相匹配的匹配项,该匹配项为第二匹配项,第二匹配项与从虚拟网络边缘进入虚拟网络的数据包相匹配;
将第二匹配项与虚拟网络流规则中的每一条流进行并集运算,将运算后的匹配项加入到匹配项列表中;
得到匹配项列表。
优选地,所述虚拟网络控制器为OpenFlow控制器;所述下行信令为FlowMod;所述特定域为下行信令FlowMod中的Match域;所述匹配项列表为下行信令FlowMod的Match域在该虚拟网络中的等价Match列表。
优选地,检查特定域列表中是否包含泛洪操作的指示符;如果特定域列表中不包含泛洪操作的指示符,则针对匹配项列表中的每一个匹配项生成与之对应的域,并下发流规则,以及结束预处理过程;如果特定域列表中包含泛洪操作的指示符,则表示包含泛洪操作;获取虚拟网络中虚拟交换机的所有端口,检测是否还有更多的端口;如果判断为是,则获取一个端口;判断端口是否是虚网边缘端口;如果判断端口是虚网边缘端口,则将该端口与匹配项列表中的所有匹配项为无标签的匹配项取并集,得到的新的匹配项添加到新的匹配项列表中。
优选地,如果判断端口不是虚网边缘端口;进一步判断端口是否为虚网内部端口。
优选地,如果判断端口不是虚网内部端口,则返回至检测是否还有更多的端口的步骤。
优选地,如果判断端口是虚网内部端口,则将该端口与匹配项列表中的所有匹配项为切片标签的匹配项取并集,得到的新的匹配项添加到新的匹配项列表中。
优选地,如果检测是否还有更多的端口的步骤的检测结果是没有更多的端口,则针对匹配项列表中的每一个匹配项生成与之对应的域,并下发流规则,以及结束预处理过程。
优选地,所述特定域是Action域;所述Action域属于FlowMod信令。
本发明还提供了一种基于OpenFlow的SDN虚拟化平台下行信令处理方法,其特征在于:
在执行下行信令的预处理之后,进一步执行,
判断匹配项列表中是否还有更多匹配项;
如果判断还有更多的匹配项,则从匹配项列表中获取一个条目;
如果判断否,则结束处理;
在如果判断还有更多的匹配项,则从匹配项列表中获取一个条目 步骤之后,进一步判断是否还有更多的Action项;
如果没有更多的Action项,则将新的Action项列表与匹配项结合生成下行信令,下发给物理交换机,返回继续判断还有更多的匹配项;
如果还有更多的Action项,则获取下一条Action项。
优选地,在获取下一条Action项的步骤之后,进一步判断Action项的类型是否为输出类型;若不为输出类型,则将此Action项添加到新的Action项列表中,返回到判断是否还有更多的Action项步骤;若为输出类型,则进一步检查输出类型参数是否等于泛洪操作的指示符;如果检查输出类型参数是否等于泛洪操作的指示符的结果为否,则一步执行如果需要调整流标签状态,则将特定Action项添加到新的Action项列表中,以及将输出类型为端口添加到新的Action项列表中,返回至判断是否还有更多的Action项的步骤;如果检查输出类型参数是否等于泛洪操作的指示符的结果为是,则进一步获取虚拟网络中除匹配项中输入端口之外的其他所有端口。
优选地,在获取虚拟网络中除匹配项中输入端口之外的其他所有端口的步骤之后,进一步针对每一个端口,如需要调整流标签,则将特定Action项添加到新的Action项列表中,以及将输出类型为端口添加到新的Action项列表中,返回至判断是否还有更多的Action项的步骤。
优选地,所述下行信令为FlowMod信令;所述特定Action项为ModVlan Action项。
本发明还提供了一种基于OpenFlow的SDN虚拟化平台下行信令处理方法,其特征在于:
获取下行信令的特定域;
判断是否还有更多的Action项;
如果没有更多的Action项,则下发下行信令,结束处理;
如果还有更多的Action项,获取下一条Action项;
在获取下一条Action项步骤之后,进一步执行
判断Action项的类型是否为输出;
如果Action项的类型不为输出,则将该Action项添加到Action项列表中,返回判断是否还有更多的Action项的步骤;
如果Action项的类型为输出,则进一步检查该Action项是否包含泛洪操作的指示符;
如果检查该Action项是否包含泛洪操作的指示符的结果为否,且如果需要调整流标签状态,将特定Action项添加到新的Action项列表中,以及将输出类型等于端口添加到新的Action项列表中,并返回到判断是否还有更多的Action项的步骤;
如果检查该Action项是否包含泛洪操作的指示符的结果为是,则判断下行信令的BufferID是否等于-1;
如果BufferID等于-1,获取虚拟网络交换机在虚拟网络中的所有端口;针对每一个端口,如需要调整流标签,将特定Action项添加到新的Action项列表中,输出类型等于端口添加到新的Action项列表中,返回到判断是否还有更多的Action项的步骤;
如果BufferID不等于-1,获取除BufferID对应数据包入端口以外,虚拟网络交换机在虚拟网络中的其他所有端口;针对每一个端口,如需要调整流标签,将特定Action项添加到新的Action项列表中,输出类型等于端口添加到新的Action项列表中,返回到判断是否还有更多的Action项的步骤。
优选地,所述下行信令为PacketOut信令;所述特定Action项为ModVlan Action项。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。
附图说明
图1示出了根据本发明的一个实施例的网络结构图;
图2示出了根据本发明的一个实施例的数据包流向示意图;
图3示出了根据本发明的一个实施例的PacketIn信令处理流程;
图4示出了根据本发明的一个实施例的Match域的预处理流程;
图5示出了根据本发明的一个实施例的了FlowMod信令中的Action域的预处理流程;
图6示出了根据本发明的一个实施例的FlowMod信令中的Action域的处理流程;
图7示出了根据本发明的一个实施例的PacketOut信令中的Action域的处理流程。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的基于OpenFlow协议的网络虚拟化平台上下行信令处理方法其具体实施方式、特征及其功效,详细说明如后。在下述说明中,不同的“一实施例”或“实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。
图1中示出了根据本发明的一个实施例的网络结构图,其中网络虚拟化平台内部维护虚拟网络拓扑,虚拟网络内部交换机为虚拟网络交换机。OpenFlow交换机为网络中的物理交换机。虚拟化平台内部根据用户配置,生成多个虚拟网络,每个虚拟网络分别连接相应的虚拟网络控制器。对于物理交换机来说,虚拟化平台就相当于物理交换机的控制器。
网络虚拟化平台内部维护有虚拟网络流规则描述表,当物理交换机接收到一个数据包时,如果物理交换机没有与该数据包匹配的流表,则将该数据包封装在PacketIn信令中发给网络虚拟化平台,网络 虚拟化平台根据PacketIn信令中的数据包特征决定将这个数据包交给哪个虚拟网络来处理。如果PacketIn信令中的数据包含有虚拟网络流标签,则弹出虚拟网络流标签后将其根据虚拟网络流标签发给相应的虚拟网络控制器,若不含有虚拟网络流标签,则将PacketIn信令中的数据包与虚拟网络流规则描述表进行匹配,并将此数据包交给匹配项所指示的虚拟网络处理。
图2中示出了根据本发明的一个实施例的数据包流向示意图。
①表示数据包从终端发往OpenFlow交换机;
②表示接收到数据包后,如果物理交换机、即OpenFlow交换机没有对应的流表时,物理交换机将数据包封装在PacketIn信令中发给虚拟化平台;
③表示网络虚拟化平台判断数据包是否含有虚拟网络流标签;
④表示如果判断数据包中没有虚拟网络流标签,则需要根据虚拟网络流规则表决定数据包被送往哪个虚网;
⑤表示PacketIn信令通过虚拟网络内的虚拟网络交换机发送给虚拟网络控制器;
⑥表示虚拟网络控制器向虚拟网络交换机发送下行信令(FlowMod或PacketOut);
⑦表示网络虚拟化平台对下行信令进行处理后,将处理后的下行信令发送给物理交换机。
在本发明的一个具体实施方式中,网络虚拟化平台中维护有两张表,一张是虚拟网络物理范围描述表,一张是虚拟网络流规则描述表。在建立虚拟网络时,根据虚拟网络物理范围描述表建立虚拟网络拓扑。在虚拟网络运行过程中,根据虚拟网络的流规则,将物理网络中的数据包交给与虚拟网络相对应的虚拟网络控制器处理。
所述虚拟网络物理范围描述表用于描述虚拟网络的虚拟拓扑,其结构如下:
DPID OFPort
DPID1 OFPort1
DPID2 OFPort2
表1虚拟网络物理范围描述表
其中,DPID为一个64bit标识符,用来标识一台OF(OpenFlow)交换机;OFPort为一个16bit标识符,用来标识一个OF交换机中的一个接口。
通过DPID和OFPort二元组就可以唯一确定网络中的一个接口。虚拟网络物理范围描述表可以完整地描述一个虚拟网络所使用的物理资源。
所述虚拟网络流规则描述表用于描述虚拟网络数据包,其结构如下:
Figure PCTCN2014087896-appb-000001
表2虚拟网络流规则描述表
当多个虚拟网络的物理范围存在重叠时,若从虚拟网络重叠区域产生了数据包,该数据包将依据虚拟网络流规则描述表交给其中一个虚拟网络处理。
流规则(rule)是对数据包的描述,可以描述一个数据包从1层到4层的包头特征。流规则包括如下11个匹配项,因此也被称为11元组,其中各匹配项含义如下:
dpid OF交换机ID
inport 数据包的输入端口
ether source 以太网源MAC地址
ether dst 以太网目的MAC地址
ether type 以太网类型
IP src/mask 源IP地址,mask用于通配
IP dst/mask 目的IP地址,mask用于通配
IP proto IP协议字段
IP TOS bits IP包TOS字段
TCP/UDP src port TCP/UDP源端口号
TCP/UDP dst port TCP/UDP目的端口号
表3虚拟网络流规则匹配项
表3中的每个匹配项均包含三个字段,即:匹配域,匹配类型和匹配参数,其中,匹配域是表3中的11元组之一,用于标识匹配项的匹配字段;匹配类型用于标识匹配域的匹配方式,具有三种取值:ignore,equal,other;匹配参数用于标识匹配域的匹配数据参数。
因此一个完整的流规则(rule)应包含如下信息:
Figure PCTCN2014087896-appb-000002
Figure PCTCN2014087896-appb-000003
表4流规则结构
流规则匹配类型一共有三种,即ignore,equal和other,分别表示:
ignore:忽略此匹配域的匹配;
equal:当数据包与此匹配域的匹配参数相同时匹配;
other:找出其他此匹配域匹配类型为equal的流规则,若这些流规则都没有匹配,则匹配此条目。
例如,已设置三条流规则分别为:
流规则1:匹配域:inport,匹配类型:equal,匹配参数:1;
流规则2:匹配域:inport,匹配类型:equal,匹配参数:2;
流规则3:匹配域:inport,匹配类型:other,匹配参数:null。
若有一个数据包的inport=1,则该数据包与流规则1相匹配;若该数据包的inport=2,则该数据包与流规则2相匹配;若该数据包的inport=3,则该数据包既没有与流规则1相匹配,也没有与流规则2相匹配,因此与流规则3相匹配。
在本发明的一个具体实施方式中,当一个物理交换机(OpenFlow交换机)连接到网络虚拟化平台后,网络虚拟化平台会查找所有已启动虚拟网络的虚拟网络物理范围描述表,若新接入的物理交换机在虚拟网络物理范围描述表中,则将其添加到虚拟网络的虚拟拓扑中。
网络虚拟化平台负责探测和维护物理网络的链路信息,当网络虚拟化平台发现一条物理链路后,且虚拟网络物理范围描述表含有该条物理链路两端的接口时,将该条物理链路添加到虚拟网络的虚拟拓扑中。
在本发明的一个具体实施方式中,虚拟网络拓扑建立好后,则要为虚拟网络添加虚拟网络流规则,从而,符合流规则的数据包才会被与虚拟网络相对应的OpenFlow控制器处理。虚拟网络中每添加一台虚拟交换机,将从数据库的虚拟网络流规则表中取出与该虚拟交换机相关联的条目,添加到虚拟网络流规则中。
数据包经由与虚拟网络相对应的OpenFlow控制器处理后存在两个走向:从虚拟网络边缘转发出去;或是被转发给另外的虚拟网络节点。由于OpenFlow控制器对数据包的操作不局限于转发操作,OpenFlow控制器还可能修改数据包的包头信息,而修改后的包头信息可能不匹配本虚拟网络的虚拟网络流规则,可能导致从虚拟网络一个节点转发给另一个虚拟网络节点的数据包被不同的OpenFlow控制器处理或者被丢弃。为了解决这个问题,本发明提出了一种为虚拟网络数据包添加标签的机制。当一个数据包在虚拟网络拓扑内部传输时,数据包必须带有独一无二的虚拟网络流标签,这样,无论此数据包的包头被如何修改过,都能被与虚拟网络相对应的正确的OpenFlow控制器处理。
在本发明的一个具体实施方式中,将每个虚拟网络的交换机端口分为三种类型:虚拟网络内部端口、虚拟网络边缘端口和虚拟网络抑制端口。虚拟网络内部端口为虚拟网络拓扑中连接链路的端口,虚拟网络边缘端口为虚拟网络拓扑中不连接链路的端口,虚拟网络抑制端 口为虚拟网络拓扑中被关闭的端口。在本发明的一个具体实施方式中,与虚拟网络相对应的OpenFlow控制器下发的指令被检测,如果OpenFlow控制器将数据包从虚拟网络内部端口转发出去,则修改OpenFlow下行信令(PacketOut/FlowMod)中的Action域,在合适的位置添加打标签的动作(Action),保证从虚拟网络内部端口发出的数据包含有虚拟网络流标签。同理,为了保证从虚拟网络边缘端口发出的数据包不含有虚拟网络流标签,需要在Action域中合适位置添加弹出标签的动作(Action),确保从虚拟网络抑制端口不产生上行信令,下行信令对抑制端口的转发操作也是无效的。虚拟网络流标签可以是vlan标签、mpls标签或其他类型标签。本实施例中的虚拟网络流标签为vlan标签。
在本申请中,数据包指软件定义网络中数据平面的数据流,当数据包到达Openflow交换机而Openflow交换机无法处理此数据包时,Openflow交换机会将此数据包封装到Openflow协议中发送给对应的控制器。Openflow协议数据包称为信令。
PacketIn信令是OpenFlow中最为主要的上行信令。当一个数据包到达OpenFlow交换机(物理交换机)后,OpenFlow交换机会查找流表以处理该数据包,若OpenFlow交换机的流表中不存在与该数据包相匹配的条目,则交换机通过PacketIn信令将该数据包上交给网络虚拟化平台来处理。若OpenFlow交换机的流表中存在与该数据包相匹配的条目(流表项),则物理交换机按照流表项指定的Action处理该该数据包。网络虚拟化平台首先收到PacketIn数据包,它需要决定将此PacketIn如何处理,如何转发。
网络虚拟化平台所收到的PacketIn消息包含如下信息:
1、产生PacketIn的OpenFlow交换机的DPID;
2、数据包在OpenFlow交换机的入端口;
3、数据包的包头(默认情况下是128字节);
参见图3的PacketIn信令处理流程。步骤101,网络虚拟化平台 接收收到一个PacketIn消息;步骤102,判断其是否带有Vlan标签,;步骤103,若数据包带有Vlan标签,则表明该数据包是虚拟网络内部的数据包;步骤105,判断该PacketIn发生的位置是否在虚拟网络所定义的物理范围内,可通过判断接收PacketIn的端口是否属于Vlan所标识的虚拟网络(即,虚网);步骤106,若是,则弹出数据包的Vlan标签,再将数据包转发给相应的与虚拟网络相对应的OpenFlow控制器;步骤107,如否,则报错;步骤104,若数据包不带Vlan标签,说明这个数据包是个未被分类的数据包;步骤108,需要将各个虚拟网络的虚拟网络流规则与该数据包的包头进行匹配,将PacketIn转发给匹配的与虚拟网络相对应的OpenFlow控制器。
PacketOut信令和FlowMod信令是OpenFlow中最为主要的下行信令。下行信令主要需要对以下内容进行处理:
1、对下行信令的匹配域(Match)进行处理,防止虚拟网络控制器下发的流表匹配域与不属于此虚拟网络流规则的数据包相匹配,从而保证与虚拟网络相对应的OpenFlow控制器下发的控制信息在虚拟网络流规则的约束范围内。
2、对下行信令的Action域进行处理,一方面保证数据包在虚拟网络内转发时带有正确的虚拟网络流标签,另一方面,控制虚拟网络数据包的扩散范围,防止数据包从虚拟网络未定义的接口扩散到虚拟网络外。
下行信令中FlowMod信令包含Match域,下面以FlowMod信令为例说明Match域的处理方法,但是不排除在其他信令中的使用:
OpenFlow协议的数据包Match域,用于描述一个数据包如何匹配流标项。OFMatch域所包含的匹配项如下所示:
in_port;/*Input switch port.*/数据包输入端口
dl_src;/*Ethernet source address.*/源mac
dl_dst;/*Ethernet destination address.*/目的mac
dl_vlan;/*Input VLAN id.*/vlan标签
dl_vlan_pcp;/*Input VLAN priority.*/vlan优先级
dl_type;/*Ethernet frame type.*/以太网帧类型
nw_tos;/*IP ToS(actually DSCP field,6bits).*/IP优先级
nw_proto;/*IP protocol or lower 8bits of ARP opcode.*/IP协议类型或ARP包中的操作数
nw_src;/*IP source address.*/IPv4源地址
nw_dst;/*IP destination address.*/IPv4目的地址
tp_src;/*TCP/UDP source port.*/TCP/UDP源端口
tp_dst;/*TCP/UDP destination port.*/TCP/UDP目的端口
一个OFMatch包含多个匹配项,OFMatch可通过掩码来指示哪些字段需要匹配。
OFMatch的交集是指两个OFMatch所具有的共同匹配字段。OFMatch的并集是指两个OFMatch具有的所有匹配字段,当两个OFMatch的匹配字段有重合项但重合匹配项的参数不同时,并集不存在。并集可记为OFMatch1+OFMatch2。
例如:OFMatch1=dl_src+dl_dst+dl_type
OFMatch2=dl_src+nw_src+nw_dst
OFMatch1与OFMatch2的交集为dl_src
当OFMatch1的dl_src与OFMatch2的dl_src相同时,OFMatch1与OFMatch2有并集,并集为dl_src+dl_dst+dl_type+nw_src+nw_dst。
图4示例性说明了Match域的预处理流程。步骤201,网络虚拟化平台接收OpenFlow控制器下发的FlowMod下行信令;步骤202,向FlowMod中的Match域添加匹配虚拟网络流标签(SliceVlan)的匹配项,从而Match项将匹配虚拟网络内部数据包;步骤203,此条Match即为Match1,将其添加到Match列表中;步骤204,向FlowMod中的Match域添加匹配无标签(NoVlan)的匹配项,生成的Match项为Match2,Match2将匹配虚拟网络边缘进入虚拟网络的数据包;步骤205,将Match2与虚拟网络流规则中的每一条流进行合并操作,即并 集运算,将运算后的Match项加入到Match列表中;步骤206,最后的得到的Match列表即为FlowMod的Match域在这个虚拟网络中的等价Match列表,结束。
下行信令中FlowMod信令和PacketOut信令包含Action域。图5示例性地说明了FlowMod信令中的Action域的预处理流程。步骤301,开始;步骤302,检查Action列表中是否包含All或是Flood,目的在于预先检查Action域是否包含Output=Flood或者Output=All这样的泛洪操作;步骤303,如果Action列表中不包含All或是Flood,则针对Match列表中的每一个Match项生成与之对应的Action,并下发流规则以及进行步骤311;步骤304,如果Action列表中包含All或是Flood,则意味着包含泛洪操作;步骤305,检测是否还有更多的端口;步骤306,如果判断为是,则获取一个端口;步骤307,判断端口是否是虚网边缘端口;步骤309,如果判断为是,则将该端口与Match列表中的所有MatchVlan=NoVlan的Match项取并集,得到的新的Match项添加到新的Match列表中;如果步骤307判断为否,则步骤308,判断端口是否为虚网内部端口;步骤310,如果判断为是,则将该端口与Match列表中的所有MatchVlan=SliceVlan的Match项取并集,得到的新的Match项添加到新的Match列表中;如果步骤308判断为否,则返回步骤305;如果步骤305判断为否,则执行步骤303;步骤311,结束。
图6示例性地说明了FlowMod信令中的Action域的处理流程。在这一处理流程之前,FlowMod信令已经对Match项进行了处理,生成了Match列表,并针对Match列表的每一项,生成了一个与之对应的Action项,将该Match项和Action项结合生成Flowmod消息,并下发给OpenFlow交换机(物理交换机)。
步骤401,开始;步骤402,判断Match列表中是否还有更多Match项;如果判断否,则进行到步骤413;如果判断是,步骤403,从Match列表中获取一个条目;步骤404,判断是否还有更多的 Action;步骤405,如果否,则将新的Action列表与Match项结合生成FlowMod信令,下发给OpenFlow交换机(物理交换机),并返回至步骤402;如果在步骤404中判断结果为是,则在步骤406获取下一条Action;步骤407,判断Action的类型是否为Output;若不为Output,则进行到步骤408,直接将此Action添加到新的Action列表中,并返回到步骤404;若为Output,则进行到步骤409,继续检查其参数Output是否等于flood或all;如果结果为否,则进行到步骤410,如果需要调整Vlan标签状态,将ModVlanAction添加到新的Action列表中,以及将Output=port添加到新的Action列表中,并返回到步骤404;如果步骤409中的判断结果为是,则进行到步骤411,,该结果为是,则表明Match域中一定含有Inport项,取出虚拟网络交换机中除Match项中Inport以外的其他虚拟网络端口;步骤412,针对每一个端口port,如需要调整Vlan标签,则将ModVlan Action添加到新的Action列表中,以及将Output=port添加到新的Action列表中,并返回到步骤404;步骤413,结束。
将Output=flood和Output=All Action转化为针对每个端口的Output Action。在每个Output Action之前,都要检查数据包的Vlan状态是含有虚拟网络流标签还是无标签,网络虚拟化平台必须保证转发的数据包含有合适的虚拟网络标签(Vlan),如果Vlan不合适,则需要进一步调整。
调整Vlan标签的方法是:
1、内部维护一个状态变量VlanState来保存当前数据包的Vlan标签状态。
2、查看FlowMod的Match域中的MatchVlan项,若为MatchVlan=SliceVlan,则VlanState的初始值为SliceVlan,若MatchVlan=NoVlan,则VlanState=NoVlan。
3、若Output=虚拟网络边缘端口,则查看VlanState是否为NoVlan,若是NoVlan,则直接将Output直接添加到新的Action列表 中,若为SliceVlan,则先将ModVlan=NoVlan添加到Action列表中,再将VlanState改为NoVlan,Output添加到Action列表中。
4、若Output=虚拟网络内部端口,则查看VlanState是否为SliceVlan,若是SliceVlan,则直接将Output直接添加到新的Action列表中,若为NoVlan,则先将ModVlan=SliceVlan添加到Action列表中,再将VlanState改为SliceVlan,Output添加到Action列表中。
图7示例性地说明PacketOut信令中的Action域的处理流程。PacketOut只针对某一个特定数据包进行处理,并没有Match域。步骤501,开始;步骤502,获取PacketOut的Action域;步骤402,判断是否还有更多Action;如果判断否,则进行到步骤513,下发PacketOut信令,并前进至步骤514;如果判断是,步骤504,获取下一条Action;步骤505,判断Action的类型是否为Output;若不为Output,则进行到步骤506,将此Action添加到Action列表中,并返回到步骤503;若为Output,则进行到步骤507,继续检查其参数Output是否等于flood或all;如果结果为否,则进行到步骤508,如果需要调整Vlan标签状态,将ModVlan Action添加到新的Action列表中,以及将Output=port添加到新的Action列表中,并返回到步骤503;如果步骤507中的判断结果为是,则进行到步骤509,判断PacketOut的BufferID是否等于-1;如果BufferID等于-1,则表明PacketOut指定为信令中的数据,前进到步骤510,获取虚拟网络交换机在虚拟网络中的所有端口,并前进到步骤512;如果BufferID不等于-1,则表明PacketOut指定数据包为物理交换机中缓存的数据包,前进到步骤511,获取除BufferID对应数据包入端口以外,虚拟网络交换机在虚拟网络中的其他所有端口,并前进到步骤512;步骤512,针对每一个端口port,如需要调整Vlan标签,则将ModVlan Action添加到新的Action列表中,以及将Output=port添加到新的Action列表中,并返回到步骤503;步骤514,结束。对于PacketOut信令,在处理Action域时也要调整Vlan标签。
调整Vlan标签的方法是:
1、内部维护一个状态变量VlanState来保存当前数据包的Vlan标签状态。
2、查看PacketOut的BufferID项是否为-1,若为-1,则VlanState的初始值为NoVlan,若不为-1,则需要查看BufferID所对应的PacketIn数据包是否带有Vlan标签,若没有标签,则VlanState=NoVlan,否则VlanState=SliceVlan。
3、若Output=虚拟网络边缘端口,则查看VlanState是否为NoVlan,若是NoVlan,则直接将Output直接添加到新的Action列表中,若为SliceVlan,则先将ModVlan=NoVlan添加到Action列表中,再将VlanState改为NoVlan,Output添加到Action列表中。
4、若Output=虚拟网络内部端口,则查看VlanState是否为SliceVlan,若是SliceVlan,则直接将Output直接添加到新的Action列表中,若为NoVlan,则先将ModVlan=SliceVlan添加到Action列表中,再将VlanState改为SliceVlan,Output添加到Action列表中。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (10)

  1. 一种基于OpenFlow的SDN虚拟化平台下行信令的预处理方法,其特征在于:
    网络虚拟化平台接收OpenFlow控制器下发的下行信令;
    向下行信令中的特定域添加虚拟网络流标签相匹配的第一匹配项,使得该特定域与虚拟网络内部数据包相匹配;
    将该第一匹配项添加到匹配项列表中;
    向下行信令中的特定域添加与无标签相匹配的匹配项,该匹配项为第二匹配项,第二匹配项与从虚拟网络边缘进入虚拟网络的数据包相匹配;
    将第二匹配项与虚拟网络流规则中的每一条流进行并集运算,将运算后的匹配项加入到匹配项列表中;
    得到匹配项列表;
    或者
    检查特定域列表中是否包含泛洪操作的指示符;
    如果特定域列表中不包含泛洪操作的指示符,则针对匹配项列表中的每一个匹配项生成与之对应的域,并下发流规则,以及结束预处理过程;
    如果特定域列表中包含泛洪操作的指示符,则表示包含泛洪操作;
    获取虚拟网络中虚拟交换机的所有端口,检测是否还有更多的端口;
    如果判断为是,则获取一个端口;
    判断端口是否是虚网边缘端口;
    如果判断端口是虚网边缘端口,则将该端口与匹配项列表中的所有匹配项为无标签的匹配项取并集,得到的新的匹配项添加到新的匹配项列表中;
    如果判断端口不是虚网边缘端口;
    进一步判断端口是否为虚网内部端口;
    如果判断端口不是虚网内部端口,则返回至检测是否还有更多的端口的步骤;
    如果判断端口是虚网内部端口,则将该端口与匹配项列表中的所有匹配项为切片标签的匹配项取并集,得到的新的匹配项添加到新的匹配项列表中;
    如果检测是否还有更多的端口的步骤的检测结果是没有更多的端口,则针对匹配项列表中的每一个匹配项生成与之对应的域,并下发流规则,以及结束预处理过程。
  2. 根据权利要求1的预处理方法,其特征在于:
    所述下行信令为FlowMod;
    或者
    所述特定域为下行信令FlowMod中的Match域;
    所述匹配项列表为下行信令FlowMod的Match域在该虚拟网络中的等价Match列表;所述特定域是Action域;
    所述Action域属于FlowMod信令。
  3. 一种基于OpenFlow的SDN虚拟化平台下行信令处理方法,其特征在于:
    在执行如权利要求1-2任一所述的下行信令的预处理方法之后,进一步执行,
    判断匹配项列表中是否还有更多匹配项;
    如果判断还有更多的匹配项,则从匹配项列表中获取一个条目;
    如果判断否,则结束处理;
    在如果判断还有更多的匹配项,则从匹配项列表中获取一个条目步骤之后,进一步判断是否还有更多的Action项;
    如果没有更多的Action项,则将新的Action项列表与匹配项结合生成下行信令,下发给OpenFlow交换机,返回继续判断还有更多的匹配项;
    如果还有更多的Action项,则获取下一条Action项。
  4. 根据权利要求3的处理方法,其特征在于:
    在获取下一条Action项的步骤之后,进一步判断Action项的类型是否为输出类型;
    若不为输出类型,则将此Action项添加到新的Action项列表中,返回到判断是否还有更多的Action项步骤;
    若为输出类型,则进一步检查输出类型参数是否等于泛洪操作的指示 符。
  5. 根据权利要求4的处理方法,其特征在于:
    如果检查输出类型参数是否等于泛洪操作的指示符的结果为否,则一步执行
    如果需要调整流标签状态,则将特定Action项添加到新的Action项列表中,以及将输出类型为端口添加到新的Action项列表中,返回至判断是否还有更多的Action项的步骤;
    如果检查输出类型参数是否等于泛洪操作的指示符的结果为是,则进一步获取虚拟网络中除匹配项中输入端口之外的其他所有端口。
  6. 根据权利要求5的处理方法,其特征在于:
    在获取虚拟网络中除匹配项中输入端口之外的其他所有端口的步骤之后,进一步
    针对每一个端口,如需要调整流标签,则将特定Action项添加到新的Action项列表中,以及将输出类型为端口添加到新的Action项列表中,返回至判断是否还有更多的Action项的步骤。
  7. 根据权利要求6的处理方法,其特征在于:
    所述下行信令为FlowMod信令;
    所述特定Action项为ModVlan Action项。
  8. 一种基于OpenFlow的SDN虚拟化平台下行信令处理方法,其特征在于:
    在执行如权利要求1-2任一所述的下行信令的预处理方法之后,进一步执行;
    获取下行信令的特定域;
    判断是否还有更多的Action项;
    如果没有更多的Action项,则下发下行信令,结束处理;
    如果还有更多的Action项,获取下一条Action项。
  9. 根据权利要求8的处理方法,其特征在于:
    在获取下一条Action项步骤之后,进一步执行
    判断Action项的类型是否为输出;
    如果Action项的类型不为输出,则将该Action项添加到Action项列表中,返回判断是否还有更多的Action项的步骤;
    如果Action项的类型为输出,则进一步检查该Action项是否包含泛洪操作的指示符;
    如果检查该Action项是否包含泛洪操作的指示符的结果为否,且如果需要调整流标签状态,将特定Action项添加到新的Action项列表中,以及将输出类型等于端口添加到新的Action项列表中,并返回到判断是否还有更多的Action项的步骤;
    如果检查该Action项是否包含泛洪操作的指示符的结果为是,则判断下行信令的BufferID是否等于-1;
    如果BufferID等于-1,获取虚拟网络交换机在虚拟网络中的所有端口;针对每一个端口,如需要调整流标签,将特定Action项添加到新的Action项列表中,输出类型等于端口添加到新的Action项列表中,返回到判断是否还有更多的Action项的步骤;
    如果BufferID不等于-1,获取除BufferID对应数据包入端口以外,虚拟网络交换机在虚拟网络中的其他所有端口;针对每一个端口,如需要调整流标签,将特定Action项添加到新的Action项列表中,输出类型等于端口添加到新的Action项列表中,返回到判断是否还有更多的Action项的步骤。
  10. 根据权利要求9的处理方法,其特征在于:
    所述下行信令为PacketOut信令;
    所述特定Action项为ModVlan Action项。
PCT/CN2014/087896 2013-11-27 2014-09-30 一种基于OpenFlow的SDN虚拟化平台下行信令处理方法 WO2015078233A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/039,567 US10425337B2 (en) 2013-11-27 2014-09-30 Method for processing downlink signalling of SDN virtualization platform based on openflow

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310636540.4A CN103595647B (zh) 2013-11-27 2013-11-27 一种基于OpenFlow的SDN虚拟化平台下行信令处理方法
CN201310636540.4 2013-11-27

Publications (1)

Publication Number Publication Date
WO2015078233A1 true WO2015078233A1 (zh) 2015-06-04

Family

ID=50085636

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/087896 WO2015078233A1 (zh) 2013-11-27 2014-09-30 一种基于OpenFlow的SDN虚拟化平台下行信令处理方法

Country Status (3)

Country Link
US (1) US10425337B2 (zh)
CN (1) CN103595647B (zh)
WO (1) WO2015078233A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103595647B (zh) 2013-11-27 2014-08-06 北京邮电大学 一种基于OpenFlow的SDN虚拟化平台下行信令处理方法
CN103795596B (zh) * 2014-03-03 2017-05-24 北京邮电大学 可编程控制的sdn网络测量系统和测量方法
CN105516029A (zh) * 2014-09-23 2016-04-20 财团法人资讯工业策进会 网络分组系统及其网络分组方法
US10055240B2 (en) 2014-09-23 2018-08-21 At&T Intellectual Property I, L.P. Service creation and management
CN104836753B (zh) * 2015-03-27 2018-10-02 清华大学 Sdn数据平面带状态交换设备、系统及转发处理方法
CN104734994A (zh) * 2015-04-13 2015-06-24 上海斐讯数据通信技术有限公司 一种基于sdn框架的流标签控制方法
CN106341832B (zh) * 2015-07-07 2020-11-06 中国移动通信集团公司 网络切片的管理及选择方法、系统、基站、路由交换设备
CN106375987B (zh) * 2015-07-22 2021-08-20 中兴通讯股份有限公司 一种网络切片的选择方法及系统
CN105245400A (zh) * 2015-09-16 2016-01-13 江苏省未来网络创新研究院 一种sdn服务链应用有效性的检测方法
CN105915428B (zh) * 2016-04-19 2018-09-18 烽火通信科技股份有限公司 基于open_flow协议的sdn网络l2vpn实现方法及系统
CN106059930B (zh) * 2016-07-29 2019-06-25 北京智芯微电子科技有限公司 一种电力通信网络系统
CN108307423B (zh) * 2016-08-26 2023-03-24 中兴通讯股份有限公司 一种无线接入网络切片选择方法和装置
CN106851705B (zh) * 2017-02-22 2019-12-27 重庆邮电大学 一种基于切片流表的无线网络切片方法
CN107770071B (zh) * 2017-10-19 2021-03-23 盛科网络(苏州)有限公司 一种基于OpenFlow的MPLS报文处理方法及装置
CN107911316B (zh) * 2017-12-29 2021-12-10 江苏省未来网络创新研究院 一种基于MPLS in SDN技术的流量调度方法及系统
US20210194894A1 (en) * 2019-12-23 2021-06-24 Cisco Technology, Inc. Packet metadata capture in a software-defined network
CN114978995B (zh) * 2022-05-26 2023-07-21 新华三技术有限公司 一种报文转发路径选择方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012120465A1 (en) * 2011-03-08 2012-09-13 Stellenbosch University Multi-terminal self and mutual inductance network extraction for superconductive integrated circuits
CN102685006A (zh) * 2012-05-03 2012-09-19 中兴通讯股份有限公司 一种转发数据报文的方法及装置
CN102710432A (zh) * 2012-04-27 2012-10-03 北京云杉世纪网络科技有限公司 云计算数据中心中的虚拟网络管理系统及方法
CN103166876A (zh) * 2011-12-08 2013-06-19 中兴通讯股份有限公司 OpenFlow网络域间的数据发送方法及装置
CN103595647A (zh) * 2013-11-27 2014-02-19 北京邮电大学 一种基于OpenFlow的SDN虚拟化平台下行信令处理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594664B (zh) * 2012-02-02 2015-06-17 杭州华三通信技术有限公司 流量转发方法和装置
CN103023826B (zh) * 2012-12-26 2015-06-10 华中科技大学 一种OpenFlow控制器的路由控制方法
CN103401797B (zh) * 2013-07-24 2016-05-11 杭州华三通信技术有限公司 一种报文处理方法和设备
WO2015074182A1 (zh) * 2013-11-19 2015-05-28 华为技术有限公司 一种基于流表的表项寻址方法、交换机及控制器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012120465A1 (en) * 2011-03-08 2012-09-13 Stellenbosch University Multi-terminal self and mutual inductance network extraction for superconductive integrated circuits
CN103166876A (zh) * 2011-12-08 2013-06-19 中兴通讯股份有限公司 OpenFlow网络域间的数据发送方法及装置
CN102710432A (zh) * 2012-04-27 2012-10-03 北京云杉世纪网络科技有限公司 云计算数据中心中的虚拟网络管理系统及方法
CN102685006A (zh) * 2012-05-03 2012-09-19 中兴通讯股份有限公司 一种转发数据报文的方法及装置
CN103595647A (zh) * 2013-11-27 2014-02-19 北京邮电大学 一种基于OpenFlow的SDN虚拟化平台下行信令处理方法

Also Published As

Publication number Publication date
US20170250913A1 (en) 2017-08-31
CN103595647A (zh) 2014-02-19
CN103595647B (zh) 2014-08-06
US10425337B2 (en) 2019-09-24

Similar Documents

Publication Publication Date Title
WO2015078233A1 (zh) 一种基于OpenFlow的SDN虚拟化平台下行信令处理方法
US11411770B2 (en) Virtual port channel bounce in overlay network
US20200220807A1 (en) Systems and methods for software defined networking service function chaining
US9860340B2 (en) Service function chaining branching
EP3400678B1 (en) Graph construction for computed spring multicast
US9912788B2 (en) Systems and methods of an enhanced state-aware proxy device
US9246818B2 (en) Congestion notification in leaf and spine networks
CN103746892B (zh) 一种基于OpenFlow的SDN虚拟化平台上行信令流标签处理方法
US8675522B2 (en) Conveying the VLAN/L2 VSN/bridging-domain of the incoming interface (IIF) when transporting multicast traffic over a shortest path bridged (SPB) network
US20180367438A9 (en) Method for obtaining path information and apparatus
US9531627B1 (en) Selecting a remote path using forwarding path preferences
WO2017118875A1 (en) Mechanism to detect control plane loops in a software defined networking (sdn) network
US11368357B2 (en) Service fault locating method and apparatus
US10511518B2 (en) Mechanism and framework for finding optimal multicast tree roots without the knowledge of traffic sources and receivers for Fabricpath and TRILL
CN103607348A (zh) 一种基于OpenFlow协议的虚拟网络流量分类方法
CN107181691B (zh) 一种网络中实现报文路由的方法、设备和系统
CN112437009B (zh) SRv6端到端流策略的方法、路由器、路由系统和存储介质
CN105634923B (zh) 基于sdn控制器的以太网广播优化处理方法
EP3456020A1 (en) Mechanism for inline packet response generation in software defined networks
CN114258103A (zh) 用于应用识别和路径选择的方法、无线接入点及存储介质
US11950139B2 (en) Application identification and path selection at a wireless access point for local network traffic breakout
CN115412492B (zh) 由架顶式交换机针对裸金属服务器的策略实施
US20170070473A1 (en) A switching fabric including a virtual switch
CN113992564B (zh) 报文处理方法及装置
CN114401222A (zh) 一种基于策略路由的数据转发方法、装置及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14865706

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 02/11/2016)

WWE Wipo information: entry into national phase

Ref document number: 15039567

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 14865706

Country of ref document: EP

Kind code of ref document: A1