System and method for layer 3 proxy routing

A system and method for efficiently handling layer 3 proxy routing after mobile devices move between subnets includes a controller and one or more ports coupled to the controller. The controller is configured to receive a gateway address request on the one or more ports, determine whether the gateway address request is received on an inter-domain link from a second gateway, determine whether the gateway address request is originated from the second gateway when the gateway address request is received on the inter-domain link, determine a layer 2 address of the second gateway when the gateway address request is not originated from the second gateway, form a gateway address response including the layer 2 address of the second gateway, and transmit the gateway address response on one of the one or more ports.

BACKGROUND

The present disclosure relates generally to information handling systems, and more particularly to layer 3 proxy routing.

Computer networks form the interconnection fabric that enables reliable and rapid communications between computer systems and data processors that are in both close proximity to each other and at distant locations. These networks create a vast spider web of intranets and internets for handling all types of communication and information. Networks are often divided into different subnets. When mobile devices move from one subnet to another subnet, the network should efficiently handle packet routing. Making all of this possible is a vast array of network switching products, such as gateway routers, that make routing decisions in order to deliver packets of information from a source system or first subnet, to a destination system or second subnet. Due to the size, complexity, and dynamic nature of these networks, sophisticated network switching products are often required to continuously make routing decisions and to update routing information as network configurations change. The routing decisions may be further complicated by use of these networks by mobile devices, each having different types and amounts of data that needs to be transferred as network traffic.

Accordingly, it would be desirable to provide a method and a system to efficiently handle routing after mobile devices move between subnets.

SUMMARY

According to some embodiments, a gateway includes a controller and one or more ports coupled to the controller. The controller is configured to receive a gateway address request on the one or more ports, determine whether the gateway address request is received on an inter-domain link from a second gateway, determine whether the gateway address request is originated from the second gateway when the gateway address request is received on the inter-domain link, determine a layer 2 address of the second gateway when the gateway address request is not originated from the second gateway, form a gateway address response including the layer 2 address of the second gateway, and transmit the gateway address response on one of the one or more ports.

According to some embodiments, an information handling system includes a first gateway configured to be coupled to a second gateway using an inter-domain link. The first gateway is configured to receive a gateway address request, determine whether the gateway address request is received on the inter-domain link, determine whether the gateway address request is originated from the second gateway when the gateway address request is received on the inter-domain link, determine a layer 2 address of the second gateway when the gateway address request is not originated from the second gateway, form a gateway address response including the layer 2 address of the second gateway, and transmit the gateway address response.

According to some embodiments, a method of managing a network includes receiving a gateway address request at a first gateway, determining whether the gateway address request is received on an inter-domain link from a second gateway, determining whether the gateway address request is originated from the second gateway when the gateway address request is received on the inter-domain link, determining a layer 2 address of the second gateway when the gateway address request is not originated from the second gateway, forming a gateway address response including instructions for associating a layer 3 address of the first gateway with the layer 2 address of the second gateway, and transmitting the gateway address response.

DETAILED DESCRIPTION

FIG. 1Ashows a simplified diagram of a network100according to some embodiments. As shown inFIG. 1A, network100may include a Subnet-1110. Subnet-1110may include a gateway router112configured to route data packets to other subnets in network100. Gateway router112may include a controller114. In some examples, controller114may be configured to manage and/or control the operation of gateway router112. In some examples, controller114may include one or more processors. Gateway router112also includes a memory115. In some embodiments, controller114is coupled to memory115. Memory115may include one or more forwarding information tables. In some examples, the forwarding information tables may include virtual LAN (VLAN) tables, a layer 2 (L2) table116, a layer 3 (L3) table117, layer 3 forwarding information bases, access control lists (ACLs), flow processing (FP) tables, and/or the like. In some examples, L2 table116may be used by gateway router112and/or controller114to store layer 2 addresses of the other gateway routers in network100. L2 table116may also be used to store related layer 2 addresses of other network switching devices within Subnet-1110, such as network device111. In some examples, L3 table117may be used by gateway router112and/or controller114to store routing information. In some examples, controller114may maintain and/or update the one or more forwarding information tables (for example, L2 table116and L3 table117) in memory115. In some examples, the one or more forwarding information tables may be implemented using data structures other than tables and/or using databases. In some examples, the layer 2 addresses may include media access control (MAC) addresses.

