WO2016173196A1 - 地址映射关系的学习方法及装置 - Google Patents

地址映射关系的学习方法及装置 Download PDF

Info

Publication number
WO2016173196A1
WO2016173196A1 PCT/CN2015/090458 CN2015090458W WO2016173196A1 WO 2016173196 A1 WO2016173196 A1 WO 2016173196A1 CN 2015090458 W CN2015090458 W CN 2015090458W WO 2016173196 A1 WO2016173196 A1 WO 2016173196A1
Authority
WO
WIPO (PCT)
Prior art keywords
flow table
data packet
edge node
group
group table
Prior art date
Application number
PCT/CN2015/090458
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 中兴通讯股份有限公司
Publication of WO2016173196A1 publication Critical patent/WO2016173196A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming

Definitions

  • the present invention relates to the field of communications, and in particular, to a method and apparatus for learning an address mapping relationship.
  • FIG. 1 is a schematic diagram of an OpenFlow network component architecture according to the related art.
  • the control plane of the OpenFlow network is implemented by the OpenFlow controller.
  • the forwarding plane of the OpenFlow network is implemented by the OpenFlow switch.
  • the OpenFlow protocol is run between the OpenFlow controller and the OpenFlow switch.
  • the OpenFlow controller uses the OpenFlow protocol to the OpenFlow switch.
  • a flow table including a Match Field and a Group Table containing one or more Action Buckets are delivered to control data forwarding, and data forwarding and routing are implemented. Control separation.
  • the flow table and group table of the OpenFlow switch are sent by the OpenFlow controller. If the OpenFlow switch receives a packet without a matching flow table, the packet is encapsulated in a Packet_in message. Handle to the OpenFlow controller. After the processing is completed according to the preset rules, the OpenFlow controller sends the corresponding flow table and group table to the OpenFlow switch, so that the subsequent data packets can be matched to the newly delivered flow table and are based on the flow table by the OpenFlow switch. And the group table completes the forwarding of the data packet.
  • FIG. 2 is a schematic diagram of a network structure and an access mode of a cascading network according to the related art. As shown in FIG. 2, the cascading network includes two different types of edge nodes and intermediate nodes.
  • the network node the customer equipment (Customer Device) connects the edge node to access the cascading network by means of single-homed access or multiple-homing access.
  • the so-called single-homing access means that the user equipment only connects to a single edge node, and the data traffic sent by the user equipment to the cascading network enters the cascading network through a single edge node;
  • the so-called multi-homing access means that the user equipment simultaneously connects multiple edge nodes, the user The data traffic sent by the device to the cascading network enters the cascading network through multiple edge nodes in a load-sharing manner.
  • the feature of the cascading network is that the edge node adds an outer layer encapsulation for all packets entering the cascading network.
  • the outer layer encapsulation includes an outer source address and an outer destination address for intermediate node forwarding, where the outer source address points to the added external address.
  • Layer seal The local edge node is installed, and the outer destination address points to the remote edge node, and the source address and the destination address of the data packet before adding the outer encapsulation are still carried as the inner source address and the inner layer destination address after the outer encapsulation is added. In the packet.
  • the remote edge node After receiving the data packet with the outer layer encapsulation, the remote edge node performs self-learning on the mapping relationship between the outer source address and the inner source address of the data packet, and saves the mapping relationship between the addresses. As the edge node, the basis for adding the outer layer package to the subsequent data packets entering the layered network from the edge node is added. For data traffic from the same user equipment that enters the cascading network through multi-homing access, different data packets may be added to the same remote edge node by different local edge nodes and sent to the same remote edge node. After the node performs the self-learning of the address mapping relationship on the received multiple data packets, a one-to-many mapping relationship between the same inner source address and multiple outer source addresses may be learned. The remote edge node is required to support the preservation of a one-to-many mapping relationship. According to the related art, an edge node supporting OpenFlow in a cascading network cannot implement self-learning of an address mapping relationship.
  • the OpenFlow protocol cannot solve the problem of self-learning of address mapping relationships in a cascading network. Currently, no effective solution has been proposed.
  • An embodiment of the present invention provides a method and an apparatus for learning an address mapping relationship, so as to at least solve the problem that the OpenFlow protocol in the related art cannot implement self-learning of address mapping relationships in a cascading network.
  • a method for learning an address mapping relationship including: an edge node in a cascading network receives entry information from an OpenFlow controller, where the entry information includes First indication information of the table and second indication information for instructing to create a group table associated with the flow table; the edge node receives the data packet; the edge node creates a flow table for the data packet according to the item information, and A group table associated with the flow table, and storing the obtained address mapping relationship corresponding to the foregoing data packet in the created flow table and group table.
  • the foregoing second indication information carries the following information: an action set selection policy.
  • the foregoing, by the edge node, creating the flow table for the data packet and the group table associated with the flow table according to the foregoing item information includes: the edge node locally searching for the item information that matches the data packet.
  • storing the obtained address mapping relationship corresponding to the foregoing data packet to the created flow table and group table includes: extracting an inner layer source address of the data packet as a destination address matching field, and saving the same in the flow table; Extracting the outer source address of the data packet as an outer destination address added to the data packet matching the flow table is stored in the action set of the group table.
  • the method further includes: the edge node sending the created flow table and the group table to the foregoing OpenFlow controller.
  • the first indication information and the second indication information are associated by using the same group table identifier generation rule.
  • a method for learning an address mapping relationship including: The OpenFlow controller sends the entry information to the edge node in the cascading network, where the entry information includes first indication information for indicating the creation of the flow table and a group table for indicating the creation of the group table associated with the flow table. a second indication information, wherein the foregoing entry information is that the edge node creates a flow table for the received data packet and a group table associated with the flow table, and stores the obtained address mapping relationship corresponding to the data packet to the created The basis in the above flow table and group table.
  • the foregoing second indication information carries the following information: an action set selection policy.
  • the foregoing OpenFlow controller receives the flow table and the group table created by the edge node.
  • an apparatus for learning an address mapping relationship is provided.
  • the foregoing apparatus is applied to an edge node in a layered network, where the apparatus includes: a first receiving module, configured to receive entry information from an OpenFlow controller.
  • the first receiving information for indicating the creation of the flow table and the second indication information for indicating the creation of the group table associated with the flow table;
  • the second receiving module is configured to receive the data packet.
  • a processing module configured to create a flow table for the data packet and a group table associated with the flow table according to the foregoing item information, and store the obtained address mapping relationship corresponding to the data packet to the created flow table and group In the table.
  • the foregoing second indication information carries the following information: an action set selection policy.
  • the foregoing apparatus further includes: a first extracting module, configured to extract an inner layer source address of the data packet as a destination address matching field, where the matching table is stored in the flow table; and a second extracting module configured to extract the outer data packet
  • the layer source address is stored in the action set of the above-mentioned group table as the outer destination address of the packet added to the matching flow table.
  • an apparatus for learning an address mapping relationship is provided.
  • the foregoing apparatus is applied to an OpenFlow controller, where the apparatus includes: a sending module, configured to send entry information to an edge in a layered network.
  • a node where the foregoing item information includes first indication information for indicating creation of a flow table, and second indication information for indicating creation of a group table associated with the flow table, wherein the entry information is the edge node
  • a flow table is created for the received data packet and a group table associated with the flow table, and the obtained address mapping relationship corresponding to the data packet is stored in the created flow table and the group table.
  • the foregoing second indication information carries the following information: an action set selection policy.
  • the edge node in the layered network receives the entry information from the OpenFlow controller, where the entry information includes first indication information for indicating the creation of the flow table, and is used to indicate creation and the flow table. Second indication information of the associated group table; the edge node receives the data packet; the edge node creates a flow table for the data packet according to the entry information and a group table associated with the flow table, and maps the obtained address corresponding to the data packet The relationship is stored in the created flow table and group table.
  • FIG. 1 is a schematic diagram of an OpenFlow network component architecture according to related art
  • FIG. 2 is a schematic diagram of a network structure and an access mode of a layered network according to the related art
  • FIG. 3 is a flowchart of a method for learning an address mapping relationship according to an embodiment of the present invention
  • FIG. 4 is a structural block diagram of a learning apparatus for an address mapping relationship according to an embodiment of the present invention.
  • FIG. 5 is a structural block diagram (1) of a learning apparatus for an address mapping relationship according to an embodiment of the present invention
  • FIG. 6 is a flowchart (1) of a method for learning an address mapping relationship according to an embodiment of the present invention
  • FIG. 7 is a structural block diagram (2) of a learning apparatus for an address mapping relationship according to an embodiment of the present invention.
  • FIG. 8 is a schematic diagram of an application scenario in which a user equipment is directly connected to a cascading network according to the first embodiment of the present invention
  • FIG. 9 is a schematic diagram of an application scenario in which a user equipment is dual-homed to a cascading network according to Embodiment 2 of the present invention.
  • FIG. 3 is a flowchart of a method for learning an address mapping relationship according to an embodiment of the present invention. As shown in FIG. 3, the process includes the following steps:
  • Step S302 The edge node in the cascading network receives the entry information from the OpenFlow controller, where the entry information includes first indication information for indicating the creation of the flow table, and is used to indicate that the group associated with the flow table is created. Second indication information of the table;
  • Step S304 the edge node receives the data packet
  • Step S306 The edge node creates a flow table and a group table associated with the flow table according to the entry information, and stores the obtained address mapping relationship corresponding to the data packet in the created flow table and group table.
  • the edge node in the cascading network receives information indicating the creation of the flow table and information indicating the creation of the group table associated with the flow table from the OpenFlow controller, so that the edge node is the received data packet.
  • the flow table and the group table associated with the flow table are created, and the obtained address mapping relationship corresponding to the data packet is stored in the created flow table and group table.
  • step S306 involves creating a group table.
  • the second indication information carries an action set selection policy.
  • the action set selection strategy is used to add an outer package to an action set in the edge node selection group table.
  • the edge node creates a flow table for the data packet according to the entry information and a group associated with the flow table. Before the table, the entry information of the entry matching the packet is locally found.
  • the above step S306 involves creating a flow table and a group table.
  • the obtained address mapping relationship corresponding to the data packet is stored in the created flow table and group table, and the data packet is extracted.
  • the layer source address is stored in the flow table as the destination address matching field, and the outer source address of the extracted data packet is stored in the action set of the group table as the outer destination address of the data packet added to the matching flow table.
  • the edge node sends the created flow table and group table to the OpenFlow controller. To maintain state synchronization between the edge node and the two network entities of the OpenFlow controller.
  • the first indication information and the second indication information are associated by including the same group table identifier generation rule.
  • the group table identifier needs to be dynamically generated.
  • a learning device for the address mapping relationship is further provided, and the device is used to implement the foregoing embodiments and optional implementation manners.
  • the term "module” is a combination of software and/or hardware that can perform a predetermined function.
  • the apparatus described in the following embodiments is preferably implemented in software, hardware, or a combination of software and hardware, is also possible and contemplated.
  • the apparatus includes: a first receiving module 42 configured to be from OpenFlow.
  • the controller receives the entry information, where the entry information includes first indication information for indicating the creation of the flow table, and second indication information for indicating that the group table associated with the flow table is created;
  • the second receiving module 44 And configured to receive the data packet;
  • the processing module 46 is configured to create a flow table for the data packet according to the entry information and a group table associated with the flow table, and store the obtained address mapping relationship corresponding to the data packet to the created Flow tables and group tables.
  • the second indication information carries an action set selection policy.
  • FIG. 5 is a structural block diagram (1) of a learning apparatus for an address mapping relationship according to an embodiment of the present invention.
  • the apparatus further includes: a first extraction module 52 configured to extract an inner layer source address of the data packet as The destination address matching field is stored in the flow table.
  • the second extraction module 54 is configured to extract the outer source address of the data packet as the outer destination address of the data packet added to the matching flow table in the action set of the group table.
  • the first indication information and the second indication information are associated by using the same group table identifier generation rule.
  • FIG. 6 is a flowchart (1) of a method for learning an address mapping relationship according to an embodiment of the present invention. As shown in FIG. 6, the process includes the following steps:
  • the OpenFlow controller sends the entry information to the edge node in the cascading network, where the entry information includes first indication information for indicating the creation of the flow table, and is used to indicate that the creation is associated with the flow table.
  • the second indication information of the group table wherein the entry information is that the edge node creates a flow table for the received data packet and a group table associated with the flow table, and stores the obtained address mapping relationship corresponding to the data packet. The basis in the above flow table and group table created.
  • the OpenFlow controller sends information indicating the creation of the flow table and information indicating that the group table associated with the flow table is created to the edge node in the cascading network, so that the edge node is the received data.
  • the packet creates a flow table and a group table associated with the flow table, and then stores the obtained address mapping relationship corresponding to the data packet into the created flow table and group table, which solves the problem that the OpenFlow protocol cannot implement the address in the cascade network in the related art.
  • the problem of mapping self-learning reduces the number of packets that need to be sent to the controller, reducing the pressure on the OpenFlow controller and OpenFlow channel in the cascaded network.
  • the second indication information carries an action set selection policy.
  • the OpenFlow controller receives the flow table and group table created by the edge node.
  • a learning device for the address mapping relationship is provided, and the device is used to implement the foregoing embodiments and preferred embodiments, and details are not described herein.
  • the term "module” may implement a combination of software and/or hardware of a predetermined function.
  • the apparatus described in the following embodiments is preferably implemented in software, hardware, or a combination of software and hardware, is also possible and contemplated.
  • FIG. 7 is a structural block diagram (2) of a learning apparatus for an address mapping relationship according to an embodiment of the present invention.
  • the apparatus is applied to an OpenFlow controller, and the apparatus includes: a sending module 72 configured to send entry information to a layered network.
  • An edge node where the entry information includes first indication information for indicating creation of a flow table, and second indication information for indicating creation of a group table associated with the flow table, wherein the entry information is the edge
  • the node creates a flow table and a group table associated with the flow table for the received data packet, and stores the obtained address mapping relationship corresponding to the data packet in the created flow table and the group table.
  • the second indication information carries an action set selection policy.
  • each of the above modules may be implemented by software or hardware.
  • the foregoing may be implemented by, but not limited to, the foregoing modules are all located in the same processor; or, the above modules are respectively located.
  • the first processor, the second processor, and the third processor In the first processor, the second processor, and the third processor.
  • the present invention provides a method for self-learning address mapping relationships in a cascading network, and specifically includes the following steps:
  • Step A The controller sends a flow table for self-learning of the address mapping relationship to the edge node of the cascading network, which includes creating a flow table action (Action) and creating a group table action, and creating a flow table action for creating a flow table.
  • the Create Group Table action is used to create a group table and an action set in a group table.
  • the create flow table action and the create group table action are associated by including the same group table identifier generation rule, and the create group table action includes the action set selection policy set by the controller according to the network business requirement.
  • a group table can contain multiple action sets, when the user equipment accesses the cascading network through the multi-homing access mode, multiple action sets can be used to save multiple data packets mapped to the inner source address of the same data packet. Outer source address.
  • Creating a flow table action and creating a group table action are associated by including the same group table identity generation rule, so on the one hand With the same generation rules, the flow table created by creating a flow table action and the group table created by creating a group table action can contain the same group table identifier; on the other hand, by using dynamic generation rules, it is also possible to prevent each creation.
  • the group table created by the group table action uses the same group table identifier, which makes it impossible to distinguish the created group table.
  • the action set selection policy included in the create group table action is written into the newly created group table when the create group table action is executed, and the edge node receives the data packet of the flow table that matches the self-learning for the address mapping relationship.
  • the action set selection policy is used by the edge node to select one of the action sets to complete the outer layer when receiving the data packet from the user equipment. The addition of the package.
  • the action set selection policy included in the action of creating a group table is various. For example, for an application scenario where the user equipment needs to be frequently migrated and accesses the cascading network from a new edge node, the action set selection policy may be to always select the created group table.
  • the action set added by the action so as to avoid the situation that the outdated action set is selected to the greatest extent; for example, the action set is selected for the application device that is insensitive to the received duplicate data packet but sensitive to the packet loss.
  • the strategy can be to select all action sets and copy one packet for each action set, so as to minimize the loss of packets.
  • the action set selection strategy included in the create group table action should be set by the controller according to the business needs of the network.
  • Step B The edge node of the cascading network receives the data packet from the other edge node, and after matching the flow table for the self-learning of the address mapping relationship, executes the action of creating the flow table and creating the group table action included in the flow table.
  • To create a flow table and a group table associated with the created flow table extract the inner source address of the data packet as the destination address matching field and save it in the created flow table, and extract the outer source address of the data packet as the outer layer to be added.
  • the destination address of the package is stored in the action set of the created group table.
  • Step C After the edge node of the cascading network creates the flow table and the group table through self-learning, the newly created flow table and the group table are advertised to the controller.
  • the OpenFlow network requires the OpenFlow controller to have complete control over the network nodes it controls. Therefore, after the flow table and/or group table on the edge node changes due to the self-learning of the edge node to the address mapping relationship, the edge node needs to Immediately announce to the OpenFlow controller.
  • Step D After receiving the data packet that matches the destination address of the user equipment connected to the node and the created flow table, the edge node of the layered network performs an action in the matched flow table to invoke the created group table, according to The action set selection policy in the group table selects an action set, executes the action set to complete the addition of the outer package of the data packet, and uses the address stored in the action set as the destination address of the outer package.
  • FIG. 8 is a schematic diagram of an application scenario in which a user equipment is directly connected to a cascading network according to the first embodiment of the present invention.
  • edge nodes 1, 2, 3, and 4 supporting OpenFlow in a cascading network respectively
  • the OpenFlow channel is connected to the OpenFlow controller, and the user equipment is directly connected to the cascading network through the edge node 1.
  • the OpenFlow controller and the edge node supporting OpenFlow in the cascading network perform the following steps:
  • the OpenFlow controller sends a flow table for the self-learning of the address mapping relationship to the edge nodes 1, 2, 3, and 4 that support OpenFlow, and the flow table includes the action of creating a flow table and creating a group table.
  • the action of creating a flow table and the action of creating a group table are associated by the group table identifier.
  • the flow table created by creating the flow table action needs to include an action group group (Group Group_ID) action, and the execution group table action is guaranteed.
  • the included group table ID is consistent with the group table ID contained in the group table created by the Create Group Table action.
  • Step 2 The edge node 1 receives the data packet from the user equipment, adds an outer layer encapsulation to the data packet, and then sends the data packet carrying the outer layer encapsulation to the destination edge node.
  • edge node 1 When edge node 1 adds an outer encapsulation to the data packet, the address of the edge node 1 is taken as the source address of the added outer layer encapsulation, that is, the outer source address, and the destination address of the outer encapsulation added, that is, the outer address
  • the destination address of the layer there are two cases: if the edge node 1 has already stored the mapping relationship between the destination address of the data packet from the user equipment and other edge node addresses, the edge node 1 takes the other edge node address as the added external The destination address of the layer.
  • edge node 1 only one other edge node will receive the data packet from the edge node 1; if the edge node 1 does not save any mapping relationship between the destination address of the data packet from the user equipment and other edge node addresses, Then, the edge node 1 takes a default multicast address as the added outer destination address. In this case, all other edge nodes receive the data packet from the edge node 1.
  • Step 3 Any one of the edge nodes 2, 3, and 4 receives the data packet from the edge node 1, and after matching the flow table for self-learning of the address mapping relationship, executes the created flow table included in the flow table. Actions and create group table actions.
  • each of the edge nodes 2, 3, and 4 receives a data packet matching the flow table for self-learning of the address mapping relationship, and performs a flow table creation action included in the flow table. Create a group table action.
  • the flow table creation action creates a flow table with the inner source address of the data packet as the destination address matching field. If the matching field of the created flow table is duplicated with the matching field of the related flow table on the node, then A new flow table is created, and the related flow table is updated with the created flow table, that is, the aging time of the related flow table is reset.
  • the create group table action creates a group table associated with the created flow table, and also creates a destination address for the created group table with the outer source address of the packet as the destination address of the outer package to be added.
  • the action set similarly, if the matching field of the created flow table is duplicated with the matching field of the related flow table on the node, the new group table will not be created, but the created action set pair and related stream will be used.
  • the related group table associated with the table is updated, that is, a new action set is added when the outer source address of the packet is different from the destination address of the outer package to be added stored in the related action set.
  • the flow is created through self-learning of the address mapping relationship of enough data packets.
  • the different flow tables created by the table action take the different source inner address of the data packet as the destination address matching field, and all the group tables created by the created group table action and associated with the created flow table only contain one stored edge. The set of actions for the address of node 1.
  • Step 4 After creating a flow table and/or a group table by self-learning of the address mapping relationship, any one of the edge nodes 2, 3, and 4 advertises the newly created or updated flow table and/or group table to the OpenFlow channel. OpenFlow controller.
  • Step 5 After the flow node and the group table are created by self-learning, any one of the edge nodes 2, 3, and 4 receives a data packet that matches the destination address of the user equipment connected to the node and the created flow table, and executes the Matches the execution group table action in the flow table to call the created group table and execute the action set in the group table.
  • the created group table includes an action set in which the address of the edge node 1 is saved, and the result of executing the action set in the group table is to add an outer package and a margin to the data packet from the user device connected to the node.
  • the address of node 1 is taken as the outer destination address added.
  • FIG. 9 is a schematic diagram of an application scenario in which a user equipment is dual-homed to a cascading network according to Embodiment 2 of the present invention.
  • edge nodes 1, 2, 3, and 4 supporting OpenFlow in a cascading network are respectively
  • the OpenFlow channel is connected to the OpenFlow controller, and the user equipment is dual-homed to the cascading network through the edge nodes 1 and 2.
  • the OpenFlow controller and the edge node supporting OpenFlow in the cascading network perform the following steps:
  • the OpenFlow controller sends a flow table for the self-learning of the address mapping relationship to the edge nodes 1, 2, 3, and 4 that support OpenFlow, and the flow table includes the action of creating a flow table and creating a group table.
  • the action of creating a flow table and the action of creating a group table are associated by using a group table identifier.
  • the flow table created by creating a flow table action needs to include an execution group table action, and the group table included in the execution group table action is guaranteed.
  • the identity is consistent with the group table identifier contained in the group table created by the Create Group Table action.
  • the edge nodes 1 and 2 respectively receive the data packet from the user equipment, add the outer layer encapsulation to the data packet, and then send the data packet carrying the outer layer encapsulation to the destination edge node.
  • edge node 1 When edge node 1 adds an outer encapsulation to the data packet, the address of the edge node 1 is taken as the source address of the added outer layer encapsulation, that is, the outer source address, and the destination address of the outer encapsulation added, that is, the outer address
  • the destination address of the layer there are two cases: if the edge node 1 has already stored the mapping relationship between the destination address of the data packet from the user equipment and other edge node addresses, the edge node 1 takes the other edge node address as the added external The destination address of the layer.
  • edge node 1 only one other edge node will receive the data packet from the edge node 1; if the edge node 1 does not save any mapping relationship between the destination address of the data packet from the user equipment and other edge node addresses, Then, the edge node 1 takes a default multicast address as the added outer destination address. In this case, all other edge nodes receive the data packet from the edge node 1.
  • edge node 2 when edge node 2 adds outer layer encapsulation to the data packet, it also takes the address of edge node 2 as the added outer source address, and as for the outer destination address, edge node 2 also depends on whether or not it has been saved.
  • Step 3 Each of the edge nodes 3 and 4 receives the data packet from the edge nodes 1 and 2, and after matching the flow table for self-learning of the address mapping relationship, executes the created flow table included in the flow table. Actions and create group table actions.
  • each of the edge nodes 3 and 4 receives a flow table for self-learning with respect to address mapping.
  • the matching packet will execute the create flow table action and create the group table action contained in the flow table.
  • the flow table creation action creates a flow table with the inner source address of the data packet as the destination address matching field. If the matching field of the created flow table is duplicated with the matching field of the related flow table on the node, then A new flow table is created, and the related flow table is updated with the created flow table, that is, the aging time of the related flow table is reset.
  • the create group table action creates a group table associated with the created flow table, and also creates a destination address for the created group table with the outer source address of the packet as the destination address of the outer package to be added.
  • the action set similarly, if the matching field of the created flow table is duplicated with the matching field of the related flow table on the node, the new group table will not be created, but the created action set pair and related stream will be used.
  • the related group table associated with the table is updated, that is, a new action set is added when the outer source address of the packet is different from the destination address of the outer package to be added stored in the related action set.
  • any one of the edge nodes 3 and 4 receives a plurality of data packets having the same source address in the inner layer of the data packet, there are data packets whose outer source address is the address of the edge node 1 of the data packet, and there are also packets outside the data packet.
  • the layer source address is the data packet of the address of the edge node 2, so after self-learning of the address mapping relationship of enough data packets, the different flow table created by the flow table action is created to obtain the different source inner address of the data packet.
  • the destination address matches the field, and all the group tables associated with the created flow table created by the create group table action will contain two action sets, one of which stores the address of the edge node 1 and the other of which stores the edge node. 2 address.
  • Step 4 After creating a flow table and/or a group table by self-learning of the address mapping relationship, any one of the edge nodes 3 and 4 advertises the newly created or updated flow table and/or group table to the OpenFlow control through the OpenFlow channel. Device.
  • Step 5 After creating the flow table and the group table by self-learning, the node nodes 3 and 4 receive the data packet matching the destination address of the user equipment connected to the node and the created flow table, and execute the matched flow.
  • the execution group table action in the table invokes the created group table and executes the action set in the group table.
  • the created group table includes two action sets, wherein the address of the edge node 1 and the address of the edge node 2 are respectively saved, and the result of executing the action set in the group table is the data from the user equipment connected to the node.
  • the packet adds the outer encapsulation and takes the address of edge node 1 or 2 as the added outer destination address. Whether the address of the edge node 1 or the address of the edge node 2 is selected as the added outer layer destination address is determined by the action set selection policy of the created group table.
  • the present invention provides a method for self-learning of address mapping relationships in a cascading network.
  • the OpenFlow controller delivers a flow table including actions for creating a flow table and creating a group table, so that edge nodes of the cascading network can be targeted. Packets received from intermediate nodes automatically learn one-to-one or one-to-many address mapping relationships, which greatly reduces the number of packets that need to be sent to the controller. Therefore, the pressure on the OpenFlow controller and OpenFlow channel in the cascade network can be alleviated. .
  • a storage medium is further provided, wherein the software includes the above-mentioned software, including but not limited to: an optical disk, a floppy disk, a hard disk, an erasable memory, and the like.
  • modules or steps of the present invention described above can be implemented by a general-purpose computing device that can be centralized on a single computing device or distributed across a network of multiple computing devices. Alternatively, they may be implemented by program code executable by the computing device such that they may be stored in the storage device by the computing device and, in some cases, may be different from the order herein. Perform the steps shown or described Alternatively, each of them may be fabricated into individual integrated circuit modules, or a plurality of modules or steps thereof may be fabricated into a single integrated circuit module. Thus, the invention is not limited to any specific combination of hardware and software.
  • the edge node in the layered network receives the entry information from the OpenFlow controller, where the entry information includes first indication information for indicating the creation of the flow table, and is used to indicate creation and the flow table. Second indication information of the associated group table; the edge node receives the data packet; the edge node creates a flow table for the data packet according to the entry information and a group table associated with the flow table, and maps the obtained address corresponding to the data packet The relationship is stored in the above created flow table and group table.

