WO2018113792A1 - 广播报文的处理方法和处理装置、控制器和交换机 - Google Patents

广播报文的处理方法和处理装置、控制器和交换机 Download PDF

Info

Publication number
WO2018113792A1
WO2018113792A1 PCT/CN2017/118210 CN2017118210W WO2018113792A1 WO 2018113792 A1 WO2018113792 A1 WO 2018113792A1 CN 2017118210 W CN2017118210 W CN 2017118210W WO 2018113792 A1 WO2018113792 A1 WO 2018113792A1
Authority
WO
WIPO (PCT)
Prior art keywords
broadcast
switch
virtual network
network
tree
Prior art date
Application number
PCT/CN2017/118210
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 EP17882326.6A priority Critical patent/EP3562107A4/en
Publication of WO2018113792A1 publication Critical patent/WO2018113792A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring

Definitions

  • the present invention relates to the field of communications, and in particular, to a method, a processing device, a controller, and a switch for processing a broadcast message.
  • the network technology in today's world is changing with each passing day.
  • Traditional Internet based on technologies such as Transmission Control Protocol/Internet Protocol (TCP/IP) has encountered in many aspects such as service quality experience, service deployment, and service adaptation.
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • SDN Software Defined Network proposes that the centralized controller implements the customization of the forwarding plane device.
  • a basic SDN network consists of two main control entities, the network controller and the switch.
  • the functions of intelligent control in the traditional network are concentrated in the control network composed of the network controller.
  • the underlying switch does not have the traditional network protocol controller unit, and only forwards the data according to the instructions of the controller.
  • the SDN network separates the control plane of the network device from the data plane, thereby implementing flexible control of network traffic and making the network more intelligent as a pipeline.
  • the OpenFlow protocol used can solve the problem of broadcast storm to a certain extent.
  • the processing of broadcast packets usually uses traditional Ethernet to process network broadcast packets.
  • the method or the processing method for the ARP/DHCP Ethernet broadcast message is adopted.
  • the existing Ethernet broadcast packet processing mechanism is simple and effective, but has large resource overhead and many security risks, which limits its application on a large-scale network; and a large-scale network may have a loop. Broadcast packets are prone to broadcast storms.
  • network controllers, switches, and terminals all add additional processing burden and resource consumption, and along with network broadcast packets. As the number increases, the SDN controller load also increases rapidly.
  • the present invention provides a method, a processing device, a controller, and a switch for processing a broadcast message, which are used to solve the following problems in the prior art: in the SDN architecture, the existing Ethernet broadcast processing mechanism has large resource overhead and many security risks. The SDN controller is heavily loaded and can easily cause broadcast storms.
  • the present invention provides a method for processing a broadcast message, the network including a plurality of switches and a plurality of user hosts that communicate via the network, the method comprising: the controller, the plurality of the plurality of switches according to network configuration information
  • the switch and the plurality of user hosts are divided into a plurality of virtual networks different from each other;
  • the controller sets a broadcast tree for each virtual network, wherein a root node of the broadcast tree is in the multiple switches a switch, the branch node is at least one switch of the plurality of switches different from the one switch, and the leaf node is a user host and a switch belonging to the virtual network corresponding to the broadcast tree determined according to the network configuration information
  • At least one of the ports and the controller generates a broadcast flow table and a broadcast group table for each virtual network according to the broadcast tree, and the broadcast flow table for the plurality of virtual networks and the Broadcast group table is sent to each switch on the broadcast tree, so that each switch turns according to the broadcast flow table and the broadcast group table He received broadcast messages
  • the present invention further provides a method for processing a broadcast message, comprising: a switch receiving a broadcast flow table and a broadcast group table of a virtual network; and when receiving the broadcast message, the switch determining, according to the broadcast flow table, Whether the virtual network to which the broadcast message belongs is the virtual network in which the switch is located; in the case that the virtual network to which the broadcast message belongs is the virtual network in which the switch is located, the switch is Determining, by the broadcast group table, a forwarding port of the broadcast message; and the switch forwarding the broadcast message via the forwarding port.
  • the present invention also provides a processing apparatus for broadcasting a message, the network comprising a plurality of switches and a plurality of user hosts communicating via the network, the apparatus comprising: a dividing module, configured to configure information according to the network And dividing the plurality of switches and the plurality of user hosts into a plurality of virtual networks different from each other; and setting a module, configured to set a broadcast tree for each virtual network, where the root node of the broadcast tree is One of the plurality of switches, the branch node is at least one switch of the plurality of switches different from the one switch, and the leaf node is a user host and the broadcast tree determined according to the network configuration information belongs to the broadcast tree At least one of a switch port of the corresponding virtual network; and a sending module, configured to generate, according to the broadcast tree, a broadcast flow table and a broadcast group table for each virtual network, and for the plurality of virtual networks Broadcast stream table and the broadcast group table are sent to respective switches on the broadcast tree, so that each switch according to the broadcast
  • the present invention provides a controller, comprising: the apparatus for processing a broadcast message according to any one of the preceding claims.
  • the present invention further provides a switch, including: a receiving module, configured to receive a broadcast flow table and a broadcast group table of a virtual network; and a determining module, configured to: when the receiving module receives the broadcast message, according to the The broadcast flow table determines whether the virtual network to which the broadcast message belongs is the virtual network in which the switch is located, and the determining module is configured to determine, in the determining module, that the virtual network to which the broadcast message belongs is the switch In the case of the virtual network, the forwarding port of the broadcast packet is determined according to the broadcast group table, and the forwarding module is configured to forward the broadcast packet via the forwarding port determined by the determining module.
  • a receiving module configured to receive a broadcast flow table and a broadcast group table of a virtual network
  • a determining module configured to: when the receiving module receives the broadcast message, according to the The broadcast flow table determines whether the virtual network to which the broadcast message belongs is the virtual network in which the switch is located, and the determining module is configured to determine, in the determining module
  • the present invention further provides a method for processing a broadcast message, comprising: the controller, according to network configuration information, dividing a plurality of switches and multiple hosts on the network into different multiple virtual networks for management, and for each Each of the virtual networks is provided with a broadcast tree, the root node of the broadcast tree is one of the plurality of switches, the branch node is at least one switch different from the switch as the root node, and the leaf node is the user host and the basis Determining, by the network configuration information, at least one of the switch ports of the virtual network corresponding to the broadcast tree; the controller generates a broadcast flow table and a broadcast group table of each virtual network according to the broadcast tree, and delivers the broadcast to the switch The flow table and the broadcast group table; when receiving the broadcast message, the switch determines the virtual network to which the broadcast message belongs according to the received broadcast flow table, and the virtual network to which the broadcast message belongs is the virtual network in which the switch is located. Broadcasting of the broadcast packet according to the received broadcast group table; and the controller is more updated
  • FIG. 1 is a flowchart of a method for processing a broadcast message according to an embodiment of the present invention
  • FIG. 2 is a flowchart of a method for processing a broadcast message according to another embodiment of the present invention.
  • FIG. 3 is a schematic structural diagram of a device for processing a broadcast message according to an embodiment of the present invention.
  • FIG. 4 is a schematic structural diagram of a device for processing a broadcast message according to another embodiment of the present invention.
  • FIG. 5 is a schematic structural diagram of a switch according to an embodiment of the present invention.
  • FIG. 6 is a schematic diagram of an SDN network architecture according to an embodiment of the present invention.
  • FIG. 7 is a schematic diagram of virtual network partitioning according to an embodiment of the present invention.
  • FIG. 8 is a schematic structural diagram of a virtual network broadcast tree according to an embodiment of the present invention.
  • FIG. 9 is a flowchart of a method for processing a broadcast message based on an SDN architecture according to an embodiment of the present invention.
  • FIG. 10 is a flowchart showing an update process of a broadcast tree of a virtual network according to an embodiment of the present invention.
  • FIG. 11 is a flow chart showing an update process of a broadcast tree of a virtual network according to another embodiment of the present invention.
  • FIG. 12 is a flowchart of a switch processing a broadcast message according to an embodiment of the present invention.
  • FIG. 13 is a schematic structural diagram of a broadcast message processing apparatus according to an embodiment of the present invention.
  • FIG. 14 is a schematic structural diagram of a broadcast message forwarding apparatus according to an embodiment of the present invention.
  • a broadcast packet method is processed by a conventional Ethernet to process a broadcast message.
  • STP Spanning Tree Protocol
  • this model can cause the traffic load of the root node switch to increase exponentially, and cannot take advantage of the multipath transmission that may exist in the network.
  • the controller sends a broadcast packet to the controller through the PacketIn message in the SDN that uses the traditional Ethernet broadcast packet processing.
  • the controller informs the switch to flood the broadcast packets on all ports through the PacketOut message.
  • the intermediate switch repeats the sending process to achieve the broadcast effect of the entire network.
  • this simple flooding broadcast will cause broadcast packets to form loops in the network, causing broadcast storms.
  • the broadcast packet processing is generally suppressed.
  • the packet is not notified to the switch for flooding broadcast through the PacketOut message, but the packet is sent directly to all host access ports in the network through the PacketOut message.
  • the broadcast of the broadcast message is actually implemented by the OpenFlow channel between the controller and the switch. When there are a large number of host access ports in the network, the controller is greatly increased. Handling stress and causing blocking of OpenFlow channels.
  • a broadcast message is processed in the SDN architecture by using a processing method for ARP/DHCP Ethernet broadcast messages or the like.
  • a node information dictionary for indicating an information mapping relationship between a terminal and a switch forwarding node is maintained, and for the ARP/DHCP broadcast message sent by the controller, through a dictionary Determine whether a switch has broadcast the broadcast packet to avoid a broadcast loop between switches.
  • the scheme can avoid broadcast loops and broadcast storms to a certain extent, but the scheme itself does not have versatility, and in this scheme, the controller needs to establish a "sending device/port for sent packets" for each broadcast message.
  • the dictionary is very stressful on controller performance and OpenFlow channels.
  • the existing Ethernet broadcast processing mechanism has large resource overhead and many security risks
  • the SDN controller has a large load, and is likely to cause a broadcast storm.
  • the present invention provides a method, a processing device, a controller and a switch for processing a broadcast message. The present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It is understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
  • the embodiment of the invention provides a method for processing a broadcast message.
  • the flow of the method is shown in FIG. 1 , and the method includes steps S102 , S104 and S106 .
  • step S102 the controller divides the plurality of switches and the plurality of user hosts existing on the network into different virtual networks according to the network configuration information.
  • step S104 the controller sets a broadcast tree for each virtual network, where the root node of the broadcast tree is a switch, the branch node is a plurality of switches different from the switch as the root node, and the leaf node is the user host and / Or a switch port belonging to the virtual network corresponding to the broadcast tree determined according to the network configuration information.
  • the controller needs to maintain the change of the broadcast tree to update the broadcast flow table and the broadcast group table sent to the switch according to the change of the broadcast tree.
  • the controller may set a broadcast tree for each virtual network according to STP.
  • the setting of the broadcast tree may also be performed by other protocols.
  • step S106 the controller generates a broadcast flow table and a broadcast group table of each virtual network according to the broadcast tree, and sends the broadcast flow table and the broadcast group table of each virtual network to each switch on the broadcast tree, so that each switch is configured according to The broadcast flow table and the broadcast group table forward the received broadcast message.
  • the controller divides the switch and the user host into each virtual network, and different virtual networks have respective corresponding broadcast trees, and the broadcast stream table and the broadcast group table required by the virtual network may be determined according to the broadcast tree.
  • the switch can use the broadcast flow table and the broadcast group table sent by the controller to determine the forwarding path of the broadcast packet.
  • the controller does not need to notify the switch to flood the broadcast message or directly send the message. It only needs to be responsible for maintaining the broadcast tree (for example, updating the broadcast tree), its workload is small, and according to the broadcast flow table and broadcast.
  • the forwarding of the group table does not cause a broadcast storm, which solves the following problems in the prior art: in the SDN architecture, the existing Ethernet broadcast processing mechanism has large resource overhead and many security risks, and the SDN controller has a large load and is easy. Caused a broadcast storm.
  • the controller needs to detect whether there is a network resource update in each virtual network; if there is a network resource update, the controller updates the broadcast tree for the virtual network in which the network resource has been updated, and then updates according to the updated broadcast tree.
  • a broadcast flow table and a broadcast group table that are delivered to the switch.
  • the network resource update may include the uplink/downline of the switch, the link increase or link deletion between the switches, and the uplink/downline or migration of the user host, and the addition or deletion of the user host, etc., where the network resource subject changes.
  • the subject of the change is different, and the process of updating the broadcast tree for the virtual network with the subject that changes is also different.
  • the controller determines corresponding network configuration information according to the MAC information of the user host, and determines the virtual network where the user host is located according to the network configuration information.
  • the controller adds the corresponding port of the switch connected to the user host to the virtual network in which it is located.
  • the controller determines if the switch is on a broadcast tree corresponding to the virtual network in which it is located.
  • the controller calculates the shortest path between the switch and the root node of the broadcast tree corresponding to the virtual network in which it is located, to add the switch to the shortest path according to the shortest path In the broadcast tree; in the case where the switch is on the broadcast tree corresponding to the virtual network in which it is located, the controller updates the broadcast tree according to the added user host and the port added to the determined virtual network (eg, the user to be added) The host and the ports that are added to the virtual network are added to the broadcast tree).
  • the controller determines whether there is an indirect link between the two switches connected to the direct link. In the absence of a non-directly connected link, the controller adds the direct link and the port associated with the direct link to the broadcast tree; in the case of an indirect link, the controller uses direct connection The link replaces the indirect link in the broadcast tree. In some embodiments, in the presence of a non-direct link, the controller may also ignore the newly added direct link and not update the broadcast tree. Compared with the process of not updating the broadcast tree, the process of updating the broadcast tree reduces the number of layers of the broadcast tree and improves the broadcasting efficiency.
  • the controller Upon detecting the deletion of the user host, the controller deletes the corresponding port of the switch connected to the user host from the broadcast tree.
  • the controller calculates the shortest path between the switch that is not currently connected to the root node of the broadcast tree and the root node of the broadcast tree, and according to the shortest The path re-adds the switch that is not connected to the root node of the broadcast tree to the broadcast tree.
  • the controller separately calculates the shortest path between each lower node of the current switch and the root node of the broadcast tree, and re-establishes each lower node of the switch according to the shortest path. Add to the broadcast tree.
  • the embodiment of the invention provides a method for processing a broadcast message, which is applied to the switch side. As shown in FIG. 2, the method includes steps S202, S204, S206 and S208.
  • the switch receives a broadcast flow table and a broadcast group table of the virtual network delivered by the controller.
  • the switch determines, according to the broadcast flow table, whether the virtual network to which the broadcast message belongs is the virtual network where the switch is located.
  • the switch determines the forwarding port of the broadcast message according to the broadcast group table.
  • the switch forwards the broadcast message via the forwarding port.
  • any switch on the broadcast tree branch when any switch on the broadcast tree branch receives a broadcast packet, it determines the forwarding port of the switch through the broadcast group table, and then forwards the broadcast packet through each forwarding port. If other switches receive the packet, Similarly, the broadcast packet is forwarded to the external forwarding port, and the broadcast packet is forwarded through the forwarding port of the broadcast packet until the virtual network to which the broadcast packet belongs has been completely received.
  • the switch of the present embodiment can determine whether the broadcast message belongs to the current virtual network according to the broadcast flow table once the broadcast message is received.
  • the network once attributed to the current virtual network and needs to be forwarded, may determine the port to forward the broadcast message according to the broadcast group table.
  • the process is simple in operation, so that the controller is less burdened, and the functions of the switch are fully utilized, and the forwarding is performed according to the broadcast flow table and the broadcast group table, and the broadcast storm is not caused.
  • the embodiment of the present invention provides a device for processing a broadcast message, which may be disposed in a controller.
  • the structure of the device is shown in FIG. 3, and includes a dividing module 10, a setting module 20, and a sending module 30.
  • the dividing module 10 is configured to divide a plurality of switches and a plurality of user hosts existing on the network into a plurality of virtual networks different from each other according to the network configuration information.
  • the setting module 20 is coupled to the partitioning module 10, and is configured to set a broadcast tree for each virtual network, wherein the root node of the broadcast tree is a switch, and the branch node is a plurality of switches different from the switch as the root node, and the leaf node A switch port belonging to a virtual network corresponding to the broadcast tree determined for the user host and/or according to the network configuration information.
  • the sending module 30 is coupled to the setting module 20, configured to generate a broadcast flow table and a broadcast group table of each virtual network according to the broadcast tree, and send the broadcast flow table and the broadcast group table of each virtual network to each switch on the broadcast tree. So that each switch forwards the received broadcast message according to the broadcast flow table and the broadcast group table.
  • FIG. 4 is a block diagram showing the structure of a processing apparatus for broadcasting a message in some embodiments.
  • the apparatus may further include a detection module 40 and an update module 50 in addition to the same modules as those shown in FIG.
  • the detecting module 40 is coupled to the sending module 30 and configured to detect whether a network resource update exists in each virtual network.
  • the update module 50 is coupled to the detection module 40 for updating the broadcast tree for the virtual network in which the network resource has been updated if the detection module 40 detects that there is a network resource update.
  • the update module 50 can include a determination unit, a join unit, a first determination unit, and a first update unit. And a determining unit, configured to determine corresponding network configuration information according to MAC information of the user host, and determine a virtual network where the user host is located according to the network configuration information, when detecting that the user host is added.
  • the joining unit is configured to add a corresponding port of the switch connected to the user host to the virtual network determined by the determining unit.
  • the first determining unit is configured to determine whether the switch is on a broadcast tree corresponding to the virtual network determined by the determining unit.
  • a first updating unit configured to: when the first determining unit determines that the switch is not on the broadcast tree corresponding to the virtual network determined by the determining unit, calculate a shortest path between the root node of the broadcast tree corresponding to the virtual network where the switch is located To add the switch to the broadcast tree according to the shortest path, and add the user host and the joining unit to the virtual network if the first determining unit determines that the switch is on the broadcast tree corresponding to the virtual network determined by the determining unit.
  • the port is added to the broadcast tree.
  • the update module 50 can also include a second determination unit and a second update unit.
  • the second determining unit is configured to determine, if a direct link is added between the two switches in the same virtual network, whether there is an indirect link between the two switches connected to the direct link.
  • a second updating unit configured to add a direct link and a port associated with the direct link to the broadcast tree if the second determining unit determines that there is no indirect link, and in the second When the judging unit judges that there is an indirect link, the indirect link in the broadcast tree is replaced by the direct link.
  • the update module 50 can further include a third update unit for deleting the corresponding port of the switch connected to the user host from the broadcast tree if it is detected that the user host is deleted.
  • the update module 50 may further include a fourth update unit, configured to calculate that the root node of the broadcast tree is not currently connected, if it is detected that the direct link between two switches in the same virtual network is deleted. The shortest path between the switch and the root node of the broadcast tree, and re-add the switch that is not connected to the root node of the broadcast tree to the broadcast tree according to the shortest path.
  • the update module 50 may further include a fifth update unit, configured to calculate, respectively, each lower node of the current offline switch and the broadcast tree, if the switch on the broadcast tree is detected to be offline The shortest path between the root nodes, and re-add each lower node of the switch to the broadcast tree according to the shortest path.
  • the embodiment of the present invention provides a switch that can interact with a controller of a processing device that includes a broadcast packet in the foregoing embodiment.
  • the structure is shown in FIG. 5, and includes a receiving module 60, a determining module 70, and a determining. Module 80 and forwarding module 90.
  • the receiving module 60 is configured to receive a broadcast flow table and a broadcast group table of the virtual network delivered by the controller.
  • the determining module 70 is coupled to the receiving module 60, and configured to determine, according to the broadcast flow table, whether the virtual network to which the broadcast message belongs is a virtual network in which the switch is located when the receiving module 60 receives the broadcast message.
  • the determining module 80 is coupled to the determining module 70, and configured to determine, according to the broadcast group table, the forwarding port of the broadcast packet, if the determining module 70 determines that the virtual network to which the broadcast packet belongs is the virtual network where the switch is located.
  • the forwarding module 90 is coupled to the determining module 80 for forwarding the broadcast message via the forwarding port determined by the determining module 80.
  • the embodiment of the present invention provides a method and a system for processing a broadcast packet of an Ethernet broadcast in a network in a centralized manner, so as to reduce the switch to send all broadcast packets to the controller to cause an OpenFlow controller channel.
  • the pressure while reducing the performance pressure caused by the controller processing the broadcast on a message-by-message basis.
  • a method for collectively processing broadcast messages of an Ethernet broadcast in a network including: the controller, according to network configuration information, multiple switches and multiple hosts (user hosts) on the network Dividing into different multiple virtual networks for management, and setting a broadcast tree for each virtual network, the root node of the broadcast tree is one of the plurality of switches, and the branch node is a switch with the root node Different at least one switch, the leaf node is a user host and/or a switch port belonging to the virtual network corresponding to the broadcast tree determined according to the network configuration information; the controller generates a broadcast report for each virtual network according to the broadcast tree.
  • the broadcast flow table and the broadcast group table are delivered to the switch; when receiving the broadcast message of the user host or other switch, the switch determines the virtual network to which the broadcast message belongs according to the received broadcast flow table, and broadcasts If the virtual network to which the packet belongs is the virtual network where the switch is located, according to the received broadcast group.
  • the table performs forwarding of broadcast messages (for example, copying and forwarding of broadcast messages via ports in the broadcast group table); and the controller updates the broadcast tree when the network resources are updated, and notifies the switch to update the broadcast flow table and the broadcast group table. .
  • the controller can update the broadcast tree in real time according to the network topology change, achieve the purpose of performing broadcast packet processing based on the forwarding plane, and reduce the performance pressure caused by the controller's packet-by-message processing.
  • Network resource update refers to the situation where the network resource subject changes, such as the uplink/downline of the switch, the link increase or link deletion between the switches, and the uplink/downline or migration of the host, and the addition or deletion of the user host.
  • the network configuration includes, but is not limited to, a virtual network configuration to which the specified port belongs, or a virtual network configuration to which the host belongs.
  • a virtual network is a network consisting of a part of the switch network required for the interconnection of the user host and the user host of the home virtual network, and is a subset of the underlying physical network.
  • the broadcast flow table is used to match the broadcast or Layer 2 multicast packets, and the switch is used to control the switch to copy and forward the packets in the broadcast group.
  • the broadcast group table contains a list of switch ports that belong to the specified virtual network, and instructions such as packet encapsulation necessary for copying and forwarding broadcast packets on the switch port.
  • the controller when the network link update causes the virtual network to split, the controller is allowed to build a virtual tree root node and update the broadcast tree when the virtual network connectivity is restored.
  • the controller can also optimize the broadcast tree when the virtual network changes or specifies the timing.
  • the main purpose is to reduce the fork of the broadcast tree and improve the broadcast efficiency.
  • the switch When the port in the broadcast group table contains the actual inbound port of the packet, the switch is required to perform automatic filtering. That is, the switch does not allow the switch to copy and forward the original packet to the inbound port of the packet unless the packet is re-encapsulated.
  • the broadcast packet processing method provided by the embodiment of the present invention does not need to send all broadcast packets to the controller to avoid the pressure of the OpenFlow channel, compared with the conventional Ethernet broadcast packet processing method in the existing SDN architecture.
  • the controller does not need to process broadcast messages on a packet-by-message basis and maintains the broadcast status, which reduces the performance pressure of the controller. Therefore, the method of the invention has a good application prospect. The above process will be further described below with reference to the accompanying drawings.
  • FIG. 6 is a schematic diagram of an SDN network architecture involved in this embodiment.
  • an SDN network includes at least one controller 101, a forwarding plane network composed of a plurality of interconnected OpenFlow switches 102 (for example, switches SW1 to SW6), and a plurality of user hosts 103 (for example, HOST1 to HOST6). ).
  • OpenFlow switches 102 for example, switches SW1 to SW6
  • user hosts 103 for example, HOST1 to HOST6
  • the controller is responsible for managing the network composed of OpenFlow switches and user hosts, including network resource management and network forwarding control.
  • Network resources include switch devices, host devices, and network topologies.
  • the network forwarding control means that the controller performs a forwarding path selection on the host service packet reported by the OpenFlow switch, and sends a forwarding flow table to the related OpenFlow switch to assist the user to complete data exchange.
  • the OpenFlow switch actively establishes a reliable connection with the controller node during power-on, and performs related security verification, basic information reporting, and switch configuration.
  • the OpenFlow switch is completely controlled by the controller, and the received data packet is processed according to the forwarding flow table sent by the controller, and the data packet that is not hit by the local flow table is reported to the controller for processing.
  • a user host refers to a device that runs customer services, including servers that need to access the network, physical PCs, virtual machines, or various mobile devices.
  • the management of the user host by the controller mainly includes: learning the location of the user host, performing host location location according to the service request, and responding to basic service requests such as ARP and DHCP of the user host.
  • FIG. 7 is a schematic diagram of virtual network partitioning according to an embodiment of the present invention. Similar to the traditional Layer 2 or Layer 3 network model, the SDN network architecture also divides and isolates the physical network, and due to the characteristics of centralized control, the SDN network is easier to implement flexible network isolation.
  • the switches SW1 to SW6 and the user hosts HOST1, HOST2, HOST3, and HOST5 constitute a virtual network A
  • the switches SW2 to SW5 and the user hosts HOST4, HOST6, and HOST7 constitute a virtual network B.
  • the virtual network consists of two parts of the switch network required for the user host and the user host to interconnect. It can be seen that the division of the virtual network is mainly determined by the user host. The specific division can be flexibly set in the SDN network. For example, the user host HOST1 is isolated from the traditional virtual local area network (VLAN).
  • VLAN virtual local area network
  • the switch ports where HOST2, HOST3, and HOST5 are located are divided into the first VLAN, and the switch ports where the user hosts HOST4, HOST6, and HOST7 are located are divided into the second VLAN, and virtual network A and virtual network B are obtained.
  • center Virtual Data Center, VDC.
  • VDC Virtual Data Center
  • switches are interconnected through fabric ports, which are shared by all virtual networks.
  • the path between the switch and the switch used by all user hosts constituting the virtual network for forwarding traffic and the path between the switch and the user host constitute a virtual network.
  • broadcast packets and Layer 2 multicast packets need to be restricted from being broadcast in the virtual network.
  • the controller is required to implement broadcast packet forwarding or flood control.
  • FIG. 8 is a schematic diagram of a virtual network broadcast tree structure according to an embodiment of the present invention.
  • the controller needs to generate and maintain a broadcast tree for each virtual network.
  • the basic characteristics of the broadcast tree are as follows: the root node and the branch node of the broadcast tree are switch devices, the leaf node is the user host, and/or the switch port of the virtual network corresponding to the broadcast tree is specified by the network configuration, and all nodes are Single jump directly.
  • the controller sends a broadcast flow table and a broadcast group table to the root node and the branch node of the broadcast tree, and the switch receives the broadcast packet to copy and forward the broadcast packet according to the broadcast flow table. .
  • the content of the broadcast flow table and the broadcast group table of the virtual network is as shown in Table 1.
  • the broadcast flow table and the broadcast group are examples of the virtual network.
  • the vnet field in the broadcast flow table is the identifier of the virtual network, and the d_mac field is the report.
  • the destination MAC address of the text, group_id is the multicast table identifier.
  • the meaning of the broadcast flow table is that the broadcast packet of the virtual network 1 is processed using the specified multicast.
  • "type" is OFGT_ALL, which means that all the buckets in the group are processed.
  • the buckets are the switch ports that are generated according to the broadcast tree and belong to the virtual network.
  • Table 1 is a simplified description.
  • the content of the broadcast flow table can also be expressed as follows: as long as it is not an unknown unicast message, it can be forwarded according to the broadcast group table.
  • the contents of the buckets also add response packet encapsulation instructions for different port types (encapsulation types, etc.).
  • FIG. 9 is a flowchart of a method for processing a broadcast message based on an SDN architecture according to an embodiment of the present invention.
  • the controller updates the broadcast tree of the virtual network in real time, and notifies the switch to update the broadcast flow table and the broadcast group table, thereby controlling the switch to correctly broadcast the report.
  • the text is copied and forwarded.
  • the method includes steps S901, S902, and S903.
  • step S901 the controller establishes a management network with all the switches, collects information about the network topology formed by the switch and the user host, and changes the network, and divides the switch and the user host into different virtual networks for management according to the network configuration.
  • the information of the network topology and its changes including the uplink/downline of the switch, the link increase or link deletion between the switches, and the online/offline or migration of the user host, and the addition or deletion of the user host.
  • the network configuration refers to the configuration of the virtual network to which the port belongs, or the configuration of the virtual network to which the host belongs.
  • the virtual network is a network composed of a part of the switch network required for the interconnection between the user host of the home virtual network and the user host, and is the underlying physical network. A subset of.
  • step S902 the controller maintains a broadcast tree of each virtual network, and delivers a broadcast flow table and a broadcast group table to each switch, and broadcasts the broadcast to the corresponding switch when the link or host in the virtual network changes.
  • the table and/or broadcast group table is updated.
  • the broadcast flow table is used to match the broadcast or Layer 2 multicast packets, and the switch is used to control the switch to copy and forward the packets in the broadcast group.
  • the broadcast group table contains the switch port list of the specified virtual network and the broadcast packets. Commands such as packet encapsulation necessary for copying and forwarding on the switch port.
  • the controller when the network link update causes the virtual network to split, the controller is allowed to build a virtual tree root node and update the broadcast tree when the virtual network connectivity is restored; the controller may also change in the virtual network or The specified time, the broadcast tree is optimized, the main purpose is to reduce the fork of the broadcast tree and improve the broadcasting efficiency.
  • step S903 the switch receives the broadcast packet of the user host or other switch, determines the information of the virtual network to which the broadcast packet belongs, and copies and forwards the broadcast packet in the corresponding broadcast group table.
  • the switch when the port in the broadcast group table contains the actual inbound port of the packet, the switch is required to perform automatic filtering. That is, the switch does not allow the switch to copy and forward the original packet to the inbound port of the packet unless the packet is re-encapsulated.
  • FIG. 10 is a flow chart showing an update process of a broadcast tree of a virtual network according to an embodiment of the present invention.
  • the controller senses that a new virtual host is added to the network and identifies the virtual network to which the virtual host belongs, the controller needs to update the broadcast group table on the corresponding switch, so that the newly added host or port can receive and send a broadcast report. Text.
  • the update process may include steps S1001 to S1006.
  • step S1001 the controller senses that a new host node is added to the switch SWi port PORT j in the virtual network.
  • the controller can query the corresponding network configuration by using the MAC information of the host node, and add the port PORT j of the switch SWi to the virtual network.
  • the controller can also receive a configuration port PORT j for designating switch SWi virtual home network, the port PORT j immediately added to the virtual network to users connected to hosts PORT j You can receive broadcast messages quickly.
  • step S1002 the controller determines whether the switch SWi where the newly added host is located is in the broadcast tree of the current virtual network. If the SWi is not in the broadcast tree, step S1004 is performed; otherwise, step S1005 is performed.
  • step S1003 the controller marks the switch SWi where the newly added host is located as the broadcast tree node that needs to be updated, and records the port PORT j that needs to be added to the broadcast group table, and proceeds to step S1006 to continue processing.
  • step S1004 the controller calculates the shortest path Path (Root, SWi) between the switch SWi and the root node of the broadcast tree of the current virtual network.
  • the shortest path of the switch SWi and the current broadcast tree root node Root may include multiple intermediate switches, such as Path (Root, SWi) is ⁇ Root, SWa, SWb, ..., SWi ⁇ , and some of the switches may have appeared. On the broadcast tree.
  • step S1005 the controller merges Path (Root, SWi) into the current virtual network broadcast tree, marks the broadcast tree node that needs to be updated, and records the port information that the corresponding node needs to add.
  • step S1006 the controller issues update broadcast group table information to the switch that is the broadcast tree node that needs to be updated.
  • the controller sends the updated broadcast group table information to the switch, and the content of the broadcast group table can be re-issued, or only the port information specified in the broadcast group table can be delivered.
  • the process of adding a leaf node in the virtual network is described.
  • the process of deleting a leaf node in the virtual network is similar, except that the records need to be updated in steps S1003 and S1005, respectively.
  • the tree node and the port information to be deleted are notified to the switch to delete the port information from the broadcast group table in step S1006.
  • FIG. 11 is a flow chart showing an update process of a broadcast tree of a virtual network according to another embodiment of the present invention.
  • the controller senses that a new direct link is added between the switches SWi and SWj in the network, the controller needs to recalculate the broadcast tree of each virtual network, and send the updated broadcast group table information to the switch that needs to update the broadcast group table. So that broadcast messages can be copied to all leaf nodes in time.
  • the update process may include steps S1101 to S1105.
  • step S1101 the controller senses that a new topology link ⁇ SWi, SWj> is added to the virtual network.
  • step S1102 the controller determines whether there are other indirect links between the switches SWi and SWj, and if so, performs step 1103, otherwise performs step S1104.
  • step S1103 if there are other non-directly connected links between the switches SWi and SWj (step S1102: YES), it indicates that the link does not affect the connectivity of the virtual network, and the new link is redundant. For the remaining path, the broadcast tree of the virtual network does not need to be updated, and the process ends.
  • step S1104 if there is no other indirect link between the switches SWi and SWj (step S1102: NO), it indicates that the virtual network is split at this time (in the virtual network, two nodes are unreachable).
  • the newly added network link may fix the scenario of this network splitting.
  • the controller recalculates the broadcast tree of the virtual network and marks the broadcast tree nodes that need to be updated and the port information that each node needs to update.
  • the controller may also select to optimize the broadcast tree by reselecting the root and branch nodes when the network topology changes, the main purpose of which is to reduce the bifurcation of the broadcast tree and improve the broadcast efficiency. For example, when the topology of a virtual network changes from a linear topology to a star topology or a mesh topology, optimization can reduce the hierarchy of the tree and improve the efficiency of message broadcast.
  • step S1105 the controller issues update broadcast group table information to the switch that is the broadcast tree node that needs to be updated.
  • the controller sends the updated broadcast group table information to the switch, and the content of the broadcast group table can be re-issued, or only the port information specified in the broadcast group table can be delivered.
  • the link between the switches SWi and SWj is the underlying physical link, which may affect all virtual network topologies, so the controller needs to perform a broadcast tree update procedure for each virtual network.
  • a process flow of adding a link in a virtual network is described.
  • the process of deleting a link in the virtual network is similar, except that in step S1102 to S1104, it is necessary to determine whether the deletion of the link causes the virtual network to be split. If the virtual network is split, the controller needs to maintain a virtual network. Outside the tree root node; the controller records the tree node that needs to be updated during the process and the port information that needs to be deleted, and notifies the switch to delete the port information from the broadcast group table in step S1105.
  • FIG. 12 is a flowchart of a switch processing a broadcast message according to an embodiment of the present invention.
  • the switch can forward the broadcast packet according to the received broadcast stream table and the broadcast group table. It is no longer necessary to send each broadcast packet to the controller for processing. Reduce the processing pressure of the controller.
  • the method can include steps S1201 through S1204.
  • step S1201 the switch establishes a connection with the controller and sends the port and link information.
  • the controller may issue or update the broadcast flow table and/or the broadcast group table to the relevant switch according to the foregoing broadcast flow table and broadcast group table update procedure.
  • step S1202 the switch receives the broadcast flow table and/or the broadcast group table delivered by the controller, and applies for resources in the forwarding channel according to hardware implementation.
  • step S1203 the switch receives the service packet forwarded by the host or other switch, and determines the virtual network to which the packet belongs according to the source address or the destination address of the packet.
  • the switch determines that the virtual network to which the broadcast message belongs is determined by the broadcast flow table sent by the controller.
  • the switch determines that the virtual network to which other packets belong is determined by other flow tables sent by the controller.
  • the controller generates a flow table according to the virtual network to which the port configured by the network belongs or according to the virtual network to which the host belongs. It is used to determine the virtual network to which the message belongs according to the port or source MAC information.
  • the switch determines the forwarding port of the broadcast packet according to the broadcast group table corresponding to the broadcast packet belonging to the virtual network, and performs replication replication on the determined forwarding port.
  • the switch After receiving the packet sent by the local user host, the switch determines the broadcast packet as the broadcast packet, and after determining the virtual network to which the broadcast packet belongs, broadcasts the broadcast packet according to the virtual network corresponding to the virtual network.
  • the packet belongs to the local access port and the fabric port of the virtual network for packet replication and forwarding.
  • the switch After receiving the service packet forwarded by the switch from the fabric port, the switch determines the broadcast packet corresponding to the virtual network after determining the broadcast packet as the broadcast packet. The packet is forwarded and forwarded to the local access port of the virtual network to which the broadcast packet belongs.
  • the switch when the port in the broadcast group table includes the actual inbound port of the packet, the switch is required to perform automatic filtering, that is, the switch does not allow the switch to copy and forward the original packet to the inbound port of the packet, unless the packet is re-encapsulated. .
  • FIG. 13 is a schematic structural diagram of a broadcast message processing apparatus according to an embodiment of the present invention. As shown in FIG. 13, the device is applied to a controller of an SDN architecture, and includes a receiving unit 1301, a physical topology management unit 1302, a path computing unit 1303, a virtual network management unit 1304, a virtual network broadcast tree management unit 1305, and a sending unit. 1306.
  • the receiving unit 1301 is configured to receive a connection request of the switch, switch resource information, and a user service packet sent by the switch.
  • the physical topology management unit 1302 is configured to manage the forwarding plane resources, including managing the link between the switch device and the port, the switch, the user host, and the location information.
  • the path calculation unit 1303 is configured to calculate a path between the switches.
  • the virtual network management unit 1304 is configured to manage user host location information of each virtual network, for example, to maintain user node location information of the virtual network according to a virtual network configuration of the port or the host.
  • the virtual network broadcast tree management unit 1305 is configured to manage a broadcast tree of the virtual network topology, update the broadcast tree when the network topology changes, and record port changes of the broadcast tree node.
  • the sending unit 1306 is configured to send a broadcast flow table and a broadcast group table creation and update command to the switch.
  • FIG. 14 is a schematic structural diagram of a broadcast message forwarding apparatus according to an embodiment of the present invention. As shown in FIG. 14, the apparatus is applied to a switch node of an SDN architecture, and includes a control unit 1401, a flow table unit 1402, a group table unit 1403, a receiving unit 1404, a determining unit 1405, and a copy forwarding unit 1406.
  • the apparatus is applied to a switch node of an SDN architecture, and includes a control unit 1401, a flow table unit 1402, a group table unit 1403, a receiving unit 1404, a determining unit 1405, and a copy forwarding unit 1406.
  • the control unit 1401 is configured to establish a connection with the controller, and receive various control commands issued by the controller, including a broadcast flow table and a broadcast group table creation and update command.
  • the flow table unit 1402 is configured to create and manage a flow table of a forwarding channel of the switch.
  • the group table unit 1403 is used to create and manage multicast of the switch forwarding channel.
  • the receiving unit 1404 is configured to receive a message from a connection port of the user host and other neighbor switches.
  • the determining unit 1405 is configured to parse the user service packet, and perform a packet forwarding decision according to the flow table and the user host information.
  • the copy forwarding unit 1406 is configured to perform copying and forwarding of the message.
  • the controller divides the switches and user hosts on the network into different virtual networks for management according to the network configuration, maintains a broadcast tree for each virtual network, and broadcasts as a broadcast in the network topology management process.
  • Each switch of the tree node sends a broadcast flow table and a broadcast group table.
  • the switch forwards and forwards the received broadcast message to the corresponding forwarding port according to the broadcast flow table and the broadcast group table.
  • the switch does not need to send all the broadcast packets to the controller to avoid the pressure of the OpenFlow channel.
  • the controller does not need to process the broadcast packets and maintain the broadcast status. The performance pressure of the controller.

