One document matched: draft-xu-behave-stateful-nat-standby-00.txt
Network working group X. XU
Internet Draft Huawei
Category: BCP
Expires: December 2009 June 9, 2009
Redundancy and Load Balancing Mechanisms for Stateful Network
Address Translators (NAT)
draft-xu-behave-stateful-nat-standby-00
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with
the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on December 9, 2009.
Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents in effect on the date of
publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your
rights and restrictions with respect to this document.
Xu. Expires December 9, 2009 [Page 1]
Internet-Draft Redundancy and Load Balancing June 2009
Mechanism for Stateful NAT
Abstract
This document defines some redundancy and/or load balancing
mechanisms for stateful Network Address Translators (NAT), including
IPv4->IPv4 NAT, IPv4->IPv6 NAT and IPv6->IPv4 NAT.
Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC-2119 [RFC2119].
Table of Contents
1. Introduction.................................................3
2. Terminology..................................................3
3. Scenario Description.........................................4
4. Redundancy Mechanisms........................................5
4.1. Cold Standby Mechanism..................................5
4.2. Hot Standby Mechanism...................................6
5. Load Balancing Mechanisms....................................7
6. Election Protocol Consideration..............................8
7. State Synchronization Protocol Consideration.................8
8. Security Considerations......................................9
9. IANA Considerations..........................................9
10. Acknowledgments.............................................9
11. References..................................................9
Authors' Addresses.............................................10
Xu. Expires December 9, 2009 [Page 2]
Internet-Draft Redundancy and Load Balancing June 2009
Mechanism for Stateful NAT
1. Introduction
Network Address Translation (NAT) has been used as an efficient way
to delay IPv4 address exhaustion and been deemed as a major
mechanism for IPv4/IPv6 transition and coexistence. In the Large
Scale NAT (LSN) scenarios as described in some proposals, e.g.,
[NAT444], [DS-Lite] and [NAT64], the LSN routers are deployed in
large-scale networks (e.g., ISP networks, campus networks or
enterprise networks) and serve a huge amount of users. Hence
redundancy and/or load-balancing capabilities are strongly desired
for these LSN routers in order to provide high availability services
to users. However, a failure of stateful NAT, which maintains states
per session, would cause interruption of those sessions.
In this document, we describe some redundancy and/or load balancing
mechanisms for stateful NAT, including IPv4->IPv4 NAT, IPv4->IPv6
NAT and IPv6->IPv4 NAT. Note that stateless NAT is out of the scope
of this document. Unless mentioned otherwise, NAT and LSN throughout
this document will pertain to stateful NAT and stateful LSN
separately.
2. Terminology
The majority of terms used in this document are borrowed almost as
is from [RFC2633], the following are some terms specific to this
document.
LSN (Large-Scale NAT): a NAT device placed at the border between
large-scale user networks (e.g., ISP network, enterprise network, or
campus network) and the Internet.
LSN internal address realm (internal realm for short): a realm where
the communication initiators (e.g., a client in the client/server
application) are located. For IPv4->IPv4 NAT, the internal realm
refers to the private networks, as opposed to the IPv4 Internet. For
IPv6->IPv4 NAT, the internal realm means IPv6 network or IPv6
Internet. For IPv4->IPv6 NAT, the internal realm refers to IPv4
network or IPv4 Internet. Accordingly, the hosts located in the
internal realm are called internal hosts, and the addresses used in
the internal realm are called internal addresses.
LSN external address realm (external realm for short): a realm where
the communication responders (e.g., a server in the client/server
application) are located. For IPv4->IPv4 NAT, the external realm
refers to the IPv4 Internet. For IPv6->IPv4 NAT, the external realm
Xu. Expires December 9, 2009 [Page 3]
Internet-Draft Redundancy and Load Balancing June 2009
Mechanism for Stateful NAT
means the IPv4 Internet or IPv4 network. For IPv4->IPv6 NAT, the
external realm refers to the IPv6 Internet or IPv6 network.
Accordingly, the hosts located in the external realm are called
external hosts, and the addresses used in the external realm are
called external addresses.
Internal address pool: an address pool used for assigning internal
addresses for the external hosts. Note that this address pool is
specific to IPv4->IPv6 NAT and IPv6->IPv4 NAT. For IPv4->IPv6 NAT,
the IPv4 address pool used for assigning internal IPv4 addresses for
external IPv6 hosts is the internal address pool. For IPv6->IPv4 NAT,
the prefix64 used for synthesizing internal IPv6 addresses for
external IPv4 hosts could be looked as a special internal address
pool.
External address pool: an address pool used for assigning external
addresses for the internal hosts. For IPv4->IPv4 NAT and IPv6->IPv4
NAT, the IPv4 address pool is the external address pool. For IPv4-
>IPv6 NAT, the prefix64 could be looked as a special external IPv6
address pool from which synthesized IPv6 addresses are assigned to
internal IPv4 hosts.
CPE (Customer Premises Equipment): a router in front of internal
hosts.
Prefix64: an IPv6 prefix used for synthesizing IPv6 addresses for
the IPv4 hosts. See [Prefix64] for more details.
3. Scenario Description
+-------------------------+ +-----------------------+
| | | |
| +-+-----+-+ |
| | NAT-A | |
+----+-------------+ +-+-----+-+ +-------------+ |
|CPE/Internal Host | | | |External Host| |
+----+-------------+ | | +-------------+ |
| +-+-----+-+ |
| | NAT-B | |
| Internal realm +-+-----+-+ External realm |
| | | |
+-------------------------+ +-----------------------+
Figure 1. General Scenario of Dual NAT Routers
Xu. Expires December 9, 2009 [Page 4]
Internet-Draft Redundancy and Load Balancing June 2009
Mechanism for Stateful NAT
In a typical operational scenario as illustrated in Figure 1, two
NAT routers are usually deployed for redundancy and/or load
balancing purposes. Hence we will describe the corresponding
mechanisms based on this scenario. Note that these mechanisms are
also suitable in the scenarios in which more than two NAT routers
are used.
Due to the fact that the redundancy and load-balancing mechanisms
for IPv4->IPv4 NAT, IPv4->IPv6 NAT and IPv6->IPv4 NAT are almost the
same except for the routes towards the external realm advertised
into the internal realm by the NAT routers, e.g., a route to the
prefix64 in the case of IPv6->IPv4 NAT, a route to the IPv4 Internet
(in [NAT444]) or the tunnel concentrator (in [DS-Lite]) in the case
of IPv4->IPv4 NAT, and a route to the IPv4 address pool in IPv4-
>IPv6 NAT, we will try to describe these mechanisms in general.
4. Redundancy Mechanisms
The basic idea of NAT redundancy is to make two NAT routers function
as a redundancy group, and select one as the Master and the other as
the Backup through some election protocol (see section 6) or
manually configuration. In normal case, the packets between the
internal realm and the external realm traverse via the Master. Once
the Master fails, the Backup takes over the translation role.
There are two redundancy mechanisms: a cold standby mechanism and a
hot standby mechanism. The goal of the cold standby mechanism is to
keep the NAT failover transparent to the communicating internal
hosts. In contrast, the purpose of the hot standby mechanism is to
remain the established sessions continuous during the NAT failover.
The following sections will describe them separately.
4.1. Cold Standby Mechanism
To achieve cold standby, the internal addresses for external hosts
(as communication responders) should be remained despite the NAT
failover. In IPv4->IPv4 NAT, the external hosts' internal addresses
are the same as their external addresses, so the above requirement
can be met naturally. In IPv6->IPv4 NAT, NAT routers belonging to a
redundancy group should be configured with an identical prefix64. In
IPv4->IPv6 NAT, NAT routers in a redundancy group should be
configured with an identical IPv4 address pool, besides, the state
information should be synchronized among these NAT routers through
some state synchronization protocol (see section 7) so as to ensure
the Backup, once selected as the current Master, could assign the
Xu. Expires December 9, 2009 [Page 5]
Internet-Draft Redundancy and Load Balancing June 2009
Mechanism for Stateful NAT
communicating IPv6 hosts the same IPv4 addresses as those assigned
by the previous Master.
Of the NAT routers in a redundancy group each is configured with a
different external address pool and announces into the external
realm a route to that external address pool. In the cases of IPv4-
>IPv4 NAT and IPv6->IPv4 NAT, NAT routers each are configured with
different external IPv4 address pools without any overlap. Otherwise,
the same address or address/port pair, which was assigned to some
internal host by the previous Master, may be occasionally assigned
to a different internal host by the current Master, this occasion
will cause some confusions. For example, the return packets towards
host A will be misunderstood by the current Master as those towards
host B. In the case of IPv4->IPv6 NAT, each NAT router is configured
with a different prefix64.
In order to make packets towards the external realm always traverse
via the Master, the Master should announce into the internal realm a
route towards the external realm. In case the Master and the Backup
are specified manually, the Backup should also announce into the
internal realm a route towards the external realm to prepare for the
takeover. However, in order to ensure the route advertised by the
Master, rather than that advertised by the Backup, is selected as
the best by the routers in the internal realm despite topology
changes, the route advertised by the Backup should be set at higher
enough cost or larger granularity (For example, the Backup announces
a route to 10.0.0.0/8, while the Master announces two specific
routes to 10.0.0.0/9 and 10.128.0.0/9 respectively). Once the
connections to the external realm lost, the Master should withdraw
the route towards the external realm previously announced. When the
Master fails, packets towards the external realm will pass through
the Backup. If the Master and the Backup are automatically elected
through some election protocol, the Backup would be elected as a new
Master when the old Master fails, so it's not necessary for the
Backup to make the above route announcement.
4.2. Hot Standby Mechanism
To preserve the established sessions during the failover, in
addition to remain the internal addresses for the external hosts
unchanged, the external addresses for the internal hosts should also
keep unchanged. How to meet the first requirement will not be
reiterated since it is the same as that for the cold standby
mechanism. To meet the second requirement, NAT routers in a
redundancy group should be configured with an identical external
address pool and they should assign the same external address for
Xu. Expires December 9, 2009 [Page 6]
Internet-Draft Redundancy and Load Balancing June 2009
Mechanism for Stateful NAT
identical internal hosts. In the case of IPv4->IPv6 NAT, NAT routers
should simply be configured with an identical prefix64. For IPv4-
>IPv4 NAT and IPv6->IPv4 NAT, in addition that the NAT routers are
configured with identical IPv4 address pools, the state on the
Master should be synchronized to the Backup in a timely fashion.
The Master announces into the internal realm a route towards the
external realm and announces into the external realm a route towards
the external address pool. If the Master and the Backup are
specified manually, the Backup should also announce those routes,
but with higher enough cost or larger granularity. Once the
connections to either the external realm or the internal realm lost,
the Master should withdraw the above routes. When the Master fails,
the packets towards the external realm will pass through the Backup.
If the Master and the Backup are automatically elected through some
election protocol, the Backup would be elected as a new Master when
the old Master fails, so it's not necessary for the Backup to make
the above route announcement.
5. Load Balancing Mechanisms
Based on the above redundancy mechanisms, one can further realize
load balancing among a group of NAT routers. The basic idea is to
create two redundancy groups (e.g. group A and group B) on these NAT
routers, make one router as the Master for group A and the Backup
for group B, while make the other as the Master for group B and the
Backup for group A. Taking IPv6->IPv4 NAT as an example, NAT routers
are configured with two prefix64s (e.g., prefix64-A and prefix64-B)
corresponding to two different redundancy group (e.g., group A and
group B)separately, and one router is designated as the Master for
group A and the Backup for group B, while the other as the Backup
for group A and the Master for group B. In this way, the IPv6
packets towards the IPv4 external realm are balanced among these NAT
routers according to their destination addresses with different
prefix64s.
For load balancing together with the cold standby, each NAT router
could either use the same external address pool or different
external address pools corresponding to these redundancy groups.
However, the external address pools on different NAT routers
shouldn't have any overlap. Otherwise, the same address or
address/port pair could be assigned occasionally to different
internal hosts. In contrast, for load balancing together with the
hot standby, different external address pools should be configured
for these redundancy groups. Otherwise, the return packets towards
the internal realm may be forwarded to a wrong NAT router.
Xu. Expires December 9, 2009 [Page 7]
Internet-Draft Redundancy and Load Balancing June 2009
Mechanism for Stateful NAT
6. Election Protocol Consideration
Election protocol is used to automatically elect one from a
redundancy group as the Master NAT router and the other as the
Backup NAT routers. Once the Master fails, the Backup with the
highest priority will take over the Master role after a short delay.
The election protocol will also be used to track the connectivity to
the external realm and the internal realm. Once connections to the
external realm or the internal realm lost, the NAT router is not
qualified to the Master and it will withdraw the route towards the
external realm announced previously, in the case of hot standby, it
should also withdraw the route towards the internal address pool.
In fact, one can use the VRRP [RFC2338] directly as the automatic
election protocol. In addition, the interface track mechanism can
also be used to adjust the priority to influence the election
results.
If two NAT routers are directly connected via an Ethernet network,
the VRRP can run directly on the Ethernet interfaces. Otherwise,
some extra configuration or protocol changes need to be implemented.
One option is to create conditions for VRRP to run among these
routers. For example, we create a VPLS [RFC4761, RFC4762] instance
and enable IP functions and run VRRP on those VLAN interfaces which
are bound to that VPLS instance. If enabling IP function on those
interfaces is not supported, one can use the following trick to
realize the same goal, but at a cost of consuming two physical
interfaces on each NAT router. The approach is: create a VPLS
instance among a set of NAT routers, and on each of them one
Ethernet interface is bound to that VPLS instance, and another IP
enabled Ethernet interface is locally connected with that interface.
Then VRRP can run on those IP enabled Ethernet interfaces which are
all connected to that VPLS instance. Another option is to do some
change to VRRP so that VRRP neighbors can be configured manually and
VRRP messages can be exchanged directly between two neighbors in a
unicast fashion.
7. State Synchronization Protocol Consideration
The Server Cache Synchronization Protocol (SCSP) defined in [RFC2334]
could be used as a candidate for state synchronization protocol.
Details about the usage and possible modifications will be explored
in the next version of this document.
Xu. Expires December 9, 2009 [Page 8]
Internet-Draft Redundancy and Load Balancing June 2009
Mechanism for Stateful NAT
8. Security Considerations
TBD.
9. IANA Considerations
TBD.
10. Acknowledgments
The author would like to thank Dan Wing, Dave Thaler for their
insightful comments and reviews, and thank Dacheng Zhang and Xuewei
Wang for their valuable editorial reviews.
11. References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3022] Srisuresh, P. and K. Egevang, "Traditional IP Network
Address NAT (Traditional NAT)", RFC 3022, January 2001.
[RFC2663] Srisuresh, P. and M. Holdrege, "IP Network Address
NAT (NAT) Terminology and Considerations", RFC
2663, August 1999.
[RFC2766] Tsirtsis, G. and P. Srisuresh, "Network Address
Translation - Protocol Translation (NAT-PT)",
RFC 2766, February 2000.
[RFC4966] Aoun, C. and E. Davies, "Reasons to Move the Network
Address NAT - Protocol NAT (NAT-PT) to
Historic Status", RFC 4966, July 2007.
[RFC2338] Knight, S., et. al., "Virtual Router Redundancy Protocol",
RFC2338, April 1998.
[RFC2334] Luciani, J., Armitage, G., Halpern, J., and N. Doraswamy,
"Server Cache Synchronization Protocol (SCSP)", RFC 2334,
April 1998.
[RFC4761] Kompella, K. and Y. Rekhter, "Virtual Private LAN Service
(VPLS) Using BGP for Auto-Discovery and Signaling",RFC
4761, January 2007.
Xu. Expires December 9, 2009 [Page 9]
Internet-Draft Redundancy and Load Balancing June 2009
Mechanism for Stateful NAT
[RFC4762] Lasserre, M. and Kompella, V. (Editors), "Virtual Private
LAN Service (VPLS) Using Label Distribution Protocol (LDP)
Signaling", RFC 4762, January 2007.
[NAT64] Bagnulo, M., Matthews, P., and I. Beijnum, "NAT: Network
Address and Protocol Translation from IPv6 Clients to IPv4
Servers", draft-bagnulo-behave-NAT64-03 (work in progress),
March 2009.
[NAT444] Shirasaki, Y., Miyakawa, S., Nakagawa, A., Yamaguchi, J.,
and H. Ashida, "NAT444 with ISP Shared Address",
draft-shirasaki-nat444-isp-shared-addr-00 (work in
progress), October 2008.
[DS-Lite] Durand, A., "Dual-stack lite broadband deployments post
IPv4 exhaustion", draft-ietf-softwire-dual-stack-lite-00
(work in progress), March 2009.
[Prefix64] Miyata, H., "PREFIX64 Comparison", draft-miyata-behave-
prefix64-00 (work in progress), October 2008.
[LSN] Nishitani,T., Miyakawa, S., Nakagawa, A., Ashida,H., " Common
Functions of Large Scale NAT (NAT)", draft-nishitani-cgn-
01 (work in progress), November 2008
[Framework] Baker, F., Li,X., Bao,C., "Framework for IPv4/IPv6
Translation", draft-baker-behave-v4v6-framework-02 (work
in progress), February 2009.
Authors' Addresses
Xiaohu Xu
Huawei Technologies,
No.3 Xinxi Rd., Shang-Di Information Industry Base,
Hai-Dian District, Beijing 100085, P.R. China
Phone: +86 10 82836073
Email: xuxh@huawei.com
Xu. Expires December 9, 2009 [Page 10]
| PAFTECH AB 2003-2026 | 2026-04-24 02:53:36 |