Referring toFIG. 1A, network100may include a Subnet-2120. Subnet-2120may include a gateway router122configured to route data packets to other subnets in network100. Gateway router122may include a controller124. In some examples, controller124may be configured to manage and/or control the operation of gateway router122. In some examples, controller124may include one or more processors. Gateway router122also includes a memory125. In some embodiments, controller124is coupled to memory125. Memory125may include one or more forwarding information tables. In some examples, the forwarding information tables may include VLAN tables, a MAC table/L2 table126, a L3 table127, layer 3 forwarding information bases, ACLs, FP tables, and/or the like. In some examples, L2 table126may be used by gateway router122and/or controller124to store layer 2 addresses of the other gateway routers in network100. L2 table126may also be used to store related layer 2 addresses of other network switching devices within Subnet-2120, such as network device121. In some examples, L3 table127may be used by gateway router122and/or controller124to store routing information. In some examples, controller124may maintain and/or update the one or more forwarding information tables (for example, L2 table126and L3 table127) in memory125. In some examples, the one or more forwarding information tables may be implemented using data structures other than tables and/or using databases. In some examples, the layer 2 addresses may include MAC addresses. In some examples, gateway router122may perform substantially the same function as gateway router112does.

As illustrated inFIG. 1A, gateway router112is connected to gateway router122by a link160. Although only one network link is shown in link160as illustrated inFIG. 1A, link160may include one or more network links that are used to couple gateway router112to gateway router122. In some examples, link160may be configured as a link aggregation group (LAG). Alternatively, network link160may be a virtual link trunking (VLT) LAG. As shown inFIG. 1A, because link160is between Subnet-1110and Subnet-2120, link160is an inter-domain link.

Still referring toFIG. 1A, network100includes a network device111. In some examples, network device111includes an electronic device, e.g., a computer. In some examples, network device111may include a layer 2 network switching device, configured to forward data packets to and from other network devices. For example, the layer 2 network switching device may be selected from an Ethernet switch, and/or an aggregation pair, etc. In some examples, network device111includes a router, configured to handle layer 3 routing using the Internet Protocol within Subnet-1110. Although one network device is shown in Subnet-1110inFIG. 1A, a person having ordinary skill in the art would be able to understand that Subnet-1110may include any number of network devices configured in any suitable topology.

Network100ofFIG. 1Aalso includes a network device121. In some examples, network device121includes an electronic device, e.g., a computer. In some examples, network device121may include a layer 2 network switching device, configured to forward data packets to and from other network devices. For example, the layer 2 network switching device may be selected from an Ethernet switch, and/or an aggregation pair, etc. In some examples, networks device121includes a router, configured to handle layer 3 routing using Internet Protocol within Subnet-2120. Although one network device is shown in Subnet-2120inFIG. 1A, a person having ordinary skill in the art would be able to understand that Subnet-2120may include any number of network devices configured in any suitable topology.

In some embodiments, network device111is coupled to one or more ports113of gateway router112using a link118. Link118may be a single network link. Link118may include one or more network links that are used to couple network device111to gateway router112. In some examples, when there are more than one network link in link118, a LAG link may be formed between the network device111and gateway router112. In some embodiments, network device111may not be directly coupled to gateway router112, but may be coupled through one or more network switching devices (not shown).

In some embodiments, network device121is coupled to one or more ports123of gateway router122using a link128. Link128may be a single network link. Link128may include one or more network links that are used to couple network device121to gateway router122. In some examples, when there are more than one network link in link128, an LAG may be formed between the network device121and gateway router122. In some embodiments, network device121may not be directly coupled to gateway router122, but may be coupled through one or more network switching devices (not shown).

FIG. 1Bshows a flow of data packets in network100according to some embodiments. In some examples as shown inFIGS. 1A-1F, network device121is originally located in Subnet-2120. When network device121moves to Subnet-1110, network device121has been relocated from being coupled to gateway router122, to being coupled to gateway router112. In some embodiments, network device121may be directly coupled to gateway router112via link119in Subnet-1110. In one example, network device121may be unplugged from gateway router122, and then plugged in to gateway router112. In some embodiments, network device121may not be directly coupled to gateway router112, but may be coupled through one or more network switching devices (not shown). After network device121has moved to Subnet-1110, network device121may retain its layer 3 address from Subnet-2120. In some examples network device121may have received the layer 3 address during provisioning from a Dynamic Host Configuration Protocol (DHCP) server. In some examples, the layer 3 address may be an IP address.