Abstract

本发明公开了一种广播报文的处理方法和处理装置、控制器和交换机。所述广播报文的处理方法包括:控制器根据网络配置信息将网络上存在的多个交换机和多个用户主机划分到彼此不同的多个虚拟网络中;控制器为每个虚拟网络均设置一个广播树,广播树的根节点为多个交换机中的一个交换机,树枝节点为多个交换机中与所述一个交换机不同的至少一个交换机,叶子节点为用户主机和根据网络配置信息确定的属于与广播树对应的虚拟网络的交换机端口中的至少一者;以及控制器根据广播树生成针对每个虚拟网络的广播流表和广播组表,并将所述广播流表和广播组表发送至广播树上的各个交换机,以使各个交换机根据广播流表和广播组表转发接收到的广播报文。

Description

广播报文的处理方法和处理装置、控制器和交换机 技术领域
本发明涉及通讯领域,特别是涉及一种广播报文的处理方法和处理装置、控制器和交换机。
背景技术
当今世界的网络技术日新月异,基于传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol,TCP/IP)等技术的传统互联网在服务质量体验、业务部署、业务适应等许多方面都遇到越来越多的问题和挑战。软件定义网络(Software Defined Network,SDN)提出由集中的控制器实现转发面设备的用户定制,通过对用户提供可编程API来实现网络行为的灵活控制,开始成为下一代互联网发展的重要技术方向。
一个基本的SDN网络包括网络控制器和交换机两个主要的控制实体。在SDN网络中,传统网络中的智能控制的功能集中在网络控制器组成的控制网络中,底层交换机不具有传统的网络协议控制器单元,其仅仅按照控制器的指令转发数据。这样,SDN网络通过将网络设备的控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能化。
由于SDN架构的集中控制特性,其采用的OpenFlow协议能够在一定程度上解决广播风暴的问题,但是,在目前的SDN架构中,广播报文的处理通常采用了传统以太网处理网络广播报文的方法,或者采用针对ARP/DHCP以太网广播报文的处理方法等。目前的SDN架构中,现有的以太网广播报文处理机制虽然简单有效,但是资源开销大、安全隐患多,限制了其在较大规模网络的应用;且规模大的网络可能存在环路,广播报文容易造成广播风暴,在现有的针对该问题的以太网广播报文处理优化中,网络控制器、交换机和终端都要增加额外的处理负担和资源消耗,并且随着网络广播报文的增加,SDN控制器负载也随之迅速增大。
发明内容
本发明提供一种广播报文的处理方法和处理装置、控制器和交换机,用以解决现有技术的如下问题:在SDN架构中,现有的以太网广播处理机制资源开销大、安全隐患多,SDN控制器负载较大,而且很容易造成广播风暴。
一方面,本发明提供一种广播报文的处理方法,所述网络包括经由该网络进行通信的多个交换机和多个用户主机,所述方法包括:控制器根据网络配置信息将所述多个交换机和所述多个用户主机划分到彼此不同的多个虚拟网络中;所述控制器为每个虚拟网络均设置一个广播树,其中,所述广播树的根节点为所述多个交换机中的一个交换机,树枝节点为所述多个交换机中与所述一个交换机不同的至少一个交换机,叶子节点为用户主机和根据所述网络配置信息确定的属于与所述广播树对应的虚拟网络的交换机端口中的至少一者;以及所述控制器根据所述广播树生成针对每个虚拟网络的广播流表和广播组表,并将针对所述多个虚拟网络的所述广播流表和所述广播组表发送至所述广播树上的各个交换机,以使各个交换机根据所述广播流表和所述广播组表转发接收到的广播报文。
另一方面,本发明还提供一种广播报文的处理方法,包括:交换机接收虚拟网络的广播流表和广播组表;在接收到广播报文时,所述交换机根据所述广播流表判断所述广播报文所属虚拟网络是否为所述交换机所处的所述虚拟网络;在所述广播报文所属虚拟网络是所述交换机所处的所述虚拟网络的情况下,所述交换机根据所述广播组表确定所述广播报文的转发端口;以及所述交换机经由所述转发端口转发所述广播报文。
另一方面,本发明还提供一种广播报文的处理装置,所述网络包括经由该网络进行通信的多个交换机和多个用户主机,所述装置包括:划分模块,用于根据网络配置信息将所述多个交换机和所述多个用户主机划分到彼此不同的多个虚拟网络中;设置模块,用于为每个虚拟网络均设置一个广播树,其中,所述广播树的根节点为所述多个 交换机中的一个交换机,树枝节点为所述多个交换机中与所述一个交换机不同的至少一个交换机,叶子节点为用户主机和根据所述网络配置信息确定的属于与所述广播树对应的虚拟网络的交换机端口中的至少一者;以及发送模块,用于根据所述广播树生成针对每个虚拟网络的广播流表和广播组表,并将针对所述多个虚拟网络的所述广播流表和所述广播组表发送至所述广播树上的各个交换机,以使各个交换机根据所述广播流表和所述广播组表转发接收到的广播报文。
另一方面,本发明还提供一种控制器,包括:前述任一项所述的广播报文的处理装置。
另一方面,本发明还提供一种交换机,包括:接收模块,用于接收虚拟网络的广播流表和广播组表;判断模块,用于在所述接收模块接收到广播报文时,根据所述广播流表判断所述广播报文所属虚拟网络是否为所述交换机所处的所述虚拟网络;确定模块,用于在所述判断模块判断出所述广播报文所属虚拟网络是所述交换机所处的所述虚拟网络的情况下,根据所述广播组表确定所述广播报文的转发端口;转发模块,用于经由所述确定模块确定的转发端口转发所述广播报文。
另一方面,本发明还提供一种广播报文的处理方法,包括:控制器根据网络配置信息将网络上的多个交换机和多个主机划分到不同的多个虚拟网络进行管理,并为每个虚拟网络均设置一个广播树,所述广播树的根节点为所述多个交换机中的一个交换机,树枝节点为与作为根节点的交换机不同的至少一个交换机,叶子节点为用户主机和根据所述网络配置信息确定的属于与广播树对应的虚拟网络的交换机端口中的至少一者;控制器根据广播树生成每个虚拟网络的广播流表和广播组表,并向交换机下发所述广播流表和广播组表;交换机在接收到广播报文时,根据接收到的广播流表判断广播报文所属的虚拟网络,并且在广播报文所属虚拟网络是该交换机所处的虚拟网络的情况下,根据接收到的广播组表进行广播报文的转发;以及控制器在网络资源更新时更新广播树,并通知交换机更新广播流表和广播组表。
附图说明
本公开的说明书附图用来提供对本发明构思的进一步理解,并且构成本申请的一部分。本发明的示意性实施例及其说明用于解释本发明构思,并且不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的广播报文的处理方法的流程图;
图2是根据本发明另一实施例的广播报文的处理方法的流程图;
图3是根据本发明实施例的广播报文的处理装置的结构示意图;
图4是根据本发明另一实施例的广播报文的处理装置的结构示意图;
图5是根据本发明实施例的交换机的结构示意图;
图6是根据本发明实施例的SDN网络架构示意图;
图7是根据本发明实施例的虚拟网络划分示意图;
图8是根据本发明实施例的虚拟网络广播树结构示意图;
图9是根据本发明实施例的基于SDN架构的广播报文的处理方法的流程图;
图10是示出根据本发明实施例的虚拟网络的广播树的更新处理的流程示意图;
图11是示出根据本发明另一实施例的虚拟网络的广播树的更新处理的流程示意图;
图12是根据本发明实施例的交换机处理广播报文的流程图;
图13是根据本发明实施例的广播报文处理装置的结构示意图;以及
图14是根据本发明实施例的广播报文转发装置的结构示意图。
具体实施方式
目前在SDN架构中,通过传统以太网处理广播报文方法来处理广播报文。例如,采用基于生成树协议(Spanning Tree Protocol,STP)的模型消除环路问题。然而,这种模型会造成根节点交换机的流量负载呈指数级增大,无法利用网络中可能存在的多路径传输优势。
在SDN架构中,控制器基于报文上送-转发流表下发的机制,使 得在采用传统以太网广播报文处理的SDN中,一般采用交换机将广播报文通过PacketIn消息上送给控制器,控制器通过PacketOut的消息通知交换机在所有端口泛洪广播报文。对于复杂的网络拓扑环境,中间交换机重复上送过程以达到全网的广播效果。显然,这种简单的泛洪广播会造成广播报文在网络中形成环路,造成广播风暴。实际使用中,一般会对这种广播报文处理进行抑制优化,比如不再通过PacketOut消息通知交换机进行泛洪广播,而是通过PacketOut消息将报文直接发送到网络中所有的主机接入端口。但是在这种抑制优化中,使得对广播报文的广播实际上是通过控制器和交换机之间的OpenFlow通道来实现的,当网络中存在大量的主机接入端口时,会大大增加控制器的处理压力并造成OpenFlow通道的阻塞。
在一些情形下,在SDN架构中采用针对ARP/DHCP以太网广播报文的处理方法等来处理广播报文。在该处理方法中,针对广播报文本身,维护用于表示一个终端和交换机转发节点之间的信息映射关系的节点信息字典,并且对于控制器上送的ARP/DHCP广播报文,通过字典来判断一个交换机是否已经广播过该广播报文,从而避免交换机之间形成广播环路。该方案能够在一定程度上避免广播环路和广播风暴,但方案本身不具备通用性,并且在该方案中控制器需要对每个广播报文建立有关“已发送报文的发送设备/端口”的字典,对控制器性能和OpenFlow通道的压力很大。
因此,如何改进广播报文的处理方法,并解决环路问题就成为业内科技人员关注的一个焦点。
为了至少解决现有技术的如下问题:在SDN架构中,现有的以太网广播处理机制资源开销大、安全隐患多,SDN控制器负载较大,而且很容易造成广播风暴。本发明提供了一种广播报文的处理方法和处理装置、控制器和交换机,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
本发明实施例提供一种广播报文的处理方法,该方法的流程如图1所示,该方法包括步骤S102、S104和S106。
在步骤S102,控制器根据网络配置信息将网络上存在的多个交换机和多个用户主机划分到不同的虚拟网络中。
在步骤S104,控制器为每个虚拟网络均设置一个广播树,其中,广播树的根节点为一个交换机,树枝节点为与作为根节点的交换机不同的多个交换机,叶子节点为用户主机和/或根据网络配置信息确定的属于与该广播树对应的虚拟网络的交换机端口。后续过程中,控制器需要维护广播树的变化,以便根据广播树的变化来更新下发给交换机的广播流表和广播组表。在一些实施例中,控制器可以根据STP为每个虚拟网络均设置一个广播树,当然,也可以通过其他协议进行广播树的设置。
在步骤S106,控制器根据广播树生成每个虚拟网络的广播流表和广播组表,并将各个虚拟网络的广播流表和广播组表发送至广播树上的各个交换机,以使各个交换机根据广播流表和广播组表转发接收到的广播报文。
本发明实施例中,控制器将交换机和用户主机划分到各个虚拟网络中,不同的虚拟网络有各自对应的广播树,根据广播树可以确定该虚拟网络需要的广播流表和广播组表。在收到广播报文时,交换机可以用控制器下发的广播流表和广播组表来确定广播报文的转发路径。整个过程中,控制器不需要通知交换机泛洪广播报文或直接发送报文,只需要负责维护广播树(例如,更新广播树)即可,其工作负载较小,且根据广播流表和广播组表进行转发不会造成广播风暴,解决了现有技术的如下问题:在SDN架构中,现有的以太网广播处理机制资源开销大、安全隐患多,SDN控制器负载较大,而且很容易造成广播风暴。
在一些实施例中,控制器需要检测各个虚拟网络中是否存在网络资源更新;如果存在网络资源更新,则控制器为其中网络资源已更新的虚拟网络更新广播树,进而根据更新的广播树来更新下发给交换机的广播流表和广播组表。
网络资源更新可以包括交换机的上线/下线、交换机之间的链路增加或链路删除、以及用户主机的上线/下线或迁移、用户主机的增 加或删除等网络资源主体发生变化的情况,发生变化的主体不同,为具有发生变化的主体的虚拟网络更新广播树的过程也不同。下面对不同情况下更新广播树的一些示例性过程进行说明。
在检测到增加了用户主机的情况下,控制器根据用户主机的MAC信息确定对应的网络配置信息,并根据网络配置信息确定用户主机所处的虚拟网络。控制器将与用户主机连接的交换机的相应端口加入到所处的虚拟网络中。控制器判断该交换机是否在与所处的虚拟网络对应的广播树上。在交换机不在与所处的虚拟网络对应的广播树上的情况下,控制器计算交换机与所处的虚拟网络所对应的广播树的根节点之间的最短路径,以根据最短路径将交换机添加至广播树中;在交换机在与所处的虚拟网络对应的广播树上的情况下,控制器根据增加的用户主机和加入到所确定的虚拟网络中的端口更新广播树(例如,将增加的用户主机和加入到虚拟网络中的端口添加至广播树中)。
在检测到同一虚拟网络内两个交换机间增加了直连链路的情况下,控制器判断直连链路所连接的两个交换机之间是否存在非直连链路。在不存在非直连链路的情况下,控制器将直连链路和与直连链路相关联的端口添加到广播树中;在存在非直连链路的情况下,控制器用直连链路替换广播树中的该非直连链路。在一些实施例中,在存在非直连链路的情况下,控制器也可以忽略新增加的直连链路,不更新广播树。与不更新广播树的处理相比,更新广播树的处理会减少广播树的层数,提高广播效率。
在检测到删除了用户主机的情况下,控制器将与用户主机连接的交换机的相应端口从广播树中删除。
在检测到删除了同一虚拟网络内两个交换机间直连链路的情况下,控制器计算当前未与广播树的根节点连接的交换机与广播树的根节点之间的最短路径,并根据最短路径将未与所述广播树的根节点连接的交换机重新添加至广播树中。
在检测到广播树上的交换机下线的情况下,控制器分别计算当前该交换机的每个下层节点与广播树的根节点之间的最短路径,并根据最短路径将交换机的每个下层节点重新添加至广播树中。
本发明实施例提供了一种广播报文的处理方法,该方法应用于交换机侧,如图2所示,该方法包括步骤S202、S204、S206和S208。
在S202,交换机接收控制器下发的虚拟网络的广播流表和广播组表。
在S204,在接收到广播报文时,交换机根据广播流表判断广播报文所属虚拟网络是否为交换机所处的虚拟网络。
在S206,在广播报文所属虚拟网络是交换机所处的虚拟网络的情况下,交换机根据广播组表确定广播报文的转发端口。
在S208,交换机经由转发端口转发广播报文。
例如,处于广播树树枝上的任一交换机收到广播报文时,会通过广播组表确定该交换机的各个对外的转发端口,然后通过各个转发端口将广播报文转发出去;如果其他交换机接收到了该广播报文,则同样地确定自身对外的转发端口,再同样地通过自身的转发端口转发广播报文,直到该广播报文所属的虚拟网络已经完整的接收到该广播报文后停止转发。
本实施例的交换机在接收到控制器下发的广播报文的广播流表和广播组表后,一旦接收到广播报文,便可以根据广播流表来判断该广播报文是否归属当前的虚拟网络,一旦归属于当前的虚拟网络并需要转发,则可以根据广播组表来确定转发该广播报文的端口。该过程操作简单,使得控制器负担较小,且充分利用了交换机的功能,根据广播流表和广播组表来进行转发,也不会造成广播风暴。
本发明实施例提供了一种广播报文的处理装置,该装置可以设置在控制器中,其结构示意如图3所示,包括划分模块10、设置模块20和发送模块30。
划分模块10用于根据网络配置信息将网络上存在的多个交换机和多个用户主机划分到彼此不同的多个虚拟网络中。设置模块20与划分模块10耦合,用于为每个虚拟网络均设置一个广播树,其中,广播树的根节点为一个交换机,树枝节点为与作为根节点的交换机不同的多个交换机,叶子节点为用户主机和/或根据网络配置信息确定的属于与广播树对应的虚拟网络的交换机端口。发送模块30与设置 模块20耦合,用于根据广播树生成每个虚拟网络的广播流表和广播组表,并将各个虚拟网络的广播流表和广播组表发送至广播树上的各个交换机,以使各个交换机根据广播流表和广播组表转发接收到的广播报文。
图4示出了一些实施例中的广播报文的处理装置的结构示意图。参照图4,除了与图3所示的模块相同的模块外,该装置还可以包括检测模块40和更新模块50。检测模块40,与发送模块30耦合,用于检测各个虚拟网络中是否存在网络资源更新。更新模块50,与检测模块40耦合,用于在检测模块40检测到存在网络资源更新的情况下,为其中网络资源已更新的虚拟网络更新广播树。
在一些实施例中,更新模块50可包括确定单元、加入单元、第一判断单元和第一更新单元。确定单元,用于在检测到增加了用户主机的情况下,根据用户主机的MAC信息确定对应的网络配置信息,并根据网络配置信息确定用户主机所处的虚拟网络。加入单元,用于将与用户主机连接的交换机的相应端口加入到确定单元所确定的虚拟网络中。第一判断单元,用于判断交换机是否在确定单元确定的虚拟网络对应的广播树上。第一更新单元,用于在第一判断单元判断交换机不在与确定单元确定的虚拟网络对应的广播树上的情况下,计算交换机与所处的虚拟网络对应的广播树根节点之间的最短路径,以根据最短路径将交换机添加至广播树中,并且在第一判断单元判断交换机在与确定单元确定的虚拟网络对应的广播树上的情况下,将用户主机和加入单元加入到虚拟网络中的端口添加至广播树中。
在一些实施例中,更新模块50还可以包括第二判断单元和第二更新单元。第二判断单元,用于在检测到同一虚拟网络内两个交换机间增加了直连链路的情况下,判断直连链路连接的两个交换机之间是否存在非直连链路。第二更新单元,用于在第二判断单元判断出不存在非直连链路的情况下,将直连链路和与直连链路相关联的端口添加到广播树中,并且在第二判断单元判断出存在非直连链路的情况下,用直连链路替换广播树中的非直连链路。
在一些实施例中,更新模块50还可以包括第三更新单元,用于 在检测到删除了用户主机的情况下,将与用户主机连接的交换机的相应端口从广播树中删除。
在一些实施例中,更新模块50还可以包括第四更新单元,用于在检测到删除了同一虚拟网络内两个交换机间直连链路的情况下,计算当前未与广播树的根节点连接的交换机与广播树的根节点之间的最短路径,并根据最短路径将未与所述广播树的根节点连接的交换机重新添加至广播树中。
在一些实施例中,更新模块50还可以包括第五更新单元,用于在检测到广播树上的交换机下线的情况下,分别计算当前所述下线交换机的每个下层节点与广播树的根节点之间的最短路径,并根据最短路径将交换机的每个下层节点重新添加至广播树中。
本发明实施例提供了一种交换机,该交换机可以和包括前述实施例中的广播报文的处理装置的控制器交互,其结构示意如图5所示,包括接收模块60、判断模块70、确定模块80和转发模块90。接收模块60用于接收控制器下发的虚拟网络的广播流表和广播组表。判断模块70,与接收模块60耦合,用于在接收模块60接收到广播报文时,根据广播流表判断广播报文所属虚拟网络是否为交换机所处的虚拟网络。确定模块80,与判断模块70耦合,用于在判断模块70判断出广播报文所属虚拟网络是交换机所处的虚拟网络的情况下,根据广播组表确定广播报文的转发端口。转发模块90,与确定模块80耦合,用于经由确定模块80确定的转发端口转发广播报文。
本发明实施例针对现有技术存在的缺陷,提供一种集中式处理网络中以太网广播的广播报文的方法和系统,以降低交换机将所有广播报文上送控制器而造成OpenFlow控制器通道的压力,同时降低控制器逐报文处理广播而造成的性能压力。
根据本实施例的一个方面,提供了一种集中式处理网络中以太网广播的广播报文的方法,包括:控制器根据网络配置信息将网络上的多个交换机和多个主机(用户主机)划分到不同的多个虚拟网络进行管理,并为每个虚拟网络均设置一个广播树,所述广播树的根节点为所述多个交换机中的一个交换机,树枝节点为与作为根节点的交换 机不同的至少一个交换机,叶子节点为用户主机和/或根据所述网络配置信息确定的属于与广播树对应的虚拟网络的交换机端口;控制器根据广播树生成每个虚拟网络的用于转发广播报文的广播流表和广播组表,并向交换机下发;交换机在接收到用户主机或其他交换机的广播报文时,根据接收到的广播流表判断广播报文所属的虚拟网络,并且在广播报文所属虚拟网络是该交换机所处的虚拟网络的情况下,根据接收到的广播组表进行广播报文的转发(例如,经由广播组表内的端口进行广播报文的复制和转发);以及控制器在网络资源更新时更新广播树,并通知交换机更新广播流表和广播组表。控制器可根据网络拓扑变化实时更新广播树,达到基于转发面进行广播报文处理的目的以及降低控制器逐报文处理造成的性能压力的目的。
网络资源更新是指包括交换机的上线/下线、交换机之间的链路增加或链路删除、以及主机的上线/下线或迁移、用户主机的增加或删除等网络资源主体发生变化的情况。网络配置包括但不限于:指定端口归属的虚拟网络配置,或指定主机归属的虚拟网络配置。虚拟网络是由归属虚拟网络的用户主机和用户主机互连所需要的部分交换机网络组成的网络,是底层物理网络的一个子集。广播流表用来匹配广播或二层组播的报文,并通过指令控制交换机将报文在广播组内进行复制转发。广播组表包含归属指定虚拟网络的交换机端口列表,以及对广播报文在交换机端口复制转发所必须的报文封装等指令。
在一些实施例中,当网络链路更新造成虚拟网络分裂时,允许控制器构建一个虚拟的树根节点,并在虚拟网络连通性恢复时更新广播树。控制器还可以在虚拟网络发生变更或指定的时机,对广播树进行优化,主要目的是减少广播树的分叉,提高广播效率。当广播组表内的端口包含报文的实际入端口时,要求交换机自动进行过滤,即不允许交换机向报文入端口复制转发原始报文,除非报文进行重新封装。
本发明实施例提供的广播报文处理方法,与现有SDN架构下采用传统以太网的广播报文处理方法相比较,交换机不需要将所有广播报文上送控制器,避免造成OpenFlow通道的压力;同时控制器不需要逐报文处理广播报文并维护广播状态,降低了控制器的性能压力。 因此,本发明方法具有很好的推广应用前景。以下结合附图对本上述过程进行进一步说明。
图6是本实施例涉及的SDN网络架构示意图。如图6所示,一个SDN网络包括至少一个控制器101,多个互连的OpenFlow交换机102(例如,交换机SW1至SW6)组成的转发面网络,以及多台用户主机103(例如,HOST1至HOST6)。
在SDN网络中,控制器负责管理OpenFlow交换机和用户主机组成的网络,包括网络资源管理和网络转发控制。网络资源包括交换机设备、主机设备、网络拓扑等。网络转发控制指,控制器对OpenFlow交换机上报的主机业务报文进行转发路径选择,并向相关的OpenFlow交换机下发转发流表,协助用户主机之间完成数据交换。
OpenFlow交换机在上电时主动建立其与控制器节点之间的可靠的连接,进行相关的安全验证、基本信息上报、交换机配置等操作。OpenFlow交换机完全受控制器控制,对于收到的数据报文根据控制器下发的转发流表进行处理,并且对于查找本地流表无命中的数据报文上报给控制器进行处理。
用户主机是指运行客户业务的设备,包括需要接入网络的服务器、物理PC机、虚拟机或各种移动设备等。控制器对用户主机的管理主要包括,用户主机位置的学习、根据业务请求进行主机位置定位,以及响应用户主机的ARP、DHCP等基本业务请求。
图7是根据本发明实施例的虚拟网络划分示意图。类似传统的二层或三层网络模型,SDN网络架构也会对物理网络进行划分和隔离,并且由于集中控制的特性,SDN网络更易于实现灵活的网络隔离。
如图7所示,交换机SW1至SW6和用户主机HOST1、HOST2、HOST3、HOST5组成了虚拟网络A,交换机SW2至SW5和用户主机HOST4、HOST6、HOST7组成了虚拟网络B。这里,虚拟网络包含用户主机和用户主机互连所需要的部分交换机网络两部分。可以看出,虚拟网络的划分主要由用户主机决定,具体的划分依据在SDN网络中可以灵活设置,比如采用和传统网络虚拟局域网(Virtual Local Area Network,VLAN)隔离的方式,将用户主机HOST1、HOST2、HOST3、HOST5所在的交换 机端口划分到第一VLAN中,将用户主机HOST4、HOST6、HOST7所在的交换机端口划分到第二VLAN中,就得到了虚拟网络A和虚拟网络B。在实际的部署中,还很容易实现相同或不同网段的用户主机划分到同一个虚拟网络中,其中不同用户主机可以在相同或不同的VLAN中,如提供私有云或公有云服务的虚拟数据中心(Virtual Data Center,VDC)。还有基于MAC信息划分虚拟网络的方式,即将指定MAC信息的用户主机划分到指定的虚拟网络中。
在SDN网络中,交换机之间通过Fabric端口互连,这部分链路对所有的虚拟网络是共享的。组成虚拟网络的所有用户主机进行流量转发用到的交换机和交换机之间的路径以及交换机与用户主机之间的路径构成了虚拟网络。与传统网络一样,为了避免网络带宽浪费,广播报文和二层组播报文需要限制在虚拟网络内进行广播,在SDN网络中就需要控制器来实现广播报文转发或泛洪的控制。
图8是根据本发明实施例的虚拟网络广播树结构示意图。本发明为实现虚拟网络内的广播转发,控制器需要对每个虚拟网络生成和维护一个广播树。广播树的基本特征如下:广播树的树根节点和树枝节点为交换机设备,叶子节点为用户主机和/或由网络配置指定属于与广播树对应的虚拟网络的交换机端口,所有节点之间都是单跳直连的。为实现虚拟网络内的广播报文复制,控制器向广播树的树根节点和树枝节点下发广播流表和广播组表,交换机收到广播报文根据广播流表进行广播报文的复制转发。
一种虚拟网络的广播流表和广播组表的内容如表1所示,为虚拟网络的广播流表和广播组表示例,其中广播流表中vnet字段为虚拟网络的标识,d_mac字段为报文的目的MAC信息,group_id为组播表标识。广播流表的含义为:对于虚拟网络1的广播报文,使用指定的组播进行处理。相应的组播表中,“type”为OFGT_ALL表示在group内的所有buckets进行处理,buckets是根据广播树产生的归属到虚拟网络的交换机端口。
表1中是一种简化描述,实际上,为支持二层组播,广播流表的内容还可以表示为:只要不是未知单播报文,就可根据广播组表进 行转发。实际实现中,buckets的内容还会针对不同的端口类型(封装类型等)增加响应的报文封装指令等。
表1
Figure PCTCN2017118210-appb-000001
图9是根据本发明实施例的基于SDN架构的广播报文的处理方法的流程图。根据基于SDN架构的广播报文处理方法,在网络资源更新过程中,由控制器实时维护更新虚拟网络的广播树,并通知交换机更新广播流表和广播组表,从而控制交换机正确地对广播报文进行复制转发。该方法包括步骤S901、S902和S903。
在步骤S901,控制器与所有的交换机建立管理网络,收集交换机和用户主机形成的网络拓扑的信息及其变化,并根据网络配置将交换机和用户主机划分到不同的虚拟网络进行管理。
网络拓扑的信息及其变化,包括交换机的上线/下线、交换机之间的链路增加或链路删除、以及用户主机的上线/下线或迁移、、用 户主机的增加或删除等信息。网络配置是指端口归属的虚拟网络的配置,或主机归属的虚拟网络的配置;虚拟网络是由归属虚拟网络的用户主机和用户主机互连所需要的部分交换机网络组成的网络,是底层物理网络的一个子集。
在步骤S902,控制器维护每个虚拟网络的广播树,向每个交换机下发广播流表和广播组表,并在虚拟网络中的链路或主机发生变更时,对相应的交换机的广播流表和/或广播组表进行更新。
广播流表用来匹配广播或二层组播的报文,并通过指令控制交换机将报文在广播组内进行复制转发;广播组表包含归属指定虚拟网络的交换机端口列表,以及对广播报文在交换机端口复制转发所必须的报文封装等指令。
在一些实施例中,当网络链路更新造成虚拟网络分裂时,允许控制器构建一个虚拟的树根节点,并在虚拟网络连通性恢复时更新广播树;控制器还可以在虚拟网络发生变更或指定的时机,对广播树进行优化,主要目的是减少广播树的分叉,提高广播效率。
在步骤S903,交换机收到用户主机或其他交换机的广播报文,判断该广播报文归属的虚拟网络的信息,对广播报文在相应的广播组表内的端口进行复制转发。
这里,当广播组表内的端口包含报文的实际入端口时,要求交换机自动进行过滤,即不允许交换机向报文入端口复制转发原始报文,除非报文进行重新封装。
图10是示出根据本发明实施例的虚拟网络的广播树的更新处理的流程示意图。当控制器感知到网络中新增一个虚拟主机并识别虚拟主机所归属的虚拟网络时,控制器需要更新相应的交换机上的广播组表,以便于新增主机或端口可以收到和发送广播报文。该更新处理可包括步骤S1001至S1006。
在步骤S1001,控制器感知虚拟网络中在交换机SWi端口PORT j上新增一个主机节点。
控制器可以通过主机节点的MAC信息查询相应的网络配置,将交换机SWi的端口PORT j加入到虚拟网络中。
在一些实施例中,控制器还可以在收到用于指定交换机SWi的端口PORT j归属的虚拟网络的配置时,立即将端口PORT j加入到该虚拟网络中,以便于PORT j连接的用户主机可以快速收到广播报文。
在步骤S1002,控制器判断新增主机所在交换机SWi是否在当前虚拟网络的广播树上,如果SWi不在广播树上,执行步骤S1004,否则执行步骤S1005。
在步骤S1003,控制器将新增主机所在的交换机SWi标记为需要更新的广播树节点,并记录需要新增到广播组表中的端口PORT j,跳转到步骤S1006继续处理。
在步骤S1004,控制器计算交换机SWi和当前虚拟网络的广播树的根节点之间的最短路径Path(Root,SWi)。
这里,交换机SWi和当前的广播树根节点Root的最短路径可能包含多个中间交换机,如Path(Root,SWi)为{Root,SWa,SWb,…,SWi},并且其中的部分交换机可能已经出现在广播树上。
在步骤S1005,控制器将Path(Root,SWi)合并到当前虚拟网络广播树中,并对需要更新的广播树节点进行标记,并记录相应的节点需要增加的端口信息。
这里,对于最短路径Path(Root,SWi)和当前广播树重合的部分进行合并,仅需要标记需要添加到广播树上的树枝节点。
在步骤S1006,控制器对作为需要更新的广播树节点的交换机下发更新广播组表信息。
控制器向交换机下发更新广播组表信息,可以将广播组表内容全部重新下发,也可以仅下发广播组表中指定的端口信息。
在本实施例中,描述的是虚拟网络中新增一个叶子节点的处理流程,实际中虚拟网络中删除一个叶子节点的处理流程与之类似,除了分别在步骤S1003和步骤S1005中记录需要更新的树节点和需要删除的端口信息,并在步骤S1006中通知交换机将端口信息从广播组表中删除之外。
图11是示出根据本发明另一实施例的虚拟网络的广播树的更新处理的流程示意图。当控制器感知到网络中交换机SWi与SWj之间新 增一条直连链路时,控制器需要重新计算每个虚拟网络的广播树,对于需要更新广播组表的交换机下发更新广播组表信息,以便于广播报文可以及时复制到所有的叶子节点上。该更新处理可包括步骤S1101至S1105。
在步骤S1101,控制器感知虚拟网络中新增一条拓扑链路<SWi,SWj>。
在步骤S1102,控制器判断交换机SWi和SWj之间是否存在其他非直连链路,如果存在则执行步骤1103,否则执行步骤S1104。
在步骤S1103,如果交换机SWi和SWj之间存在其他非直连链路(步骤S1102:是),则说明该链路对虚拟网络的连通性不会产生影响,此时新增链路是一条冗余路径,虚拟网络的广播树不需要更新,流程结束。
在步骤S1104,如果交换机SWi和SWj之间没有其他非直连链路(步骤S1102:否),则说明此时虚拟网络存在分裂(是指虚拟网络中,存在两个节点是不可达的),则新增的网络链路可能会修复此网络分裂的场景。控制器重新计算该虚拟网络的广播树,并标记需要更新的广播树节点及每个节点需要更新的端口信息。
在一些实施例中,控制器还可以选择在网络拓扑发生变化时,通过重新选择树根和树枝节点来对广播树进行优化,主要目的是减少广播树的分叉,提高广播效率。比如虚拟网络的拓扑从线性拓扑变为为星形拓扑、网状拓扑时,优化可以减少树的层次,提高报文广播效率。
在步骤S1105,控制器对作为需要更新的广播树节点的交换机下发更新广播组表信息。
控制器向交换机下发更新广播组表信息,可以将广播组表内容全部重新下发,也可以仅下发广播组表中指定的端口信息。
在本实施例中,交换机SWi与SWj之间的链路是底层物理链路,可能影响到所有的虚拟网络拓扑,因此控制器需要对每个虚拟网络执行广播树更新流程。
在本实施例中,描述的是虚拟网络中新增一条链路的处理流程。 实际中虚拟网络中删除一条链路的处理流程与之类似,只不过在步骤S1102至S1104中需要判断链路的删除是否会造成虚拟网络分裂,如果虚拟网络存在分裂现象,需要控制器维护一个虚拟的树根节点之外;控制器记录过程中需要更新的树节点和需要删除的端口信息,并在步骤S1105中通知交换机将端口信息从广播组表中删除。
图12是根据本发明实施例的交换机处理广播报文的流程图。在控制器下发广播流表和广播组表后,交换机就可以根据接收到的广播流表和广播组表进行广播报文转发,不再需要将每个广播报文上送控制器进行处理,减轻控制器的处理压力。该方法可包括步骤S1201至S1204。
在步骤S1201,交换机与控制器建立连接,并上送端口和链路信息。控制器可根据前述广播流表和广播组表更新流程,向相关的交换机下发或更新广播流表和/或广播组表。
在步骤S1202,交换机接收控制器下发的广播流表和/或广播组表,并根据硬件实现在转发通道申请资源。
在步骤S1203,交换机收到主机或其他交换机转发的业务报文,根据报文的源地址或目的地址判断报文归属的虚拟网络。
这里,交换机判断广播报文所归属的虚拟网络是由控制器下发的广播流表决定的。交换机判断其他报文所归属的虚拟网络是由控制器下发的其他流表判定的,比如,控制器根据网络配置的端口所归属的虚拟网络或根据主机所归属的虚拟网络来生成流表,其用于根据端口或源MAC信息来判断报文所归属的虚拟网络。
在步骤S1204,交换机根据与广播报文归属虚拟网络对应的广播组表,确定广播报文的转发端口,并对广播报文在所确定的转发端口进行复制转发。
交换机收到本地用户主机发送的报文之后,在将该报文判断为广播报文的情况下并在判定广播报文归属的虚拟网络后,根据与该虚拟网络对应的广播组表,向广播报文归属虚拟网络的本地接入端口和Fabric端口进行报文复制转发。
交换机收到其他交换机从Fabric口转发的业务报文之后,在将 该业务报文判断为广播报文的情况下并在判定广播报文归属的虚拟网络后,根据与该虚拟网络对应的广播组表,向广播报文归属虚拟网络的本地接入端口进行报文复制转发。
在本发明实施例中,当广播组表内的端口包含报文的实际入端口时,要求交换机自动进行过滤,即不允许交换机向报文入端口复制转发原始报文,除非报文进行重新封装。
图13是根据本发明实施例的广播报文处理装置的结构示意图。如图13所示,该装置应用于SDN架构的控制器中,包括接收单元1301、物理拓扑管理单元1302、路径计算单元1303、虚拟网络管理单元1304、虚拟网络广播树管理单元1305、下发单元1306。
接收单元1301,用于接收交换机的连接请求、交换机资源信息以及交换机上送的用户业务报文。物理拓扑管理单元1302,用于管理转发面资源,包括对交换机设备及端口、交换机之间的链路、用户主机及位置信息进行管理。路径计算单元1303,用于计算交换机之间的路径。虚拟网络管理单元1304,用于管理每个虚拟网络的用户主机位置信息,例如根据端口或主机的虚拟网络配置,维护虚拟网络的用户节点位置信息。虚拟网络广播树管理单元1305,用于管理虚拟网络拓扑的广播树,在网络拓扑发生变化时更新广播树,并记录广播树节点的端口变化。下发单元1306,用于向交换机下发广播流表和广播组表的创建与更新命令。
图14是根据本发明实施例的广播报文转发装置的结构示意图。如图14所示,该装置应用于SDN架构的交换机节点,包括控制单元1401、流表单元1402、组表单元1403、接收单元1404、确定单元1405、复制转发单元1406。
控制单元1401,用于与控制器建立连接,接收控制器下发的各种控制命令,包括广播流表和广播组表的创建和更新命令。流表单元1402,用于创建和管理交换机的转发通道的流表。组表单元1403,用于创建和管理交换机转发通道的组播。接收单元1404,用于接收来自用户主机和其他邻居交换机连接端口的报文。确定单元1405,用于解析用户业务报文,并根据流表和用户主机信息执行报文转发决 策。复制转发单元1406,用于执行报文的复制与转发。
本发明各实施例中,控制器在网络拓扑管理过程中,根据网络配置将网络上的交换机和用户主机划分到不同的虚拟网络进行管理,对每个虚拟网络维护一个广播树,并向作为广播树节点的每个交换机下发广播流表和广播组表;交换机对于收到的广播报文,根据广播流表和广播组表在相应的转发端口进行复制转发。根据本发明实现的广播报文转发方案,交换机不需要将所有广播报文上送控制器,避免造成OpenFlow通道的压力;同时控制器不需要逐报文地处理广播报文并维护广播状态,降低了控制器的性能压力。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。

