Techniques for realizing service chaining
AssigneeInternational Business Machines Corporation
InventorsTian Cheng Liu, Baohua Yang, Yue Zhang, Kai Zheng
Life of this patent
Estimating the term…
Abstract
Techniques for realizing service chaining, a corresponding apparatus and an SDN (Software Defined Network) controller are disclosed. The method includes temporarily modifying an original destination MAC (media access control) address of a packet and an original source MAC address the packet during the time the packet makes a hop from one middlebox to another. A restore operation is used to restore the original source and destination MAC addresses after the hop is made.
Claims9
A method comprising:
- receiving a packet belonging to a service chain, which packet:
- (i) includes an original destination MAC (media access control) address, (ii) includes an original source MAC address, and (iii) is to be sent to a switch in a next hop, including a middlebox, in the service chain;
- in response to receipt of the packet, modifying the original destination MAC address of the packet into a modified destination MAC address corresponding to the middlebox in the next hop in the service chain;
- in response to receipt of the packet, modifying the original source MAC address of the packet into a modified source MAC address corresponding to code data encoded with state information of the packet;
- sending the packet to the middlebox in the next hop in the service chain;
- receiving the packet at the next hop in the service chain so that the next hop becomes a current hop in the service chain;
- in response to receipt of the packet at the current hop of the service chain, restoring the modified destination MAC address of the packet to the original destination MAC address of the packet;
- and
- in response to receipt of the packet at the current hop of the service chain, restoring the modified source MAC address of the packet to the original source MAC address of the packet.
An apparatus comprising:
- a first module configured to, in response to receiving a packet at a switch, look up a matching rule in a forward table according to the source MAC (media access control) address, the destination MAC address and the receive port of the packet, with each rule in the forward table designating:
- (i) a mapping between the source MAC address, the destination MAC address and the receive port of the packet, (ii) a modify operation to be performed on the source MAC address and the destination MAC address of the packet, (iii) a restore operation to be performed on the source MAC address and the destination MAC address of the packet, and (iv) a forward port of the packet;
- a second module configured to, in response to finding the matching rule in the forward table, perform the modify/restore operation designated in the matching rule on the source MAC address and destination MAC address of the packet;
- and
- a third module configured to forward the packet through the forward port designated in the matching rule;
- wherein:
- the modify operation includes the following sub-operations:
- modifying the original destination MAC address of the packet into a modified destination MAC address of the middlebox in the next hop in the service chain, and modifying the original source MAC address of the packet into a modified source MAC address corresponding to code data encoded the state information of the packet;
- and
- the restore operation includes the following sub-operations:
- restoring the modified destination MAC address of the packet to the original destination MAC address of the packet, and restoring the modified source MAC address of the packet to the original source MAC address of the packet.
An SDN (Software Defined Network) controller comprising:
- a middlebox manager configured to manage middleboxes and fake MAC (media access control) addresses of the middleboxes;
- a service chain manager configured to manage service chains by maintaining a service chain table, the service chain table including the mapping between service chain identification and a middlebox list of the service chain;
- a session manager configured to manage sessions by maintaining a session table, the session table including the mapping between the session identification, the service chain identification, the original destination MAC address and the original source MAC address of a packet;
- a packet processing module configured to, in response to receiving a packet from a switch:
- determine the service chain and the session to which the packet belongs and the current position of the packet in the service chain according to the source MAC address and the destination MAC address of the packet and the session table and the service chain table, so as to determine any modify operation and/or any restore operation to be performed on the source MAC address and the destination MAC address of the packet and the forward port of the packet,
- form a rule comprising the mapping between the source MAC address, the destination MAC address, the receive port of the packet, and the modify or restore operation to be performed on the source MAC address and the destination MAC address of the packet and the forward port,
- perform the determined modify and/or restore operation on the source MAC address and the destination MAC address of the packet, and forward the packet through the determined forward port, and
- send the formed rule to the switch to be stored by the switch in a forward table for use in processing and forwarding of subsequent packets;
- wherein:
- the modify operation includes the following sub-operations:
- (i) modifying the original destination MAC address of the packet into a designated MAC address of the middlebox in the next hop in the service chain, and (ii) modifying the original source MAC address of the packet into code data encoded with state information of the packet;
- and
- the restore operation includes the following sub-operations:
- (i) restoring the modified destination MAC address of the packet to the original destination MAC address of the packet, and (ii) restoring the source MAC address of the packet to the original source MAC address of the packet.
Dependencies are inferred from the claim text.