Still referring toFIG. 1B, because the layer 3 address of network device121remains unchanged, the default gateway for network device121remains gateway router122. Network device121may send a gateway address request asking for the layer 2 address of its default gateway, i.e. gateway122. Sent by network device121to gateway router112, the gateway address request is forwarded on one or more ports113of gateway router112, then via link160to gateway router122. When receiving the gateway address request, gateway router122may respond with the layer 2 address of gateway router122, which is the default gateway of network device121. In some examples, the gateway address request may be an address resolution protocol (ARP) request. In some examples, the layer 2 address may be a MAC address.

In some examples as illustrated inFIG. 1B, when network device121sends data packets destined to network device111, data packets may be first received at gateway router112via path171. Because the layer 3 address of network device121remains associated with Subnet-2120, data packets are sent to the default gateway122of network device121via path172. Based on the routing information stored in gateway router122, gateway router122may recognize network device111is located in Subnet-1110and connected to gateway router112. Gateway router122may then route the data packets back to gateway router112via path173. Gateway router112may then forward the data packets to network device111via path174.

This flow pattern, for example as indicated as paths171-174inFIG. 1B, may not be efficient. Hairpinning may occur in the flow of the data packets as long as the default gateway for network device121remains as gateway router122. In general, hairpinning refers to the process of sending information back to the direction of its origination. The hairpinning flow pattern of the data packets may take up network bandwidth, and/or create more redundant routing paths. In some examples, a large number of network devices may be arranged in more complicated network layouts. The large number of network devices may also create multiple mobility events. The network bandwidth consumed by the hairpinning may slow down the wired/wireless enterprise networks.

FIG. 1Cis a simplified diagram showing a gateway address request routing example in network100according to some embodiments. After network device121moves to Subnet-1110, network device121may be directly or indirectly coupled to gateway router112. Because the default gateway router for network device121remains as gateway router122, network device121may send a gateway address request131asking for the layer 2 address of the default gateway, i.e. gateway router122. In some examples, the gateway address request131may include the layer 3 address of network device121as a sender protocol address. In some examples, the gateway address request131includes the layer 3 address of the default gateway, i.e. the layer 3 address of gateway router122, as a target protocol address. In some embodiments, network device121may also periodically send additional gateway address requests to check if gateway router122is functioning properly. In some examples, the additional gateway address requests may be sent once every four hours. In some examples, the gateway address request may be an ARP request. In some examples, the layer 2 address may be a MAC address. In some examples, the layer 3 address may be an IP address.

Referring toFIG. 1C, after gateway122receives the gateway address request131, controller124of gateway122determines whether the gateway address request131is received on an inter-domain link, i.e. link160between gateway112and gateway122. In some embodiments, gateway122may exchange messages with gateway112to determine whether the gateway address request131is received on inter-domain link160. In some embodiments, gateway122may determine whether the gateway address request131is received on inter-domain link160based on provisioning and/or configuration information received during provisioning of gateway122.

In some embodiments, when controller124recognizes that gateway address request131is received on an inter-domain link160, controller124of gateway122further determines whether the gateway address request131originated from gateway112associated with inter-domain link160. In some embodiments, controller124of gateway122may exchange messages with gateway112to determine whether the gateway address request131originated from gateway112. In some embodiments, controller124of gateway122may exchange messages with other network devices to determine where the gateway address request131originated from.

When it is determined that the gateway address request131is not originated from gateway112, for example, the gateway address request131is originated from network device121coupled to gateway112, gateway122may use gateway112as its proxy gateway for forwarding data packets sent from network device121. In some examples, in order to designate gateway112as its proxy gateway, gateway122may associate its own layer 3 address with the layer 2 address of gateway112in the response to the gateway address request131, so that data packets sent from network device121may be forwarded using gateway112, instead of gateway122for routing and/or forwarding to a destination. In some examples, controller124of gateway122may determine the layer 2 address of gateway112. For example, the layer 2 address of gateway112may be derived from the forwarding information tables in gateway122. In some examples, when gateway122does not have the layer 2 address of gateway112stored in the forwarding information tables, gateway122may send a gateway address request to gateway112to obtain the layer 2 address of gateway112.