Claims (18)

  1. 一种广播报文的处理方法,所述网络包括经由该网络进行通信的多个交换机和多个用户主机,所述方法包括:
    控制器根据网络配置信息将所述多个交换机和所述多个用户主机划分到彼此不同的多个虚拟网络中;
    所述控制器为每个虚拟网络均设置一个广播树,其中,所述广播树的根节点为所述多个交换机中的一个交换机,树枝节点为所述多个交换机中与所述一个交换机不同的至少一个交换机,叶子节点为用户主机和根据所述网络配置信息确定的属于与所述广播树对应的虚拟网络的交换机端口中的至少一者;以及
    所述控制器根据所述广播树生成针对每个虚拟网络的广播流表和广播组表,并将针对所述多个虚拟网络的所述广播流表和所述广播组表发送至所述广播树上的各个交换机,以使各个交换机根据所述广播流表和所述广播组表转发接收到的广播报文。
  2. 如权利要求1所述的方法,还包括:
    所述控制器检测所述多个虚拟网络中是否存在网络资源更新;以及
    在存在网络资源更新的情况下,所述控制器为其中网络资源已更新的虚拟网络更新广播树。
  3. 如权利要求2所述的方法,其中,所述控制器为其中网络资源已更新的虚拟网络更新广播树,包括:在检测到增加了用户主机的情况下,
    所述控制器确定所述增加的用户主机所处的虚拟网络;
    所述控制器将与所述增加的用户主机连接的交换机的相应端口加入到所确定的虚拟网络中;
    所述控制器判断所述交换机是否在所确定的虚拟网络对应的广播树上;
    在所述交换机不在所确定的虚拟网络对应的广播树上的情况下,所述控制器计算所述交换机与所确定的虚拟网络对应的广播树的根节点之间的最短路径,以根据所述最短路径将所述交换机添加至所述广播树中;
    在所述交换机在所确定的虚拟网络对应的广播树上的情况下,所述控制器根据增加的用户主机和加入到所确定的虚拟网络中的所述端口更新所述广播树。
  4. 如权利要求2所述的方法,其中,所述控制器为其中网络资源已更新的虚拟网络更新广播树,包括:在检测到同一虚拟网络内两个交换机间增加了直连链路的情况下,
    所述控制器判断所述直连链路连接的两个交换机之间是否存在非直连链路;
    在不存在非直连链路的情况下,所述控制器将所述直连链路和与所述直连链路相关联的端口添加到所述广播树中;
    在存在非直连链路的情况下,所述控制器用所述直连链路替换所述广播树中的所述非直连链路。
  5. 如权利要求2所述的方法,其中,所述控制器为其中网络资源已更新的虚拟网络更新广播树,包括:
    在检测到删除了用户主机的情况下,所述控制器将与所述用户主机连接的交换机的相应端口从所述广播树中删除。
  6. 如权利要求2所述的方法,其中,所述控制器为其中网络资源已更新的虚拟网络更新广播树,包括:
    在检测到删除了同一虚拟网络内两个交换机间直连链路的情况下,所述控制器计算当前未与所述广播树的根节点连接的交换机与所述广播树的根节点之间的最短路径,并根据所述最短路径将所述未与所述广播树的根节点连接的交换机重新添加至所述广播树中。
  7. 如权利要求2所述的方法,其中,所述控制器为其中网络资源已更新的虚拟网络更新广播树,包括:
    在检测到所述广播树上的交换机下线的情况下,所述控制器分别计算当前所述下线的交换机的每个下层节点与所述广播树的根节点之间的最短路径,并根据所述最短路径将所述下线的交换机的每个下层节点重新添加至所述广播树中。
  8. 一种广播报文的处理方法,包括:
    交换机接收虚拟网络的广播流表和广播组表;
    在接收到广播报文时,所述交换机根据所述广播流表判断所述广播报文所属虚拟网络是否为所述交换机所处的虚拟网络;
    在所述广播报文所属虚拟网络是所述交换机所处的虚拟网络的情况下,所述交换机根据所述广播组表确定所述广播报文的转发端口;以及
    所述交换机经由所述转发端口转发所述广播报文。
  9. 一种广播报文的处理装置,所述网络包括经由该网络进行通信的多个交换机和多个用户主机,所述装置包括:
    划分模块,用于根据网络配置信息将所述多个交换机和所述多个用户主机划分到彼此不同的多个虚拟网络中;
    设置模块,用于为每个虚拟网络均设置一个广播树,其中,所述广播树的根节点为所述多个交换机中的一个交换机,树枝节点为所述多个交换机中与所述一个交换机不同的至少一个交换机,叶子节点为用户主机和根据所述网络配置信息确定的属于与所述广播树对应的虚拟网络的交换机端口中的至少一者;以及
    发送模块,用于根据所述广播树生成针对每个虚拟网络的广播流表和广播组表,并将针对所述多个虚拟网络的所述广播流表和所述广播组表发送至所述广播树上的各个交换机,以使各个交换机根据所述广播流表和所述广播组表转发接收到的广播报文。
  10. 如权利要求9所述的装置,还包括:
    检测模块,用于检测所述多个虚拟网络中是否存在网络资源更新;以及
    更新模块,用于在所述检测模块检测到存在网络资源更新的情况下,为其中网络资源已更新的虚拟网络更新广播树。
  11. 如权利要求10所述的装置,其中,所述更新模块包括:
    确定单元,用于在检测到增加了用户主机的情况下,确定所述增加的用户主机所处的虚拟网络;
    加入单元,用于将与所述增加的用户主机连接的交换机的相应端口加入到所述确定单元确定的虚拟网络中;
    第一判断单元,用于判断所述交换机是否在所述确定单元确定的虚拟网络对应的广播树上;以及
    第一更新单元,用于在所述第一判断单元判断出所述交换机不在所述确定单元确定的虚拟网络对应的广播树上的情况下,计算所述交换机与所述确定单元确定的虚拟网络对应的广播树的根节点之间的最短路径,以根据所述最短路径将所述交换机添加至所述广播树中,并且在所述第一判断单元判断出所述交换机在所述确定单元确定的虚拟网络对应的广播树上的情况下,将所述增加的用户主机和所述加入单元加入到虚拟网络中的端口添加至所述广播树中。
  12. 如权利要求10所述的装置,其中,所述更新模块包括:
    第二判断单元,用于在检测到同一虚拟网络内两个交换机间增加了直连链路的情况下,判断所述直连链路连接的两个交换机之间是否存在非直连链路;以及
    第二更新单元,用于在所述第二判断单元判断出不存在非直连链路的情况下,将所述直连链路和与所述直连链路相关联的端口添加到所述广播树中,并且在所述第二判断单元判断出存在非直连链路的情况下,用所述直连链路替换所述广播树中的所述非直连链路。
  13. 如权利要求10所述的装置,其中,所述更新模块包括:
    第三更新单元,用于在检测到删除了用户主机的情况下,将与所述用户主机连接的交换机的相应端口从所述广播树中删除。
  14. 如权利要求10所述的装置,其中,所述更新模块包括:
    第四更新单元,用于在检测到删除了同一虚拟网络内两个交换机间直连链路的情况下,计算当前未与所述广播树的根节点连接的交换机与所述广播树的根节点之间的最短路径,并根据所述最短路径将所述未与所述广播树的根节点连接的交换机重新添加至所述广播树中。
  15. 如权利要求10所述的装置,其中,所述更新模块包括:
    第五更新单元,用于在检测到所述广播树上的交换机下线的情况下,分别计算当前所述下线的交换机的每个下层节点与所述广播树的根节点之间的最短路径,并根据所述最短路径将所述下线的交换机的每个下层节点重新添加至所述广播树中。
  16. 一种控制器,包括:权利要求9至15中任一项所述的装置。
  17. 一种交换机,包括:
    接收模块,用于接收虚拟网络的广播流表和广播组表;
    判断模块,用于在所述接收模块接收到广播报文时,根据所述广播流表判断所述广播报文所属虚拟网络是否为交换机所处的虚拟网络;
    确定模块,用于在所述判断模块判断出所述广播报文所属虚拟网络是所述交换机所处的虚拟网络的情况下,根据所述广播组表确定所述广播报文的转发端口;以及
    转发模块,用于经由所述确定模块确定的转发端口转发所述广播报文。
  18. 一种广播报文的处理方法,包括:
    控制器根据网络配置信息将网络上的多个交换机和多个主机划分到不同的多个虚拟网络进行管理,并为每个虚拟网络均设置一个广播树,所述广播树的根节点为所述多个交换机中的一个交换机,树枝节点为与作为根节点的交换机不同的至少一个交换机,叶子节点为用户主机和根据所述网络配置信息确定的属于与广播树对应的虚拟网络的交换机端口中的至少一者;
    控制器根据广播树生成每个虚拟网络的广播流表和广播组表,并向交换机下发所述广播流表和广播组表;
    交换机在接收到广播报文时,根据接收到的广播流表判断广播报文所属的虚拟网络,并且在广播报文所属虚拟网络是该交换机所处的虚拟网络的情况下,根据接收到的广播组表进行广播报文的转发;以及
    控制器在网络资源更新时更新广播树,并通知交换机更新广播流表和广播组表。