Abstract

本发明提供了一种地址映射关系的学习方法及装置,其中,该方法包括:层叠网中的边缘节点从OpenFlow控制器接收表项信息,其中,该表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与该流表相关联的组表的第二指示信息;边缘节点接收数据包;边缘节点根据表项信息为数据包创建流表以及与该流表关联的组表,并将获取的与数据包对应的地址映射关系存储至创建的流表和组表中。通过本发明解决了相关技术中OpenFlow协议无法实现层叠网中地址映射关系自学习的问题,进而减少了需要上送控制器的数据包数量,减轻了层叠网中OpenFlow控制器和OpenFlow通道的压力。

Description

地址映射关系的学习方法及装置 技术领域
本发明涉及通信领域,具体而言,涉及一种地址映射关系的学习方法及装置。
背景技术
OpenFlow网络采用控制平面与转发平面相分离的架构,图1是根据相关技术的OpenFlow网络组件架构示意图。如图1所示,OpenFlow网络的控制平面由OpenFlow控制器来实现,OpenFlow网络的转发平面由OpenFlow交换机来实现,OpenFlow控制器与OpenFlow交换机之间运行OpenFlow协议;OpenFlow控制器利用OpenFlow协议向OpenFlow交换机下发包含匹配字段(Match Field)的流表(Flow Table)和包含一个或多个动作集(Action Bucket)的组表(Group Table),从而达到控制数据转发的目的,实现了数据转发和路由控制的分离。
根据OpenFlow协议规范的规定,OpenFlow交换机的流表和组表都是由OpenFlow控制器下发的,OpenFlow交换机如果接收到没有匹配流表的数据包,则会把该数据包封装在Packet_in消息中发送给OpenFlow控制器处理。按事先设定好的规则处理完后,OpenFlow控制器会向OpenFlow交换机下发相应的流表和组表,这样后续的数据包就能够匹配到新下发的流表并由OpenFlow交换机根据流表和组表完成数据包的转发。
在针对OpenFlow网络的测试中,OpenFlow控制器的数据包处理能力以及OpenFlow控制器与OpenFlow交换机之间的OpenFlow通道的容量被发现是限制网络性能的瓶颈因素。由于OpenFlow交换机经常会向OpenFlow控制器上送未匹配流表的数据包,所以OpenFlow通道的带宽被大量占用,而且还给OpenFlow控制器带来了很大的数据包处理压力,造成了网络的时延增加,严重时还会带来明显的网络丢包。于是,业界提出了一种扩展OpenFlow协议支持交换机本地自学习(Switch Local Learning)的技术方案,即允许OpenFlow交换机通过自学习在本地生成流表,这样就可以大大减少需要上送OpenFlow控制器的数据包的数量。
但是,当前的扩展OpenFlow协议支持交换机本地自学习的技术方案,只能实现支持OpenFlow的网络节点对数据包源地址与网络节点上接收数据包的端口之间映射关系的自学习,无法适用于层叠网(Overlay Networks)中支持OpenFlow的边缘节点对数据包内外层地址之间的映射关系的自学习。层叠网是一种应用十分广泛的网络类型,图2是根据相关技术的层叠网的网络结构和接入方式示意图,如图2所示,层叠网中包含边缘节点和中间节点两种不同类型的网络节点,用户设备(Customer Device)通过单归接入或多归接入的方式连接边缘节点以接入层叠网。所谓单归接入,就是用户设备只连接单个边缘节点,用户设备发往层叠网的数据流量通过单个边缘节点进入层叠网中;所谓多归接入,就是用户设备同时连接多个边缘节点,用户设备发往层叠网的数据流量采用负载分担的方式通过多个边缘节点进入层叠网中。层叠网的特点是边缘节点会针对所有进入层叠网的数据包添加外层封装,外层封装中包含用于中间节点转发的外层源地址和外层目的地址,其中外层源地址指向添加外层封 装的本地边缘节点,外层目的地址指向远端边缘节点,而添加外层封装前的数据包的源地址和目的地址在添加外层封装后作为内层源地址和内层目的地址仍携带在数据包中。远端边缘节点接收到添加了外层封装的数据包后,会对数据包的外层源地址与内层源地址之间的映射关系进行自学习,并把这种地址间映射关系保存下来,作为该边缘节点给后续的从本边缘节点进入层叠网的数据包添加外层封装的依据。对于来自同一个用户设备、通过多归接入方式进入层叠网的数据流量,其中不同的数据包可能会被不同的本地边缘节点添加外层封装后发往同一个远端边缘节点,远端边缘节点在对接收到的多个数据包进行上述地址映射关系的自学习后,会出现学习到同一个内层源地址与多个外层源地址之间的一对多映射关系的情况,此时就要求远端边缘节点能够支持一对多映射关系的保存。根据相关技术,层叠网中支持OpenFlow的边缘节点无法实现对地址映射关系的自学习。
针对OpenFlow协议无法实现层叠网中地址映射关系自学习的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种地址映射关系的学习方法及装置,以至少解决相关技术中OpenFlow协议无法实现层叠网中地址映射关系自学习的问题。
根据本发明实施例的一个方面,提供了一种地址映射关系的学习方法,包括:层叠网中的边缘节点从OpenFlow控制器接收表项信息,其中,上述表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与上述流表相关联的组表的第二指示信息;上述边缘节点接收数据包;上述边缘节点根据上述表项信息为上述数据包创建流表以及与该流表关联的组表,并将获取的与上述数据包对应的地址映射关系存储至创建的上述流表和组表中。
可选地,上述第二指示信息中携带有以下信息:动作集选择策略。
可选地,上述边缘节点根据上述表项信息为上述数据包创建流表以及与该流表关联的组表之前包括:上述边缘节点在本地查找与上述数据包匹配的上述表项信息。
可选地,将获取的与上述数据包对应的地址映射关系存储至创建的上述流表和组表中包括:提取上述数据包的内层源地址作为目的地址匹配字段保存在上述流表中;提取上述数据包的外层源地址作为添加至匹配上述流表的数据包的外层目的地址保存在上述组表的动作集中。
可选地,上述边缘节点根据上述表项信息为上述数据包创建流表以及与该流表关联的组表之后,上述方法还包括:上述边缘节点将创建的上述流表和组表发送给上述OpenFlow控制器。
可选地,上述第一指示信息和上述第二指示信息通过包含相同的组表标识生成规则进行关联。
根据本发明实施例的另一个方面,还提供了一种地址映射关系的学习方法,包括: OpenFlow控制器将表项信息发送给层叠网中的边缘节点,其中,上述表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与上述流表相关联的组表的第二指示信息,其中上述表项信息为上述边缘节点为接收到的数据包创建流表以及与该流表关联的组表,并将获取的与上述数据包对应的地址映射关系存储至创建的上述流表和组表中的依据。
可选地,上述第二指示信息中携带有以下信息:动作集选择策略。
可选地,上述OpenFlow控制器接收上述边缘节点创建的流表和组表。
根据本发明实施例的一个方面,提供了一种地址映射关系的学习装置,上述装置应用于层叠网中的边缘节点,上述装置包括:第一接收模块,设置为从OpenFlow控制器接收表项信息,其中,上述表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与上述流表相关联的组表的第二指示信息;第二接收模块,设置为接收数据包;处理模块,设置为根据上述表项信息为上述数据包创建流表以及与该流表关联的组表,并将获取的与上述数据包对应的地址映射关系存储至创建的上述流表和组表中。
可选地,上述第二指示信息中携带有以下信息:动作集选择策略。
可选地,上述装置还包括:第一提取模块,设置为提取上述数据包的内层源地址作为目的地址匹配字段保存在上述流表中;第二提取模块,设置为提取上述数据包的外层源地址作为添加至匹配上述流表的数据包的外层目的地址保存在上述组表的动作集中。
根据本发明实施例的另一个方面,还提供了一种地址映射关系的学习装置,上述装置应用于OpenFlow控制器,上述装置包括:发送模块,设置为将表项信息发送给层叠网中的边缘节点,其中,上述表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与上述流表相关联的组表的第二指示信息,其中上述表项信息为上述边缘节点为接收到的数据包创建流表以及与该流表关联的组表,并将获取的与上述数据包对应的地址映射关系存储至创建的上述流表和组表中的依据。
可选地,上述第二指示信息中携带有以下信息:动作集选择策略。
通过本发明实施例,采用层叠网中的边缘节点从OpenFlow控制器接收表项信息,其中,该表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与该流表相关联的组表的第二指示信息;边缘节点接收数据包;边缘节点根据表项信息为数据包创建流表以及与该流表关联的组表,并将获取的与数据包对应的地址映射关系存储至创建的流表和组表中。解决了相关技术中OpenFlow协议无法实现层叠网中地址映射关系自学习的问题,进而减少了需要上送控制器的数据包数量,减轻了层叠网中OpenFlow控制器和OpenFlow通道的压力。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的OpenFlow网络组件架构示意图;
图2是根据相关技术的层叠网的网络结构和接入方式示意图;
图3是根据本发明实施例的地址映射关系的学习方法流程图;
图4是根据本发明实施例的地址映射关系的学习装置的结构框图;
图5是根据本发明实施例的地址映射关系的学习装置的结构框图(一);
图6是根据本发明实施例的地址映射关系的学习方法流程图(一);
图7是根据本发明实施例的地址映射关系的学习装置的结构框图(二);
图8是根据本发明实施例一的用户设备单归接入层叠网的应用场景示意图;
图9是根据本发明实施例二的用户设备双归接入层叠网的应用场景示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本实施例中提供了一种地址映射关系的学习方法,图3是根据本发明实施例的地址映射关系的学习方法流程图,如图3所示,该流程包括如下步骤:
步骤S302,层叠网中的边缘节点从OpenFlow控制器接收表项信息,其中,该表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与该流表相关联的组表的第二指示信息;
步骤S304,边缘节点接收数据包;
步骤S306,边缘节点根据表项信息为数据包创建流表以及与该流表关联的组表,并将获取的与数据包对应的地址映射关系存储至创建的上述流表和组表中。
通过上述步骤,层叠网中的边缘节点从OpenFlow控制器接收用于指示创建流表的信息和用于指示创建与该流表相关联的组表的信息,以便于边缘节点为接收到的数据包创建流表以及与该流表关联的组表,进而将获取的与数据包对应的地址映射关系存储至创建的流表和组表中。解决了相关技术中OpenFlow协议无法实现层叠网中地址映射关系自学习的问题,进而减少了需要上送控制器的数据包数量,减轻了层叠网中OpenFlow控制器和OpenFlow通道的压力。
上述步骤S306涉及到创建组表,在一个可选实施例中,第二指示信息中携带有动作集选择策略。动作集选择策略用于边缘节点选择组表中的一个动作集完成外层封装的添加。
在一个可选实施例中,边缘节点根据表项信息为数据包创建流表以及与该流表关联的组 表之前,在本地查找与该数据包匹配的该表项信息。
上述步骤S306涉及到创建流表及组表,在一个可选实施例中,将获取的与上述数据包对应的地址映射关系存储至创建的上述流表和组表中包括,提取数据包的内层源地址作为目的地址匹配字段保存在流表中,提取数据包的外层源地址作为添加至匹配流表的数据包的外层目的地址保存在该组表的动作集中。从而完成了获取的与上述数据包对应的内层源地址与外层源地址之间的地址映射关系的存储。
在一个可选实施例中,边缘节点将创建的流表和组表发送给OpenFlow控制器。以保持边缘节点与OpenFlow控制器两个网络实体之间的状态同步。
在一个可选实施例中,第一指示信息和第二指示信息通过包含相同的组表标识生成规则进行关联。为了保证每次新创建的组表都有不同的组表标识,组表标识需要动态生成。
在本实施例中还提供了一种地址映射关系的学习装置,该装置用于实现上述实施例及可选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”是可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明实施例的地址映射关系的学习装置的结构框图,该装置应用于层叠网中的边缘节点,如图4所示,该装置包括:第一接收模块42,设置为从OpenFlow控制器接收表项信息,其中,表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与该流表相关联的组表的第二指示信息;第二接收模块44,设置为接收数据包;处理模块46,设置为根据表项信息为该数据包创建流表以及与该流表关联的组表,并将获取的与数据包对应的地址映射关系存储至创建的流表和组表中。
可选地,第二指示信息中携带有动作集选择策略。
图5是根据本发明实施例的地址映射关系的学习装置的结构框图(一),如图5所示,该装置还包括:第一提取模块52,设置为提取数据包的内层源地址作为目的地址匹配字段保存在流表中;第二提取模块54,设置为提取数据包的外层源地址作为添加至匹配该流表的数据包的外层目的地址保存在组表的动作集中。
可选地,上述第一指示信息和上述第二指示信息通过包含相同的组表标识生成规则进行关联。
在本实施例中提供了一种地址映射关系的学习方法,图6是根据本发明实施例的地址映射关系的学习方法流程图(一),如图6所示,该流程包括如下步骤:
步骤S602,OpenFlow控制器将表项信息发送给层叠网中的边缘节点,其中,该表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与该流表相关联的组表的第二指示信息,其中该表项信息为该边缘节点为接收到的数据包创建流表以及与该流表关联的组表,并将获取的与上述数据包对应的地址映射关系存储至创建的上述流表和组表中的依据。
通过上述步骤,OpenFlow控制器将用于指示创建流表的信息和用于指示创建与该流表相关联的组表的信息发送给层叠网中的边缘节点,以便于边缘节点为接收到的数据包创建流表以及与该流表关联的组表,进而将获取的与数据包对应的地址映射关系存储至创建的流表和组表中,解决了相关技术中OpenFlow协议无法实现层叠网中地址映射关系自学习的问题,进而减少了需要上送控制器的数据包数量,减轻了层叠网中OpenFlow控制器和OpenFlow通道的压力。
在一个可选实施例中,第二指示信息中携带有动作集选择策略。
在一个可选实施例中,OpenFlow控制器接收边缘节点创建的流表和组表。
在本实施例中还提供了一种地址映射关系的学习装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是根据本发明实施例的地址映射关系的学习装置的结构框图(二),该装置应用于OpenFlow控制器,该装置包括:发送模块72,设置为将表项信息发送给层叠网中的边缘节点,其中,该表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与该流表相关联的组表的第二指示信息,其中该表项信息为该边缘节点为接收到的数据包创建流表以及与该流表关联的组表,并将获取的与上述数据包对应的地址映射关系存储至创建的上述流表和组表中的依据。
在一个可选实施例中,第二指示信息中携带有动作集选择策略。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述各个模块均位于同一处理器中;或者,上述各个模块分别位于第一处理器、第二处理器和第三处理器…中。
针对相关技术中存在的上述问题,下面结合具体的可选实施例进行说明,下述可选实施例结合了上述可选实施例及其可选实施方式。
本可选实施例提供了一种层叠网中地址映射关系自学习的方法,具体地包括以下步骤:
步骤A,控制器向层叠网的边缘节点下发用于地址映射关系自学习的流表,其中包含创建流表动作(Action)和创建组表动作,创建流表动作用于创建一个流表,创建组表动作用于创建一个组表和一个组表中的动作集。创建流表动作和创建组表动作通过包含相同的组表标识生成规则关联在一起,创建组表动作包含控制器根据网络的业务需求设定的动作集选择策略。
由于一个组表可以包含多个动作集,所以当用户设备通过多归接入方式接入层叠网时,可以用多个动作集来保存映射到同一个数据包内层源地址的多个数据包外层源地址。创建流表动作和创建组表动作通过包含相同的组表标识生成规则关联在一起,如此,一方面通过采 用相同的生成规则,创建流表动作所创建的流表与创建组表动作所创建的组表就能包含相同的组表标识;另一方面通过采用动态的生成规则,也可以防止每次创建组表动作所创建的组表都使用相同的组表标识,导致无法对所创建的组表进行区分。包含于创建组表动作中的动作集选择策略在执行创建组表动作时被写入新创建的组表,当边缘节点由于接收到多个匹配用于地址映射关系自学习的流表的数据包而多次执行创建组表动作,且导致所创建的组表包含多个动作集时,动作集选择策略用于边缘节点在接收到来自用户设备的数据包时,选择其中一个动作集完成外层封装的添加。
创建组表动作中包含的动作集选择策略是多种多样的,比如,针对用户设备需频繁迁移并从新的边缘节点接入层叠网的应用场景,动作集选择策略可以是永远选择被创建组表动作新增的那个动作集,这样可以最大程度避免出现过时的动作集被选中的情况;再比如,针对用户设备对接收到重复数据包不敏感但对丢包很敏感的应用场景,动作集选择策略可以是选择所有动作集并给每个动作集复制一份数据包,这样可以最大程度避免出现丢包的情况。总之,创建组表动作中包含的动作集选择策略应由控制器根据网络的业务需求来设定。
步骤B,层叠网的边缘节点接收到来自其它边缘节点的数据包,匹配用于地址映射关系自学习的流表成功后,执行该流表中所包含的创建流表动作和创建组表动作,以创建流表及与所创建流表相关联的组表,提取数据包的内层源地址作为目的地址匹配字段保存在所创建流表中,提取数据包的外层源地址作为待添加外层封装的目的地址保存在所创建组表的动作集中。
边缘节点每次通过执行创建流表动作和创建组表动作进行地址映射关系自学习时,都会判断本次学习到的地址映射关系是否已保存在相关的流表及组表中,并根据判断结果来决定是否创建新的流表和组表。
步骤C,层叠网的边缘节点通过自学习创建流表和组表后,把新创建的流表和组表通告给控制器。
OpenFlow网络要求OpenFlow控制器对其所控制的网络节点具备完全的控制能力,所以在边缘节点上的流表和/或组表由于边缘节点对地址映射关系的自学习而发生变化后,边缘节点需要立即向OpenFlow控制器进行通告。
步骤D,层叠网的边缘节点在接收到来自该节点所连接的用户设备的目的地址与所创建流表匹配的数据包后,执行所匹配流表中的动作以调用所创建的组表,根据组表中的动作集选择策略选择一个动作集,执行动作集以完成数据包外层封装的添加并把动作集中保存的地址作为外层封装的目的地址。
实施例一
图8是根据本发明实施例一的用户设备单归接入层叠网的应用场景示意图,如图8所示,本实施例中,层叠网中支持OpenFlow的边缘节点1、2、3、4分别通过OpenFlow通道与OpenFlow控制器相连,用户设备通过边缘节点1单归接入层叠网。
本实施例中,OpenFlow控制器与层叠网中支持OpenFlow的边缘节点要执行如下步骤:
步骤1,OpenFlow控制器向支持OpenFlow的边缘节点1、2、3、4下发用于地址映射关系自学习的流表,该流表中包含创建流表动作和创建组表动作。
其中,创建流表动作与创建组表动作通过组表标识关联起来,具体地,创建流表动作所创建的流表需包含执行组表(Group Group_ID)动作,且要保证执行组表动作中所包含的组表标识与创建组表动作所创建的组表所包含的组表标识相一致。
步骤2,边缘节点1接收到来自用户设备的数据包,给数据包添加外层封装,然后把携带外层封装的数据包发往目的边缘节点。
边缘节点1给数据包添加外层封装时,会把边缘节点1的地址作为所添加外层封装的源地址,也即外层源地址,而至于所添加外层封装的目的地址,也即外层目的地址,则有两种情况:如果边缘节点1已经保存有来自用户设备的数据包的目的地址与其它边缘节点地址的映射关系,则边缘节点1把上述其它边缘节点地址作为所添加的外层目的地址,这种情况下,只有一个其它边缘节点会收到来自边缘节点1的数据包;如果边缘节点1没有保存任何来自用户设备的数据包的目的地址与其它边缘节点地址的映射关系,则边缘节点1把一个缺省的组播地址作为所添加的外层目的地址,这种情况下,所有其它边缘节点都会收到来自边缘节点1的数据包。
步骤3,边缘节点2、3、4中的任一个节点接收到来自边缘节点1的数据包,匹配用于地址映射关系自学习的流表成功后,执行该流表中所包含的创建流表动作和创建组表动作。
具体地,边缘节点2、3、4中的任一个节点每收到一个与用于地址映射关系自学习的流表相匹配的数据包,都会执行该流表中所包含的创建流表动作和创建组表动作。其中,创建流表动作会创建一个以该数据包的内层源地址作为目的地址匹配字段的流表,如果所创建的流表的匹配字段与节点上的相关流表的匹配字段重复,则不会创建新的流表,而会用所创建的流表对相关流表进行更新,也即,重置相关流表的老化时间。同时,创建组表动作会创建一个与所创建的流表相关联的组表,同时还会为所创建的组表创建一个以该数据包的外层源地址作为待添加外层封装的目的地址的动作集,同样地,如果所创建的流表的匹配字段与节点上的相关流表的匹配字段重复,则也不会创建新的组表,而会用所创建的动作集对与相关流表相关联的相关组表进行更新,也即,在数据包的外层源地址与相关动作集中存储的待添加外层封装的目的地址不同时增加新的动作集。由于边缘节点2、3、4中的任一个节点接收到的所有数据包的外层源地址都是边缘节点1的地址,所以经过对足够多的数据包的地址映射关系的自学习,创建流表动作创建的不同流表以获取的不同的数据包内层源地址作为目的地址匹配字段,而所有创建组表动作创建的与所创建流表相关联的组表都只会包含一个存储了边缘节点1的地址的动作集。
步骤4,边缘节点2、3、4中的任一个节点通过地址映射关系的自学习创建流表和/或组表后,通过OpenFlow通道把新创建或更新的流表和/或组表通告给OpenFlow控制器。
步骤5,边缘节点2、3、4中的任一个节点通过自学习创建流表和组表后,接收到来自本节点所连接用户设备的目的地址与所创建流表匹配的数据包,执行所匹配流表中的执行组表动作以调用所创建的组表并执行组表中的动作集。
具体地,所创建的组表包含一个动作集,其中保存了边缘节点1的地址,执行组表中的动作集的结果就是给来自本节点所连接用户设备的数据包添加外层封装并把边缘节点1的地址作为所添加的外层目的地址。
实施例二
图9是根据本发明实施例二的用户设备双归接入层叠网的应用场景示意图,如图9所示,本实施例中,层叠网中支持OpenFlow的边缘节点1、2、3、4分别通过OpenFlow通道与OpenFlow控制器相连,用户设备通过边缘节点1和2双归接入层叠网。
本实施例中,OpenFlow控制器与层叠网中支持OpenFlow的边缘节点要执行如下步骤:
步骤1,OpenFlow控制器向支持OpenFlow的边缘节点1、2、3、4下发用于地址映射关系自学习的流表,该流表中包含创建流表动作和创建组表动作。
其中,创建流表动作与创建组表动作通过组表标识关联起来,具体地,创建流表动作所创建的流表需包含执行组表动作,且要保证执行组表动作中所包含的组表标识与创建组表动作所创建的组表所包含的组表标识相一致。
步骤2,边缘节点1和2分别接收到来自用户设备的数据包,给数据包添加外层封装,然后把携带外层封装的数据包发往目的边缘节点。
边缘节点1给数据包添加外层封装时,会把边缘节点1的地址作为所添加外层封装的源地址,也即外层源地址,而至于所添加外层封装的目的地址,也即外层目的地址,则有两种情况:如果边缘节点1已经保存有来自用户设备的数据包的目的地址与其它边缘节点地址的映射关系,则边缘节点1把上述其它边缘节点地址作为所添加的外层目的地址,这种情况下,只有一个其它边缘节点会收到来自边缘节点1的数据包;如果边缘节点1没有保存任何来自用户设备的数据包的目的地址与其它边缘节点地址的映射关系,则边缘节点1把一个缺省的组播地址作为所添加的外层目的地址,这种情况下,所有其它边缘节点都会收到来自边缘节点1的数据包。
同样地,边缘节点2给数据包添加外层封装时,也会把边缘节点2的地址作为所添加的外层源地址,而至于外层目的地址,边缘节点2也会根据是否已经保存有来自用户设备的数据包的目的地址与其它边缘节点地址的映射关系,选择其它边缘节点地址或缺省的组播地址作为所添加的外层目的地址。
步骤3,边缘节点3和4中的任一个节点接收到来自边缘节点1和2的数据包,匹配用于地址映射关系自学习的流表成功后,执行该流表中所包含的创建流表动作和创建组表动作。
具体地,边缘节点3和4中的任一个节点每收到一个与用于地址映射关系自学习的流表 相匹配的数据包,都会执行该流表中所包含的创建流表动作和创建组表动作。其中,创建流表动作会创建一个以该数据包的内层源地址作为目的地址匹配字段的流表,如果所创建的流表的匹配字段与节点上的相关流表的匹配字段重复,则不会创建新的流表,而会用所创建的流表对相关流表进行更新,也即,重置相关流表的老化时间。同时,创建组表动作会创建一个与所创建的流表相关联的组表,同时还会为所创建的组表创建一个以该数据包的外层源地址作为待添加外层封装的目的地址的动作集,同样地,如果所创建的流表的匹配字段与节点上的相关流表的匹配字段重复,则也不会创建新的组表,而会用所创建的动作集对与相关流表相关联的相关组表进行更新,也即,在数据包的外层源地址与相关动作集中存储的待添加外层封装的目的地址不同时增加新的动作集。由于边缘节点3和4中的任一个节点接收到的数据包内层源地址相同的多个数据包中,既有数据包外层源地址为边缘节点1的地址的数据包,也有数据包外层源地址为边缘节点2的地址的数据包,所以经过对足够多的数据包的地址映射关系的自学习,创建流表动作创建的不同流表以获取的不同的数据包内层源地址作为目的地址匹配字段,而所有创建组表动作创建的与所创建流表相关联的组表都会包含两个动作集,其中一个动作集存储了边缘节点1的地址,另一个动作集存储了边缘节点2的地址。
步骤4,边缘节点3和4中的任一个节点通过地址映射关系的自学习创建流表和/或组表后,通过OpenFlow通道把新创建或更新的流表和/或组表通告给OpenFlow控制器。
步骤5,边缘节点3和4中的任一个节点通过自学习创建流表和组表后,接收到来自本节点所连接用户设备的目的地址与所创建流表匹配的数据包,执行所匹配流表中的执行组表动作以调用所创建的组表并执行组表中的动作集。
具体地,所创建的组表包含两个动作集,其中分别保存了边缘节点1的地址和边缘节点2的地址,执行组表中的动作集的结果就是给来自本节点所连接用户设备的数据包添加外层封装并把边缘节点1或2的地址作为所添加的外层目的地址。至于是选择边缘节点1的地址还是边缘节点2的地址作为所添加的外层目的地址,则由所创建组表的动作集选择策略来决定。
综上所述,本发明提供了一种层叠网中地址映射关系自学习的方法,OpenFlow控制器通过下发包含创建流表动作和创建组表动作的流表,使得层叠网的边缘节点能够针对从中间节点接收的数据包自动学习一对一或一对多的地址映射关系,从而大大减少了需要上送控制器的数据包数量,因此,可以减轻层叠网中OpenFlow控制器和OpenFlow通道的压力。
在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。
在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步 骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
工业实用性
通过本发明实施例,采用层叠网中的边缘节点从OpenFlow控制器接收表项信息,其中,该表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与该流表相关联的组表的第二指示信息;边缘节点接收数据包;边缘节点根据表项信息为数据包创建流表以及与该流表关联的组表,并将获取的与数据包对应的地址映射关系存储至创建的上述流表和组表中。解决了相关技术中OpenFlow协议无法实现层叠网中地址映射关系自学习的问题,进而减少了需要上送控制器的数据包数量,减轻了层叠网中OpenFlow控制器和OpenFlow通道的压力。