Still referring toFIG. 1C, after the layer 2 address of gateway112is determined, controller124of gateway122may form a gateway address response132to the gateway address request131. The gateway address response132may include data forwarding information associated with the default gateway for network device121. In some embodiments, in order to designate gateway112as the proxy gateway of gateway122, the data forwarding information includes the layer 2 address of gateway112as the default gateway instead of the layer 2 address of gateway122. In some embodiments, the data forwarding information includes instructions for associating the layer 3 address of gateway122with the layer 2 address of gateway112. In some embodiments, the data forwarding information includes instructions for routing layer 3 data packets from network device121to gateway112as the default gateway. Controller124of gateway122may transmit the gateway address response132on one or more ports123to gateway112. Gateway112then forwards the gateway address response132to network device121. In some examples, the gateway address response includes an ARP response. In some examples, the gateway address request includes an ARP request.

FIG. 1Dis a simplified diagram showing a flow of data packets in network100after performing layer 3 proxy routing according to some embodiments. In some examples, by providing the layer 2 address of gateway112, rather than its own layer 2 address, gateway122is using gateway112as its proxy gateway for network device121. In some examples, network device121is originally coupled to gateway122in Subnet-2120. Network device121may be then relocated from Subnet-2120to Subnet-1110, and network device121may be coupled to gateway112. As shown inFIG. 1C, network device121may send a gateway address request131asking for the layer 2 address of its default gateway. Network device121may further receive the gateway address response132from gateway122with the layer 2 address of gateway112.

In some examples as illustrated inFIG. 1D, network device121may send data packets destined to network device111. Network device121may first send the data packets to its default gateway, because the layer 3 address of network device111is in a different subnet (Subnet-1110), than the layer 3 address of network device121(Subnet-2120). However based on the updated gateway information in the gateway address response132, the layer 3 address of gateway122is associated with the layer 2 address of gateway112, thus the default gateway becomes gateway112as a proxy gateway for gateway122. Therefore the data packets may be forwarded to gateway112via path181, instead of all the way to gateway122. Because network device111is in Subnet-1110, gateway112may forward the data packets to network device111via path182.

This flow pattern, for example as indicated as paths181-182inFIG. 1D, may be more efficient than paths171-174ofFIG. 1B, because the hairpinning flow pattern of the data packets can be avoided. Data packets may be routed and forwarded without taking up extra bandwidth or creating redundant routing paths. The flow pattern disclosed herewith may be beneficial for a large number of network devices arranged in more complicated network layouts.

In some examples, when the gateway address request131is not received by gateway122on an inter-domain link, such as link160, controller124of gateway122may form a gateway address response including the layer 2 address of gateway122to the gateway address request131. This behavior preserves gateway122as the default gateway for network devices in Subnet-2120.

FIG. 1Eis a simplified diagram showing a gateway address request routing example in the network100according to some embodiments. As discussed above, when controller124recognizes that the gateway address request141is received on an inter-domain link160, controller124of gateway122further determines whether the gateway address request141originated from gateway112. When gateway122recognizes that a gateway address request141originated from gateway112, for example, gateway122may form and send a gateway address response142. The gateway address response142may include its own layer 2 address, instead of substituting the layer 2 address of gateway112.

FIG. 1Fis a simplified diagram showing a gratuitous gateway address request routing example in the network100according to some embodiments. In some examples, when gateway router122reboots, gateway122may readvertise itself as a gateway. In order to readvertise itself as a gateway, gateway122may form one or more gratuitous gateway address requests151. In some embodiments, the gratuitous gateway address requests151include information of associating gateway122with the layer 2 address of gateway122. The gratuitous gateway address requests151may be targeted to a plurality of gateways in network100, and/or multiple network devices in Subnet-2120. In some examples, the gratuitous gateway address requests may include gratuitous ARP (GARP) requests.