PCT/CN2017/118210 2016-12-23 2017-12-25 广播报文的处理方法和处理装置、控制器和交换机 WO2018113792A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP17882326.6A EP3562107A4 (en) 2016-12-23 2017-12-25 BROADCAST PACKAGE PROCESSING METHOD AND PROCESSING DEVICE, CONTROL UNIT AND SWITCH

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201611205224.1 2016-12-23
CN201611205224.1A CN108243123B (zh) 2016-12-23 2016-12-23 广播报文的处理方法、装置、控制器和交换机

Publications (1)

Publication Number Publication Date
WO2018113792A1 true WO2018113792A1 (zh) 2018-06-28

Family

ID=62624689

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/118210 WO2018113792A1 (zh) 2016-12-23 2017-12-25 广播报文的处理方法和处理装置、控制器和交换机

Country Status (3)

Country Link
EP (1) EP3562107A4 (zh)
CN (1) CN108243123B (zh)
WO (1) WO2018113792A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109150741B (zh) * 2018-08-10 2022-05-20 Oppo广东移动通信有限公司 报文发送方法、装置、电子设备及存储介质
JP7107153B2 (ja) * 2018-10-17 2022-07-27 富士通株式会社 マルウェア検査支援プログラム、マルウェア検査支援方法および通信装置
CN111030913A (zh) * 2019-11-21 2020-04-17 天津天睿科技有限公司 一种网络设备集群数据同步方法
CN113014516A (zh) * 2019-12-20 2021-06-22 华为技术有限公司 一种数据流发送的方法及装置
CN111600812B (zh) * 2020-05-13 2022-10-25 优刻得科技股份有限公司 一种报文的处理方法、处理装置、可读介质和系统
CN112003796B (zh) * 2020-08-07 2023-04-18 北京浪潮数据技术有限公司 一种广播报文处理方法、系统、设备及计算机存储介质
CN112866002B (zh) * 2020-11-10 2023-04-07 网络通信与安全紫金山实验室 面向多播流量的带内遥测方法、交换设备节点以及计算机可读存储介质
CN113347031B (zh) * 2021-05-27 2022-07-12 中国电子科技集团公司第七研究所 一种基于组播方式的sdn虚网构建系统及构建方法
CN115473848A (zh) * 2022-08-30 2022-12-13 杭州云豆豆智能科技有限公司 软件定义网络中广播处理的优化方法、装置和计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857416A (zh) * 2012-09-18 2013-01-02 中兴通讯股份有限公司 一种实现虚拟网络的方法和虚拟网络
CN103067534A (zh) * 2012-12-26 2013-04-24 中兴通讯股份有限公司 一种NAT实现系统、方法及Openflow交换机
US20140071983A1 (en) * 2012-09-07 2014-03-13 International Business Machines Corporation Overlay network capable of supporting storage area network (san) traffic

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8289978B2 (en) * 2008-10-15 2012-10-16 At&T Intellectual Property I, Lp Broadcast interactive television system
CN101631274B (zh) * 2009-07-28 2012-09-05 北京交通大学 基于标识的组播路由实现系统及其方法
CN101800701A (zh) * 2010-02-24 2010-08-11 北京交通大学 基于集中控制的组播路由控制方法
US9064216B2 (en) * 2012-06-06 2015-06-23 Juniper Networks, Inc. Identifying likely faulty components in a distributed system
WO2014121468A1 (zh) * 2013-02-06 2014-08-14 华为技术有限公司 在网络虚拟化系统中组播数据通道建立的方法及设备
CN104022960B (zh) * 2013-02-28 2017-05-31 新华三技术有限公司 基于OpenFlow协议实现PVLAN的方法和装置
CN103200122B (zh) * 2013-03-05 2016-08-10 国家电网公司 一种软件定义网络中组表的处理方法、系统和控制器
CN105323077B (zh) * 2014-07-01 2018-08-31 上海宽带技术及应用工程研究中心 基于Openflow技术的网络广播方法及系统
US10270645B2 (en) * 2014-07-21 2019-04-23 Big Switch Networks, Inc. Systems and methods for handling link aggregation failover with a controller
US10015115B2 (en) * 2015-06-01 2018-07-03 Ciena Corporation Software defined networking service control systems and methods of remote services
CN105634923B (zh) * 2015-12-29 2018-11-02 北京邮电大学 基于sdn控制器的以太网广播优化处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140071983A1 (en) * 2012-09-07 2014-03-13 International Business Machines Corporation Overlay network capable of supporting storage area network (san) traffic
CN102857416A (zh) * 2012-09-18 2013-01-02 中兴通讯股份有限公司 一种实现虚拟网络的方法和虚拟网络
CN103067534A (zh) * 2012-12-26 2013-04-24 中兴通讯股份有限公司 一种NAT实现系统、方法及Openflow交换机

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3562107A4 *

