Across both the global internet and enterprise networks achieving routing symmetry is recognized as a difficult task. When highly secure networks with back-to-back stateful firewalls interconnect, routing symmetry becomes a critical issue. Stateful firewalls require bi-directional protocols such as TCP to return responses such as acknowledgements through the same set of firewalls that the initial forward flow traverses. If a different firewall is used for the return flow, the TCP session will fail due to this firewall blocking the response packet since it does not have state information of the connection initiation.
Currently known methods of solving the problem of stateful firewalls and symmetric routing suffer from several main flaws. For example, if the networks are single-homed and are connected via one set of firewalls, the failure of a single firewall or of the link between the two firewalls will stop all inter-network traffic. Due to the single point of failure, this option cannot be used for high availability secure networks. If the networks are multi-homed but only one network uses firewalls and connection initiation is allowed from only one network, then routing symmetry is only needed in a single direction. Alternatively, networks can be multi-homed and connected via multiple firewalls but have only one set of firewalls used at any given time. In this situation, the other set of firewalls and the link between them are used as backup for a failure of the primary set. However, in this approach there is no load balancing of traffic. IGP metric manipulation may also be used to ensure that routing is symmetric. In this method, every router in each network should have a unique lowest cost path to one of the gateways. This method however, does not work when there is more than one lowest cost path from a router to a gateway. Traffic load balancing from a single router is not achievable due to this constraint. This method also does not work with certain network topologies, for example, where two gateways of one network are connected to a single gateway of another network.
With regard to the network address translation approach for symmetric routing, this approach is commonly used to solve problems associated with public IP address depletion and private address usage with Internet access. However, a side effect of network address translation guarantees symmetric routing in a single direction. The host can reach the Internet via network address translation gateways and return traffic would reach the same host via the same gateway. This is guaranteed by the fact that a unique inside global address block is associated with each network address translation gateway and the source IP address traffic from the host appearing in the Internet will have one or the other of these addresses as their source IP address. Therefore, the return traffic would flow through the appropriate gateway. By locating the stateful firewalls with the network address translation gateways the asymmetry problem is solved in situations where all connections are initiated from within the autonomous network.
However, this approach has several shortcomings. For connections initiated from the Internet or an outside network, symmetric routing is not guaranteed. For networks where firewalls are used back to back, symmetric routing in one direction is not sufficient. Further, for this method to be scalable, dynamic network address translation has to be used—but this causes the domain name service framework to become complex as domain name service (DNS) servers need to be assigned static addresses. Since applications and DNS servers cache DNS entries, the cache timeout periods need to be tuned with the network address translation timeout periods. Therefore, network address translation is not an ideal method for symmetric routing. Given the drawbacks of the present methods, it is therefore desirable to provide a method for efficient bi-directional routing which follows a symmetric path in multi-homed networks.
A method for receiving a packet from a host device, the packet including a source address and a destination address, determining whether the destination address is one of an actual destination device address and a first exterior routing address and substituting a symmetric response address for the source address in the packet when the destination address is the actual destination device address.
A method for receiving a packet from an external gateway, the packet including a source address and a destination address, determining whether the destination address is one of an actual destination device address and an exterior routing address and substituting the actual destination device address for the destination address when the destination address is the exterior routing address.
A translation gateway for a network that includes a receiving module to receive a packet from a host device, the packet including a source address and a destination address, an analyzer module to determine whether the destination address is one of an actual destination device address and a first exterior routing address and a substitution module to substitute a symmetric response address for the source address in the packet when the destination address is the actual destination device address.
A method for symmetric bi-directional routing including sending an IP packet having a source address and a destination address from a first host, changing the source address to an exterior routing address by a first network address translation gateway of the first host when the destination address is from an assigned host address block of another network, receiving the packet with the exterior routing address by a second gateway of a second host and sending the packet with the exterior routing address to the second host.
A system for symmetric bi-directional routing that includes first and second autonomous systems in communication with and connected by a transit network. The first autonomous system having a first host in communication with a first network address translation gateway and the first host having a source address and the first network address gateway capable of changing the source address to an exterior routing address for transit through the transit network to the second autonomous system. The second autonomous system receiving the exterior routing address by a first network address translation gateway of the second autonomous system and communicating the exterior routing address to a second host, whereby the second autonomous system responds to the first host of the first autonomous system along a symmetrical route by having the second autonomous system use the exterior routing address as a destination address to the first network address translation gateway of the first host.
A method for receiving a packet from a host device, the packet including a source address and a destination address, maintaining the source address in the packet when the destination address is a first exterior routing address and substituting a second exterior routing address for the source address in the packet when the destination address is the actual destination.
The present invention provides for bi-directional conditional network address translation with exterior routing which overcomes the shortcomings described above while preserving the beneficial features. The present invention extends network address translation by making it conditional and combining it with exterior routing to provide an efficient method of bidirectional symmetric routing. In the present invention, conditional network address translation is different than the conditional network translation in the prior art. In the prior art, conditional network address translation constitutes substituting the source address of a packet only when the original source address is from a particular block. In the present invention, conditional network address translation constitutes substituting the source address of a packet only when the destination address of the packet is from a particular address block. The method of the present invention relies on network addressable translation only for its symmetric response feature and neither for conserving IP addresses nor for using private IP addresses
The term symmetric response address means an address that is substituted for the original source address of a packet to ensure that the response to the packet is received via the same gateway as the one used by the original packet on leaving the network. The return path of the response packet entering the network is guaranteed to be via the same gateway by the fact that each set of symmetric response addresses is only advertised by a single gateway and, therefore, any packet destined to a symmetric response address will necessarily enter the network via the gateway advertising the particular symmetric response address.
The present invention has the advantage of having the forward path and the return path of traffic go through the same set of stateful firewalls for a network connected via back-to back stateful firewalls. This prevents network traffic from being blocked by a firewall which is not aware of the connection maintained at another firewall. In the present invention, by routing symmetry what is meant is that a response packet traverses the same set of firewall gateways as the packet that initiated the response. It is clear that this symmetry is sufficient to guarantee connection maintenance in multi-homed networks using stateful firewalls.
The method of the present invention for symmetric bi-directional routing includes the steps of sending an IP packet having a source address from a first host and changing the source address to an exterior routing address by a first network address translation gateway of the first host. The packet with the exterior routing address is received by a first gateway of a second host which then sends the packet with the exterior routing source address to the second host. The method then has the second host respond to the first host along a symmetrical route, i.e., a route that traverses the same set of firewall gateways as the initial packet, by having the second host use the exterior routing address as a destination address to send a response packet to the first network address translation gateway of the first host. The response packet with the exterior routing address is then received by the first network address translation gateway of the first host where the exterior routing address is changed to the original source address of the first host which then receives the response packet. The method of the present invention includes the first gateway of the first host having a stateful firewall, and likewise, the first gateway of the second host may also include a stateful firewall. The method is useful where the first host and the second host are part of a multi-homed network.
Further, in the method of the present invention, it is preferable that the exterior routing address be a symmetric response address. In a preferred embodiment, the destination address is a symmetric response address. The method may also be used in a network where the first network address translation gateway of the first host is multi-homed to at least two network address translation gateways of a second host. The method of the present invention can be used in an architecture where the first network address translation gateway of the first host is multi-homed to multiple internet service providers. In another embodiment, the method further includes sending the IP packet with the exterior routing address from the second host to a third host and having the third host respond to the second host along a symmetrical route by having the third host use the exterior routing address as a destination address to send a response packet to a network address translation gateway of the second host. From there, the second host would respond to the first host as described above.
The present invention also includes a system for symmetric bi-directional routing which comprises first and second autonomous systems in communication with and connected by a transit network. The first autonomous system has a first host in communication with a first network address translation gateway. The first host has a source address and the first network address gateway is capable of changing the source address to an exterior routing address for transit through the transit network to the second autonomous system. The system of the present invention has the second autonomous system receiving the exterior routing address by a first network address translation gateway of the second autonomous system and then communicating the exterior routing address to a second host. The second autonomous system then responds to the first host of the first autonomous system along a symmetrical route by having the second autonomous system use the exterior routing address as a destination address to the first network address translation gateway of the first host.
Preferably, the system has a stateful firewall collocated with the first network address translation gateway for each of the first and second hosts. Preferably, the system has the first host and the second host as part of a multi-homed network and the exterior routing address includes a symmetric response address. The system may also be utilized in architectures where a network address translation gateway of the first autonomous system and host is multi-homed to at least two network address translation gateways of a second autonomous system and host. The system may also be used where the transit network includes multiple interne service providers.
In another embodiment, the system may also be used with a third autonomous system in communication with the second autonomous system. Here, the third autonomous system receives the exterior routing address by a first network address translation gateway of the third autonomous system and communicates the exterior routing address to a third host. The third autonomous system responds to the second host of the second autonomous system along a symmetrical route by having the third autonomous system use the exterior routing address as a destination address to a network address translation gateway of the second host.
The method and system of the present invention achieves bi-directional routing symmetry with no control plane manipulations. The symmetric response addresses are injected into the exterior routing protocols at the gateways. Minimal network address translation configurations are needed at each gateway and no configuration is needed at any of the interior routers or hosts. The present invention also does not introduce domain name server related complications. The present invention is scalable up to mid-size networks with a few thousand simultaneous connections across network address translation firewalls. Further, in the present invention, load balancing and failure recovery across an arbitrary number of network address translation firewall gateways is preserved based on the interior and exterior routing protocols used. The present invention also has the advantage of using only existing router capabilities.
In
For example, first autonomous system 110 advertises the route 1.0.0.0/24 at both 150 and 160 by respective arrows 152 and 162. This pool of addresses is assigned to actual hosts in first autonomous system 110. Further, the first autonomous system 110 also advertises two other routes as 2.0.0.0/24 at 152 and 3.0.0.0/24 at 162, which are not assigned to any physical entity in autonomous system 110, but injected into the exterior routing protocol, such as BGP, to be advertised to second autonomous system 120. The conditional translation requirement for a packet leaving a given autonomous system is that the destination IP address of the IP packet be an assigned IP address in the other autonomous system. For every IP packet going from autonomous system 110 to autonomous system 120 for which the conditional translation requirement is met, the source address of the IP packet having a value from the 1.0.0.0/24 block is dynamically substituted with an address from either pool 2.0.0.0/24 by the network address translation firewall 150 or pool 3.0.0.0/24 by the network address translation firewall 160. The particular address pool selected for substitution of the source address is determined by the choice of the exit network address translation firewall gateway 150 or 160 from first autonomous system 110.
Similarly, autonomous system 120 advertises the route 101.0.0.0/24 at both 170 and 180 by respective arrows 172 and 182. This pool of addresses is assigned to hosts in autonomous system 120. The second autonomous system 120 advertises two other routes as 102.0.0.0/24 at 172 and 103.0.0.0/24 at 182 which are injected into the exterior routing protocol and advertised to first autonomous system 110. For any IP packet going from autonomous system 120 to autonomous system 110 and meeting the conditional translation requirement the source address of the IP packet having a value from the 101.0.0.0/24 block is dynamically substituted with an address from either pool 102.0.0.0/24 by the network address translation firewall 170 or pool 103.0.0.0/24 by the network address translation firewall 180. Once again, the particular address pool selected for substitution of the source address is determined by the choice of the exit network address translation firewall gateway 170 or 180 from autonomous system 120.
It should be noted that the respective addresses 1.0.0.0/24 and 101.0.0.0/24 assigned to physical entities of autonomous systems 110 and 120 are used in domain name server entries, thereby maintaining standard domain name server functionality. Since these never change, the domain name server problems associated with prior methods are not existent in the method of the present invention. In contrast, the addresses 2.0.0.0/24, 3.0.0.0/24 and 102.0.0.0/24 and 103.0.0.0/24 are symmetric response addresses which are used in network address translation pools and injected into the exterior routing protocol at the exit network address translation firewall gateways 150, 160, 170 or 180, respectively.
Bi-directional symmetric routing is accomplished by duplicating the single direction scheme with the combined exterior routing protocol and conditional network address translation. A connection initiated in one network, such as 110, uses as the destination address for the IP packet an address which has not been translated by the network address translator. The connection will select a network address translation firewall gateway using the exterior and interior protocols in use. When the IP packet reaches the chosen network address translation firewall, that is, either 150 or 160 in
Referring now to
If the destination address is from an assigned host address block, the network address translation gateway substitutes the source address with a symmetric response address from the pool of addresses maintained by the network address translation gateway (step 530). The network address translation gateway then transmits the packet with the substituted source address (step 540). This is shown in the above example, when the source address of the host 130 is replaced with the external network address by the network address translation gateway 150 because the destination address is the actual assigned address of the host 140.
If the destination address is determined to be an external network address in step 520, the network address translation gateway does not perform any substitution for the source address, but transmits the packet in step 540 with the source address intact. This is shown in the above example, when the source address of the host 140 is not replaced with the external network address by the network address translation gateway 170 because the destination address is the external network address assigned to the host 140 by the network address translation gateway 150. Thus, the method 500 shows the conditional nature of the network address translation gateways for packets received from host devices.
If the destination address is not from a symmetric response block, the receiving network address translation gateway proceeds directly to step 640 and transmits the packet to the destination device. This is shown in the above example, when the network address translation gateway 170 receives the packet with the destination address of the host 140 from the network address translation gateway 150 and transmits the packet to the host 140 without any substitution of source or destination addresses.
If the destination address is determined to be from a symmetric response block in step 620, the network address translation gateway substitutes the actual assigned address for the external address in the destination address (step 630) and then transmits the packet in step 640 to the host. As described above, this situation will occur when the packet is a response packet and thus, the network address translation gateway will maintain a record of the correlation between the external network address and the actual assigned address for the destination host for the purposes of substituting the actual assigned address. This is shown in the above example, when the network address translation gateway 150 receives the response packet having the destination address of the external network address correlating to the host 130. The network address translation gateway 150 replaces the external network address in the destination address with the actual assigned address of the host 130 and then transmits the packet to the host 130. Thus, the method 600 shows the conditional nature of the network address translation gateways for packets received from other network address translation gateways.
In
Referring to
Referring to
Those skilled in the art would appreciate that the present invention is independent of specific features of the exterior routing protocol. Thus, this method is valid for other exterior routing protocols other than BGP, as well as interior routing protocols such as OSPF and IS-IS used between two networks. Furthermore, the method and system are valid when the firewall, the network address translation and BGP functions are all on a single router or when these three functions are placed on separate physical entities that are collocated.
Number | Name | Date | Kind |
---|---|---|---|
6694429 | Kalmanek, Jr. et al. | Feb 2004 | B1 |
6779039 | Bommareddy et al. | Aug 2004 | B1 |
6829239 | Bhatia et al. | Dec 2004 | B1 |
6888837 | Cunningham et al. | May 2005 | B1 |
6915421 | Kalmanek Jr. et al. | Jul 2005 | B1 |
6928082 | Liu et al. | Aug 2005 | B2 |
7307990 | Rosen et al. | Dec 2007 | B2 |
20040190549 | Huitema | Sep 2004 | A1 |
20050229246 | Rajagopal et al. | Oct 2005 | A1 |
20060050708 | Shapiro et al. | Mar 2006 | A1 |
20060098663 | Shore | May 2006 | A1 |