Claims (14)

  1. 一种地址映射关系的学习方法,包括:
    层叠网中的边缘节点从OpenFlow控制器接收表项信息,其中,所述表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与所述流表相关联的组表的第二指示信息;
    所述边缘节点接收数据包;
    所述边缘节点根据所述表项信息为所述数据包创建流表以及与该流表关联的组表,并将获取的与所述数据包对应的地址映射关系存储至创建的所述流表和组表中。
  2. 根据权利要求1所述的方法,其中,所述第二指示信息中携带有以下信息:
    动作集选择策略。
  3. 根据权利要求1所述的方法,其中,所述边缘节点根据所述表项信息为所述数据包创建流表以及与该流表关联的组表之前包括:
    所述边缘节点在本地查找与所述数据包匹配的所述表项信息。
  4. 根据权利要求1所述的方法,其中,将获取的与所述数据包对应的地址映射关系存储至创建的所述流表和组表中包括:
    提取所述数据包的内层源地址作为目的地址匹配字段保存在所述流表中;
    提取所述数据包的外层源地址作为添加至匹配所述流表的数据包的外层目的地址保存在所述组表的动作集中。
  5. 根据权利要求1所述的方法,其中,所述边缘节点根据所述表项信息为所述数据包创建流表以及与该流表关联的组表之后,所述方法还包括:
    所述边缘节点将创建的所述流表和组表发送给所述OpenFlow控制器。
  6. 根据权利要求1至5中任一项所述的方法,其中,所述第一指示信息和所述第二指示信息通过包含相同的组表标识生成规则进行关联。
  7. 一种地址映射关系的学习方法,包括:
    OpenFlow控制器将表项信息发送给层叠网中的边缘节点,其中,所述表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与所述流表相关联的组表的第二指示信息,其中所述表项信息为所述边缘节点为接收到的数据包创建流表以及与该流表关联的组表,并将获取的与所述数据包对应的地址映射关系存储至创建的所述流表和组表中的依据。
  8. 根据权利要求7所述的方法,其中,所述第二指示信息中携带有以下信息:
    动作集选择策略。
  9. 根据权利要求7所述的方法,其中,包括:
    所述OpenFlow控制器接收所述边缘节点创建的流表和组表。
  10. 一种地址映射关系的学习装置,所述装置应用于层叠网中的边缘节点,所述装置包括:
    第一接收模块,设置为从OpenFlow控制器接收表项信息,其中,所述表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与所述流表相关联的组表的第二指示信息;
    第二接收模块,设置为接收数据包;
    处理模块,设置为根据所述表项信息为所述数据包创建流表以及与该流表关联的组表,并将获取的与所述数据包对应的地址映射关系存储至创建的所述流表和组表中。
  11. 根据权利要求10所述的装置,其中,所述第二指示信息中携带有以下信息:
    动作集选择策略。
  12. 根据权利要求10所述的装置,其中,所述装置还包括:
    第一提取模块,设置为提取所述数据包的内层源地址作为目的地址匹配字段保存在所述流表中;
    第二提取模块,设置为提取所述数据包的外层源地址作为添加至匹配所述流表的数据包的外层目的地址保存在所述组表的动作集中。
  13. 一种地址映射关系的学习装置,所述装置应用于OpenFlow控制器,所述装置包括:
    发送模块,设置为将表项信息发送给层叠网中的边缘节点,其中,所述表项信息中包括用于指示创建流表的第一指示信息和用于指示创建与所述流表相关联的组表的第二指示信息,其中所述表项信息为所述边缘节点为接收到的数据包创建流表以及与该流表关联的组表,并将获取的与所述数据包对应的地址映射关系存储至创建的所述流表和组表中的依据。
  14. 根据权利要求13所述的装置,其中,所述第二指示信息中携带有以下信息:
    动作集选择策略。