Still referring toFIG. 1F, in some embodiments, gateway122may then transmit the gratuitous gateway address requests151to other gateways in network100, so that the routing information stored in other gateways may be updated. For example, controller124may transmit the gratuitous gateway address requests151on one of the one or more ports123of gateway122to one or more ports113of gateway112. In some examples, the gratuitous gateway address requests151may be also transmitted to network devices in Subnet-2120, so that the gateway address mapping information stored in these network devices may be updated.

In order to preserve gateway112as the proxy gateway of gateway122for network device121, after receiving the gratuitous gateway address requests151from gateway122, gateway112may alter the gratuitous gateway address requests151to gratuitous gateway address requests152before forwarding the gratuitous gateway address requests to network device121in Subnet-1110. In some embodiments, gratuitous gateway address requests152may include the layer 2 address of gateway112. In some embodiments, the gratuitous gateway address requests152may include instructions for using the layer 2 address of gateway112as the gateway for network device121. In this way, the default gateway of network device121in Subnet-1110becomes gateway112, instead of gateway122during the readvertisement of gateway122.

FIG. 2Ashows a simplified diagram of network200according to some embodiments. As shown inFIG. 2A, network200may include two subnets Subnet-1210and Subnet-2220. Network200may also include two gateways: a gateway212and a gateway222. Each gateway may be a cluster of network nodes. In some examples, gateway212may provide substantially the same services as gateway112. In some examples, gateway222may provide substantially the same services as gateway122. In some examples, gateway222may perform substantially the same function as gateway212. In some examples, Subnet-1210is Subnet-1110, and Subnet-2220is Subnet-2120. In some embodiments, gateway212may include two nodes: nodes213and214. Node213may be a network switching device similar to gateway router112as illustrated inFIG. 1A. Node213may include one or more ports, a controller, and/or a memory. In some examples, the memory may include a L2 table, a L3 table, and/or other forwarding information tables and data structures. Node214may also be a network switching device similar to gateway router112. Similarly gateway222may include two nodes: nodes223and224. Node223may be a network switching device similar to gateway router122as illustrated inFIG. 1A. Node224may also be a network switching device similar to gateway router122.

As illustrated inFIG. 2A, nodes213and214may be aggregated into an aggregate switch, such as gateway212. In some examples, gateway212may include stacked switches. In some examples, gateway212may include a peer group. In some examples, nodes213and214may be referred to as peer nodes. Nodes213and214may be coupled together using one or more network links that form an inter-chassis link (ICL)232. Although only one network link is shown in ICL232, any number of network links may be used in ICL232. The one or more network links in ICL232couple one or more ports of node213to one or more ports of node214. In some examples, the network links in ICL232may be configured as a LAG. ICL LAG232allows both nodes213and214to refer collectively to any of the network links. In some examples, nodes213and214may use ICL232to exchange management information. In some examples, the management information includes forwarding information. Although gateway212is shown with only two nodes213and214, a person having ordinary skill in the art would be able to understand that gateway212may include any number of network nodes in any suitable topology.

Referring toFIG. 2A, nodes223and224may be aggregated into an aggregate switch, such as gateway222. In some examples, gateway222may include stacked switches. In some examples, gateway222may include a peer group. In some examples, nodes223and224may be referred to as peer nodes. Nodes223and224may be coupled together using one or more network links that form an ICL242. Although only one network link is shown in ICL242, any number of network links may be used in ICL242. The one or more network links in ICL242couple one or more ports of node223to one or more ports of node224. In some examples, the network links in ICL242may be configured as a LAG. ICL LAG242allows both nodes223and224to refer collectively to any of the network links. In some examples, nodes223and224may use ICL242to exchange management information. In some examples, the management information includes forwarding information. Although gateway222is shown with only two nodes223and224, a person having ordinary skill in the art would be able to understand that gateway222may include any number of network nodes in any suitable topology.

Still referring toFIG. 2A, gateway212and gateway222may be coupled using a link252. In some examples, link252may be a LAG252. In some examples, link252may be a VLT LAG252. While not shown inFIG. 2A, network200may include additional VLANs and VLTs coupling gateway212and/or gateway222to other network nodes and/or gateways in other parts of network200. The configuration of network200may require the recognition of numerous interconnections (e.g., network links) among and between the network nodes and the gateways.

