This application claims priority to CN Patent Application No. 201310117323.4, filed on Apr. 7, 2013, entitled “Method and Device for Processing Aggregation in IRF System,” which is incorporated herein by reference.
Virtualization technology, such as intelligent resilient framework (IRF) and virtual switching system (VSS), allows multiple network devices to be combined into a logical network device after necessary configurations. The resulting logical network device offers streamlined management, high reliability, and powerful network expansion capability.
In the drawings:
Use of the same reference numbers in different figures indicates similar or identical elements.
As used herein, the term “includes” means includes but not limited to, the term “including” means including but not limited to. The terms “a” and “an” are intended to denote at least one of a particular element. The term “based on” means based at least in part on. The term “or” is used to refer to a nonexclusive such that “A or B” includes “A but not B,” “B but not A,” and “A and B” unless otherwise indicated.
Multiple physical network devices (e.g., switches or routers) may be virtualized to form one logical network device. In the logical network device, physical ports on different member devices may be connected to the same neighbor device (e.g., a server) and combined to form an aggregated port, which is then connected by an aggregated link to an aggregated port on the neighbor device. Such cross-device aggregation increases bandwidth and provides redundancy.
To implement cross-device aggregation, the control plane of a member device creates a link aggregation group (LAG) on the data plane of each member device, adds the physical ports connected to the same neighbor device to the LAG, and enables local-first load sharing for the LAG. When local-first load sharing is enabled, the data plane of each member device distributes traffic preferentially to a member port of the LAG local to the data plane rather than all the member ports of the LAG in order to reduce traffic between member devices.
When the control plane of the logical network device learns a new address (e.g., a media access control (MAC) address) from one of the member ports of the LAG, the control plane records the mapping between the address and the LAG ID in the data plane of each member device. When the data plane of a member device receives a packet destined for the same address, it looks up the address, finds the corresponding LAG ID, and performs hashing based at least partly on the LAG ID to select a member port of the LAG to forward the packet. As local-first load sharing is enabled, the data plane preferentially sends the packet from a local member port of the LAG. However if the link between the local member port and the neighbor device fails, the data plane sends the packet to another member device to forward the packet to its destination.
As described above, mappings between addresses and LAG IDs are recorded in the data plane of each member device in a logical network device. In actual network applications, each member device may have more than 1,000 physical ports that are each to be connected to a distinct neighbor device and added to a district LAG for cross-device aggregation. However, data plane hardware of each member device may support a smaller number of LAGs (e.g., 512 to 1,000 LAGs). Thus what are needed are method and apparatus to provide a greater number of cross-device aggregation groups that is not limited by data plane hardware in network devices.
In examples of the present disclosure, a control plane in a logical network device creates a new type of link aggregation group referred to as a “service link aggregation group.” Similar to the LAG previously described, the service link aggregation group includes one port from each member device and all member ports in the service link aggregation group are connected to the same neighbor device. Unlike the LAG previously described, the control plane creates the service link aggregation group at the control plane but not in the data plane of each member device in the logical network device.
When the control plane learns new a new address from one of the member ports, the control plane records a different mapping in each data plane of the member devices. For each data plane, the control plane records a mapping between the address and a local member port on the data plane instead of a link aggregation group ID. Thus the number of service ink aggregate groups is not limited by data plane hardware as the service link aggregation groups are not LAGs created at the data planes and the data planes do not use LAG IDs to determine hashing to forward packets.
Member devices 112 and 114 have respective uplink ports 116 and 118 connected to ports on neighbor device 106, and respective downlink ports 120 and 122 connected to ports on neighbor device 110. Member device 112 has a control plane 124 and a data plane 126. Control plane 124 may be a device or a control board with a central processing unit (CPU) system (e.g., processor and memories) and a stacking module. Data plane 126 may be a device or a switch fabric board with a CPU system and a switching chip. Similarly member device 114 has a control plane 128 and a data plane 130.
Member device 112 may be the master device in logical network device 102 so its control plane 124 serves as the control plane of logical network device 102. Member device 114 may be the slave device in logical network device 102 so its control plane 128 serves as a backup to control plane 124. Control plane 124 configures the forwarding functions in data planes 126 and 130 of respective member devices 112 and 114.
In examples of the present disclosure, control plane 124 creates a service link aggregation group 132 on the control plane itself. Service link aggregation group 132 includes one port from each member device and all ports in service link aggregation group 132 are connected to the same neighbor device. For example, service link aggregation group 132 includes ports 120 and 122 connected to neighbor device 110.
When control plane 124 learns a new address associated with a port in logical network device 102, control plane 124 determines if the port is a member of a service link aggregation group. For example, control plane 124 learns address 1 from port 120 and then determines if port 120 is a member of a service link aggregation group. Similarly control plane 124 learns address 2 from port 122 and then determines if port 122 is a member of a service link aggregation group.
When the port is a member of a service link aggregation group, control plane 124 records mappings between the address and the member ports in the data planes of the member devices. Control plane 124 records a different mapping in each member device's data plane. For each data plane, control plane 124 records a mapping between the address and a local member port on the data plane. For example, when control plane 124 learns address 1 from port 120, control plane 124 records a mapping 152 of the relationship between address 1 and port 120 in an address table 134 of data plane 126, and a mapping 158 of the relationship between address 1 and local port 122 in an address table 136 of data plane 130. Similarly, when control plane 124 learns address 2 from port 122, control plane 124 records a mapping 154 of the relationship between address 2 and port 120 in address table 134, and a mapping 156 of the relationship between address 2 and port 122 in address table 136.
When a data plane receives a packet destined for an address, the data plane looks for an egress interface for the address in its address table. For example, when data plane 126 receives a packet destined for address 1, data plane 126 looks for a corresponding egress interface for address 1 in its address table 134. When the data plane finds the corresponding egress interface in its address table, the data plane forwards the packet through the egress interface. For example, data plane 126 finds the corresponding egress interface of port 120 for address 1 in its address table 134 and forwards the packet through port 120.
When control plane 124 learns a port has gone down in logical network device 102, control plane 124 determines if the port is a member of a service link aggregation group. For example, referring to
When the port is a member of a service link aggregation group, control plane 124 updates mapping(s) for the down port so packets destined for address(es) learned from the port(s) in the service link aggregation group are forwarded through a stacking port to another member device. When a data plane has multiple stacking ports, control plane 124 may select one of the stacking ports based on a predetermined selection strategy. For example, when port 120 changes to the link down state, control plane 124 updates mappings 152 and 154 for port 120 to change the egress interface from port 120 to stacking port 142. This causes packets destined for address 1 to be forwarded to member device 114, which forwards the packet based on its forwarding table 136.
When control plane 124 learns a port in logical network device 102 has recovered, control plane 124 determines if the port is a member of a service link aggregation group. For example, control plane 124 detects port 120 has recovered and determines if port 120 is a member of a service link aggregation group.
When the recovered port is a member of a service link aggregation group, control plane 124 updates the mapping(s) for the recovered port so packets destined for the address(es) learned from the port(s) in the service link aggregation group are again forward through the member port instead of a stacking port. For example, when port 120 recovers to the link up state, control plane 124 updates mappings 152 and 154 for port 120 to change the egress interface from stacking port 142 to port 120.
In block 302, the control plane creates a service link aggregation group at the control plane itself but not at the data planes of logical network device 102. In other words, the control plane creates, saves, and manages a data structure for the service link aggregation group with control plane software or hardware but not with data plane software or hardware. The data structure for the service link aggregation group may identify member ports and addresses learned from the member ports. A member port may be identified as a specific port on a member device. For example, control plane 124 (
In block 304, the control plane adds a local port from its member device to the service link aggregation group. For example, control plane 124 adds port 120 (
In block 306, the control plane adds other port(s) from other member device(s) to the service link aggregation group. Thus the service link aggregation group includes one port from each member device and all the ports in the service link aggregation group are connected to the same neighbor device. For example, control plane 124 adds port 122 (
In block 402, the control plane learns a new address associated with a port in logical network device 102. The control plane may learn a new address associated with a port when a packet with an unknown source address arrives at the port of a data plane on a member device and the data plane provides the port and the address to the control plane. The packet may be a layer 2 packet or a layer 3 packet. For example, control plane 124 (
In block 404, the control plane determines if the port is a member of any service link aggregation group. To do so, the control plane searches for the port in service link aggregation groups. If the control plane finds the port in a service link aggregation group, block 404 may be followed by block 406. Otherwise method 400 may end or block 404 may be followed by block 402 to process the next new address. For example, control plane 124 finds port 120 (
In block 406, the control plane configures the local data plane of the member device with a mapping between the address and the port of the member device in the service link aggregation group. For example, control plane 124 records a mapping 152 (
In block 408, the control plane configures other data plane(s) of other member device(s) with other mapping(s) between the address and other port(s) of the other member device(s) in the service link aggregation group. For example, control plane 124 records a mapping 158 of the relationship between address 1 and port 122 in address table 136 (
As described above, the control plane records a different mapping in each member device's data plane, and each mapping records the relationship between the address and a port of the member device in the service link aggregation group.
When the address is learned from a layer 2 packet, address table 136 is a layer 2 forwarding table and the address includes a source media access control (MAC) address and a virtual local area network (VLAN) identifier. Table 1 shows a layer 2 forwarding table 136 in examples of the present disclosure.
When the address is learned from a layer 3 packet, address table 136 is layer 3 forwarding table and the address includes a source Internet Protocol (IP). Table 2 shows a layer 3 forwarding table 136 in examples of the present disclosure.
Method 400 may end or block 408 may be followed by block 402 to process the next new address.
In block 502, the control plane learns a port of a member device has gone down (e.g., changed to the link down state). For example, control plane 124 (
In block 504, the control plane determines if the down port is a member of any service link aggregation group. To do so, the control plane searches for the down port in service link aggregation groups. If the control plane finds the down port in a service link aggregation group, block 504 may be followed by block 506. Otherwise method 500 may end or block 504 may be followed by block 502 to process the next new address. For example, when port 120 changes to the link down state, control plane 124 determines if port 120 is a member of any service link aggregation group and finds port 120 to be a member of service link aggregation group 132 (
In block 506, the control plane changes mapping(s) between address(es) and the down port on the data plane where the down port is located so packets destined for address(es) learned from the port(s) in the service link aggregation group are forwarded through a stacking port from the member device to another member device. The control plane changes the mapping(s) to replace the down port with a stacking port as their egress interface. The control plane may find the mapping(s) based on the address(es) in the service link aggregation group or the down port, or the mapping(s) may identify the service link aggregation group in the address table. As previously described, when the data plane has multiple stacking ports, the control plane may select one of the stacking ports based on a predetermined selection strategy. For example, when port 120 changes to the link down state, control plane 124 updates address table 134 (
In block 602, the control plane learns a port has recovered (e.g., changed to the link up state). For example, control plane 124 (
In block 604, the control plane determines if the recovered port is a member of any service link aggregation group. If so, block 604 may be followed by block 606. Otherwise method 600 may end or block 604 may be followed by block 602 to process the next port. For example, control plane 124 determines if recovered port 120 is a member of a service link aggregation group and finds recovered port 120 to be a member of service link aggregation group 132.
In block 606, the control plane updates the data plane where the member port is located so packets destined for address(es) learned from the port(s) in the service link aggregation group are forwarded through the recovered port instead of a stacking port. The control plane changes the mapping(s) to replace the stacking port with the recovered port as their egress interface. The control plane may find the mapping(s) based the original copy of address table kept at the control plane. For example, when port 120 recovers to the link up state, control plane 124 updates address table 134 (
Data plane 704 includes a transmitter 740 to transmit packets received by receiver 730.
Data plane 704 includes a link state detector 750 to detect link states of ports on the member device 700, and control plane 702 includes a link state processor 760. Link state detector 750 and other link state detector(s) on other member device(s) detect port states and inform link state processor 760. Link state processor 760 implements method 500 (
Various other adaptations and combinations of features of the examples disclosed are within the scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
201310117323.4 | Apr 2013 | CN | national |