PCT/CN2015/090458 2015-04-30 2015-09-23 地址映射关系的学习方法及装置 WO2016173196A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510218659.9 2015-04-30
CN201510218659.9A CN106209634B (zh) 2015-04-30 2015-04-30 地址映射关系的学习方法及装置

Publications (1)

Publication Number Publication Date
WO2016173196A1 true WO2016173196A1 (zh) 2016-11-03

Family

ID=57199642

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/090458 WO2016173196A1 (zh) 2015-04-30 2015-09-23 地址映射关系的学习方法及装置

Country Status (2)

Country Link
CN (1) CN106209634B (zh)
WO (1) WO2016173196A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108574637B (zh) * 2017-03-07 2022-09-27 中兴通讯股份有限公司 一种地址自学习的方法、装置及交换机
CN113055287B (zh) * 2019-12-27 2022-09-30 中国电信股份有限公司 数据包的处理方法、装置和计算机可读存储介质
CN116708357B (zh) * 2023-06-08 2024-02-23 北京志凌海纳科技有限公司 基于ovs的虚拟化网络ip地址发现的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103067534A (zh) * 2012-12-26 2013-04-24 中兴通讯股份有限公司 一种NAT实现系统、方法及Openflow交换机
US20130322443A1 (en) * 2012-05-29 2013-12-05 Futurewei Technologies, Inc. SDN Facilitated Multicast in Data Center
CN104065764A (zh) * 2014-07-05 2014-09-24 中国科学技术大学 一种软件定义网络中基于地址替换的移动管理系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103428094B (zh) * 2013-08-12 2016-08-17 杭州华三通信技术有限公司 开放流OpenFlow系统中的报文转发方法及装置
CN104253711B (zh) * 2014-09-25 2018-08-24 新华三技术有限公司 一种SDN网络中Openflow的Group表的管理方法和设备
CN104378299B (zh) * 2014-11-20 2017-10-17 新华三技术有限公司 流表项处理方法以及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130322443A1 (en) * 2012-05-29 2013-12-05 Futurewei Technologies, Inc. SDN Facilitated Multicast in Data Center
CN103067534A (zh) * 2012-12-26 2013-04-24 中兴通讯股份有限公司 一种NAT实现系统、方法及Openflow交换机
CN104065764A (zh) * 2014-07-05 2014-09-24 中国科学技术大学 一种软件定义网络中基于地址替换的移动管理系统