As shown inFIG. 2A, node213may be configured to group the network links between node213and gateway222(i.e. the network links between node213and nodes223and224) as a LAG254. Similarly, node214may be configured to group the network links between node214and gateway222as a LAG255. Node223may be configured to group the network links between node223and gateway212as a LAG256. Node224may be configured to group the network links between node224and gateway212as a LAG257.

As discussed above and further emphasized here,FIG. 2Ais merely an example, which should not unduly limit the scope of the application. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. In some embodiments, network200may include fewer than two gateways or more than two gateways. In some embodiments, as more gateways are added to network200, additional VLTs may be created. In some embodiments, each of gateways212and222may include more than two nodes. In some embodiments, as additional nodes are added to a gateway, additional ICLs are designated among the nodes. In some embodiments, fewer or more network links than what are shown inFIG. 2may exist between any of the nodes213,214,223, and/or224.

Network200ofFIG. 2Afurther includes a network device215. In some examples, network device215may be an electronic device, a layer 2 network switching device, and/or a layer 3 network switching device. In some examples, network device215may be network device111as discussed inFIG. 1A. Network device215may be coupled to both nodes213and214of gateway212. Any number of network links may be used to couple network device215to node213and/or node214. In some examples, network device215may not be directly coupled to node213or214, but through one or more network switching devices (not shown). Similarly network200may include a network device216. Network device216may be coupled to both nodes213and214of gateway212using any number of network links. In some examples, network device216may not be directly coupled to node213or214, but through one or more network switching devices (not shown).

Network200ofFIG. 2Afurther includes a network device225. In some examples, network device225may be an electronic device, a layer 2 network switching device, and/or a layer 3 network switching device. In some examples, network device225may be network device121as discussed inFIG. 1A. Network device225may be coupled to both nodes223and224of gateway222. Any number of network links may be used to couple network device225to node223and/or node224. In some examples, network device225may not be directly coupled to node223or224, but through one or more network switching devices (not shown). Similarly, network200may include a network device226. Network device226may be coupled to both nodes223and224of gateway222using any number of network links. In some examples, network device226may not be directly coupled to node223or224, but through one or more network switching devices (not shown).

Referring toFIG. 2B, in some examples, network device225may be moved from Subnet-2220to Subnet-1210. After network device225moves to Subnet-1210, network device225may be directly or indirectly coupled to gateway212. Network device225may retain its layer 3 address from Subnet-2220. Because the default gateway router for network device225remains as gateway222, network device225may send a gateway address request231asking for the layer 2 address of the default gateway, i.e. gateway222. In some embodiments, network device225may also periodically send additional gateway address requests to check if gateway222is functioning properly.

After gateway222receives the gateway address request231, gateway222determines whether the gateway address request231is received on an inter-domain link, i.e. LAG254, LAG255, LAG256, LAG257, and/or VLT LAG252. In some embodiments, when gateway222recognizes that the gateway address request231is received on an inter-domain link, and from network device225connected to gateway212, gateway222may designate gateway212as its proxy gateway for network device225. In some examples, gateway222may determine the layer 2 address of gateway212. After the layer 2 address of gateway212is determined, gateway222may form a gateway address response232to the gateway address request231. In some embodiments, the gateway address response232may include the layer 2 address of gateway212instead of the layer 2 address of gateway222. In some embodiments, the gateway address response232may include instructions for associating the layer 3 address of gateway222with the layer 2 address of gateway212, so that gateway212becomes the default gateway for network device225as a proxy gateway for gateway222. In some embodiments, the gateway address response232may include instructions for forwarding layer 3 data packets from network device225to gateway212as the default gateway.

Still referring toFIG. 2B, in some examples, after being connected to gateway212, network device225sends data packets destined to network device215. Network device225may first send the data packets to the default gateway212via path281. Because network device215is in Subnet-1210, gateway212may route the data packets to network device215via path282. Thus the hairpinning flow pattern of the data packets similar to paths171-174shown inFIG. 1Bcan be avoided.

When gateway222recognizes that the gateway address request is received on an inter-domain link, but originated from gateway212, for example, gateway212may form and send a gateway address response. The gateway address response may include the layer 2 address of gateway222, without substituting the layer 2 address of gateway212. In some examples, this behavior may preserve gateway222as the default gateway for network devices in Subnet-2220.