Also Published As

Publication number Publication date
EP3562107A1 (en) 2019-10-30
CN108243123B (zh) 2022-03-11
CN108243123A (zh) 2018-07-03
EP3562107A4 (en) 2020-08-05

Similar Documents

Publication Publication Date Title
WO2018113792A1 (zh) 广播报文的处理方法和处理装置、控制器和交换机
US10862783B2 (en) OAM mechanisms for EVPN active-active services
EP2911348B1 (en) Control device discovery in networks having separate control and forwarding devices
RU2651149C2 (ru) Sdn-контроллер, система центра обработки данных и способ маршрутизируемого соединения
CN109672550B (zh) 用于多级网络结构的简化配置
WO2021007963A1 (zh) 路由分发方法及控制器、信息路由方法及网络节点设备
JP5488979B2 (ja) コンピュータシステム、コントローラ、スイッチ、及び通信方法
TWI639325B (zh) 自動配置的交換機、自動配置交換機的方法、交換機自動部署的軟體定義網路系統及其方法
EP3069471B1 (en) Optimized multicast routing in a clos-like network
CN109660442A (zh) Overlay网络中组播复制的方法及装置
JP2017212759A (ja) パケット転送装置、制御装置、通信システム、通信方法及びプログラム
CN108964940A (zh) 消息发送方法及装置、存储介质
WO2021098727A1 (zh) 网络部署的方法及系统
WO2012119372A1 (zh) 一种报文处理方法、设备和系统
EP4009592A1 (en) Method for configuring port state and network device
CN109257190A (zh) 一种基于sdn的组播处理方法、控制器、交换机及系统
US20210119826A1 (en) Layer-2 dedicated line network system and configuration method
CN113938448B (zh) 一种基于evpn技术的自主可控虚拟交换机的实现方法
KR101767439B1 (ko) 소프트웨어 정의 네트워크에서 패킷의 경로를 설정하는 방법, 장치 및 컴퓨터 프로그램
JP6565914B2 (ja) 通信制御装置、通信システム、通信制御方法および通信制御用プログラム
WO2017012315A1 (zh) 业务监听控制方法及装置
CN110995623B (zh) 一种在数据中心之间控制泛洪的方法和第一交换机
WO2023050818A1 (zh) 数据转发方法、系统、电子设备和存储介质
WO2023155733A1 (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: 17882326

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017882326

Country of ref document: EP

Effective date: 20190723