Also Published As

Publication number Publication date
CN106209634A (zh) 2016-12-07
CN106209634B (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
US11563602B2 (en) Method and apparatus for providing a point-to-point connection over a network
US11095558B2 (en) ASIC for routing a packet
US11005752B2 (en) Packet transmission
CN106375231B (zh) 一种流量切换方法、设备及系统
US9203765B2 (en) Flow based network service insertion using a service chain identifier
US9736263B2 (en) Temporal caching for ICN
WO2021242428A1 (en) Loop prevention in virtual l2 networks
CN107547243B (zh) 一种报文转发方法及装置
CN111092801B (zh) 数据传输方法及装置
JP2014135721A (ja) データセンタネットワークのトラフィックを分配するための装置および方法
WO2016107594A1 (en) Accessing external network from virtual network
WO2020135568A1 (en) Client-equipment-peering virtual route controller
CN104301251A (zh) 一种QoS处理方法、系统及设备
US20180077048A1 (en) Controller, control method and program
US10574570B2 (en) Communication processing method and apparatus
US20160316011A1 (en) Sdn network element affinity based data partition and flexible migration schemes
WO2019085975A1 (zh) 一种网络拓扑显示方法及网络管理设备
US20180088972A1 (en) Controller, control method and program
US10904130B2 (en) Method for scalable computer network partitioning
JP2018518925A (ja) パケット転送
WO2016173196A1 (zh) 地址映射关系的学习方法及装置
WO2016177180A1 (zh) 一种OpenFlow交换机能力上报的方法及装置
WO2018161827A1 (zh) 一种地址自学习的方法、装置及交换机
WO2016188222A1 (zh) 一种业务报文转发方法、装置及通信系统
WO2016044116A1 (en) Method for end point identification in computer networks

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: 15890571

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15890571

Country of ref document: EP

Kind code of ref document: A1