When gateway222recognizes that the gateway address request is not received by gateway222on an inter-domain link, gateway222may form a gateway address response including the layer 2 address of gateway222to the gateway address request. In some examples, this behavior may preserve gateway222as the default gateway for network devices in Subnet-2220.

In some examples, when one or more nodes of gateway222reboot, gateway222may readvertise itself as a gateway by forming one or more gratuitous gateway address requests. In some embodiments, the gratuitous gateway address requests include information for broadcasting the layer 2 address of gateway222. In some examples, the gratuitous gateway address requests may be targeted to a plurality of gateways in network200, and/or multiple network devices in Subnet-2220.

In order to preserve gateway212as the proxy gateway of gateway222for network device225, after receiving the gratuitous gateway address requests from gateway222, gateway212may alter the gratuitous gateway address requests to include the layer 2 address of gateway212before forwarding the gratuitous gateway address requests to network device225in Subnet-1210. In some embodiments, the altered gratuitous gateway address requests may include instructions for using the layer 2 address of gateway212as the gateway for network device225. In this way, the default gateway of network device225in Subnet-1210becomes gateway212, instead of gateway222during the readvertisement of gateway222.

FIG. 3is a simplified diagram showing a method300of managing a network according to some embodiments. As shown inFIG. 3A, method300includes a process310for receiving a gateway address request at a first gateway, a process320for determining whether the gateway address request is received on an inter-domain link. When the gateway address request is received on an inter-domain link, method300proceeds to a process330for determining whether the gateway address request originated from a second gateway associated with the inter-domain link. When the gateway address request is not originated from the second gateway associated with the inter-domain link, method300proceeds to a process350for determining a layer 2 address of the second gateway, a process360for forming a gateway address response including the layer 2 address of the second gateway, and a process370for transmitting the gateway address response. At process320, when the ARP request is not received on an inter-domain link, method300proceeds to a process340for forming a gateway address response with the layer 2 address of the first gateway, and process340proceeds to process370. At process330, when the gateway address request is not originated from the second gateway associated with the inter-domain link, method300proceeds to process340, and process340proceeds to process370. In some embodiments, one or more of processes310-370of method300may be implemented, at least in part, in the form of executable code stored on non-transient, tangible, machine readable media that when run by one or more processors, may cause the one or more processors to perforin one or more of processes310-370. In some examples, the one or more processors may be included in a controller of a gateway (e.g., controller114of gateway112, and/or controller124of gateway122). The one or more processors may also be included in one or more nodes (e.g., nodes213,214,223, and/or224).

At process310, a gateway address request is received at a first gateway. In some examples, the gateway address request may be gateway address request131and/or231. In some examples, the first gateway may be gateway122and/or gateway222. In some examples, the gateway address request is received at the first gateway to get the layer 2 address of the first gateway. In some examples, the gateway address request may be sent from a network device being moved from a first subnet to a second subnet. In some examples, the network device may be network device121and/or network device225. In some examples, the first subnet may be Subnet-2120and/or Subnet-2220. The second subnet may be Subnet-1110and/or Subnet-1210.

At process320, it is determined whether the gateway address request is received on an inter-domain link between the first gateway and a second gateway. In some examples, the inter-domain link may be link160,252,254,255,256, and/or257. In some examples, the second gateway may be gateway112and/or gateway212. In some examples, the controller of the first gateway may determine whether the gateway address request is received on an inter-domain link by exchanging messages with the second gateway. In some embodiments, when the gateway address request is received on an inter-domain link, method300continues to process330.

At process330, it is determined whether the gateway address request originated from the second gateway associated with the inter-domain link. In some examples, the first gateway may determine whether the gateway address request originated from the second gateway by exchanging messages with the second gateway. When the gateway address request is determined not to be originated from the second gateway, method300proceeds to process350.

At process350, the layer 2 address of the second gateway associated with the inter-domain link is determined. In some examples, the layer 2 address of the second gateway may be derived from forwarding information tables in the first gateway. In some examples, when the first gateway does not have the layer 2 address of the second gateway stored in the forwarding information tables, the first gateway may send a gateway address request to the second gateway to obtain the layer 2 address of the second gateway.

At process360, a gateway address response to the gateway address request is formed. In some examples, the gateway address response may be gateway address response132and/or232. In some embodiments, the gateway address response is formed by the controller of the first gateway. The gateway address response may include data forwarding information associated with the network device. In some embodiments, the data forwarding information includes the layer 2 address of the second gateway as the default gateway instead of the layer 2 address of the first gateway. In some embodiments, the data forwarding information includes instructions for associating the layer 3 address of the first gateway122with the layer 2 address of the second gateway. In some embodiments, the data forwarding information includes instructions for routing layer 3 data packets from the network device to the second gateway as the default gateway.

At process370, the gateway address response to the gateway address request is transmitted to the network device. In some embodiments, the controller of the first gateway may transmit the gateway address response on one or more ports to the second gateway. The second gateway then forwards the gateway address response to the network device.

At process320, when the gateway address request is not received on the inter-domain link, method300continues to process340. At process340, a gateway address response to the gateway address request including data forwarding information is formed. The data forwarding information may include a layer 2 address of the first gateway. In some embodiments, the data forwarding information includes instructions for forwarding data packets from network devices in the first subnet to the first gateway as the default gateway. Process340then proceeds to process370, where the gateway address response is transmitted to network devices in the first subnet.

At process330, when a gateway address request is determined to be originated from the second gateway associated with the inter-domain link, method300proceeds to process340. In some examples, the gateway address request may be gateway address request141. At process340, a gateway address response including data forwarding information is formed. In some examples, the gateway address response may be gateway address response142. The data forwarding information may include its own layer 2 address without substituting the layer 2 address of the second gateway, as discussed in process360. Process340then proceeds to process370, where the gateway address response is transmitted to the second gateway.

FIG. 4is a simplified diagram showing a method400of managing a network according to some embodiments. As shown inFIG. 4, method400includes a process410for receiving a gratuitous gateway address request from a first gateway at a second gateway, a process420for altering the gratuitous gateway address request to include a layer 2 address of the first gateway, and a process430for forwarding the altered gratuitous gateway address request. In some embodiments, one or more of processes410-430of method400may be implemented, at least in part, in the form of executable code stored on non-transient, tangible, machine readable media that when run by one or more processors, may cause the one or more processors to perform one or more of processes410-430. In some examples, the one or more processors may be included in a controller of a gateway (e.g., controller114of gateway112, and/or controller124of gateway122). The one or more processors may also be included in one or more nodes (e.g., nodes213,214,215, and/or216).

At process410, a gratuitous gateway address request is sent from a first gateway and received at a second gateway. In some examples, the first gateway may be gateway122and/or gateway222. The second gateway may be gateway112and/or gateway212. In some examples, the first gateway may be gateway112and/or gateway212. The second gateway may be gateway122and/or gateway222. When the first gateway reboots, the first gateway may readvertise itself on the network (e.g., network100and/or network200). The first gateway may form a gratuitous gateway address request to readvertise itself. In some examples, the gratuitous gateway address request may be gratuitous gateway address request151. In some embodiments, the gratuitous gateway address request includes information for broadcasting the layer 2 address of the first gateway. The gratuitous gateway address request may be targeted to a plurality of gateways in network100and/or network200, and/or multiple network devices in the first subnet.

At process420, the second gateway may alter the gratuitous gateway address request to include a layer 2 address of the second gateway. In some examples, the altered gratuitous gateway address request may be altered gratuitous gateway address request152. In some examples, in order to preserve the second gateway as the proxy gateway for the first gateway, the second gateway may alter the gratuitous gateway address request to associate the first gateway with the layer 2 address of the second gateway.

At process430, the altered gratuitous gateway address request including the layer 2 address of the second gateway may be forwarded. In some examples, the altered gratuitous gateway address request may be forwarded to a moving network device (e.g., network device121and/or network device225).

Some embodiments of network controller114and/or124, and/or controller of network switching device213,214,223and/or224, may include non-transient, tangible, machine readable media that include executable code that when run by one or more processors may cause the one or more processors to perform the processes of method300and/or method400as described above. Some common forms of machine readable media that may include the processes of method300and/or method400are, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, and/or any other medium from which a processor or computer is adapted to read.

As discussed above and further emphasized here, the figure of the network controller is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. According to some embodiments, other architectures are possible for the network controller.