behave                                                             Z. Li
Internet-Draft                                                   G. Chen
Intended status: Standards Track                            China Mobile
Expires: May 3, 2012                                             Q. Zhao
                                                                X. Huang
                                                                   Y. Ma
                                         Beijing University of Posts and
                                                      Telecommunications
                                                        October 31, 2011


    Recommendation for DNS64-based NAT64 Round Robin Load-balancing
                draft-li-behave-dns64-load-balancing-02

Abstract

   This document compares some stateful prefix selection policies and
   suggests that the DNS64-based Round Robin Prefix Selection Policy be
   proper for the NAT64 load-balancing.  This document also illustrates
   two recommended implementations of Round Robin Prefix Selection
   Policy in detail.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on May 3, 2012.

Copyright Notice

   Copyright (c) 2011 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
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents



Li, et al.                 Expires May 3, 2012                  [Page 1]


Internet-Draft      DNS64-based NAT64 Load-balancing        October 2011


   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Requirements Language . . . . . . . . . . . . . . . . . . . . . 3
   3.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 3
   4.  Considerations on NAT64 Load-balancing Solutions  . . . . . . . 4
     4.1.  Target Device . . . . . . . . . . . . . . . . . . . . . . . 4
     4.2.  Selection Policy  . . . . . . . . . . . . . . . . . . . . . 4
     4.3.  Load-balancer Location  . . . . . . . . . . . . . . . . . . 4
     4.4.  Transport Protocol  . . . . . . . . . . . . . . . . . . . . 4
     4.5.  Conclusion  . . . . . . . . . . . . . . . . . . . . . . . . 5
   5.  Recommended Implementations . . . . . . . . . . . . . . . . . . 5
     5.1.  ODCDS-Based Solution  . . . . . . . . . . . . . . . . . . . 6
       5.1.1.  Operations in DNS64 . . . . . . . . . . . . . . . . . . 6
       5.1.2.  Pros  . . . . . . . . . . . . . . . . . . . . . . . . . 6
       5.1.3.  Cons  . . . . . . . . . . . . . . . . . . . . . . . . . 7
     5.2.  TDCDS-Based Solution  . . . . . . . . . . . . . . . . . . . 7
       5.2.1.  Operations in DNS64 . . . . . . . . . . . . . . . . . . 7
       5.2.2.  Pros  . . . . . . . . . . . . . . . . . . . . . . . . . 8
       5.2.3.  Cons  . . . . . . . . . . . . . . . . . . . . . . . . . 8
   6.  Security Considerations . . . . . . . . . . . . . . . . . . . . 8
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 9
     8.1.  Normative References  . . . . . . . . . . . . . . . . . . . 9
     8.2.  Informative References  . . . . . . . . . . . . . . . . . . 9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . . 9


















Li, et al.                 Expires May 3, 2012                  [Page 2]


Internet-Draft      DNS64-based NAT64 Load-balancing        October 2011


1.  Introduction

   The problems of bottlenecks and requirements on load balancing in
   translation technology have been stated in
   [I-D.li-v6ops-load-balancing-requirement].  Several approaches of
   NAT64[RFC6146] load-balancing are generally explained in
   [I-D.zhang-behave-nat64-load-balancing] and the approaches' pros and
   cons are discussed respectively.

   This document generalizes the previous document and recommends that
   the DNS64[RFC6147] based round robin prefix selection policy be a
   proper method for the NAT64 load-balancing.

   This document also gives the suggested implementations of DNS64 based
   Round Robin policy in detail.


2.  Requirements Language

   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 [RFC2119].


3.  Terminology

   The terminology used in this document is consistent with IPv6
   Addressing of IPv4/IPv6 Translators[RFC6052], DNS64[RFC6147],
   Considerations on NAT64 Load-
   Balancing[I-D.zhang-behave-nat64-load-balancing].  Besides, the
   following terminology is defined in this document.

   One-dimensional circular data structure (ODCDS): Each data record is
   stored in one of the elements organized as a circle.  All the
   elements can be circularly and sequentially accessed.  It can be
   implemented using one-dimensional array or circularly linked list.

   Two-dimensional circular data structure (TDCDS): Each data record is
   stored in one of the elements that are organized as a circle (inner
   circle).  Each such circle is one of the elements that are organized
   in another circle (outer circle).  It can be implemented using two-
   dimensional array or circularly linked list.

   Prefix64: An IPv6 prefix used for synthesizing IPv6 addresses
   representing IPv4 hosts in the IPv6 realm.  See IPv6 Addressing of
   IPv4/IPv6 Translators[RFC6052] for more details on how IPv4-embedded
   IPv6 addresses are built.




Li, et al.                 Expires May 3, 2012                  [Page 3]


Internet-Draft      DNS64-based NAT64 Load-balancing        October 2011


4.  Considerations on NAT64 Load-balancing Solutions

   As described in [I-D.li-v6ops-load-balancing-requirement], there are
   four key factors that should be considered when designing the load-
   balancing solutions.

4.1.  Target Device

   Since NAT64 is a kind of translation technology, the target device
   should be the translation gateway - NAT64 translator and ALGs on it.
   The load-balancer will identify different NAT64 translators by
   Prefix64s.

4.2.  Selection Policy

   Compared with Round-Robin Selection Policy, the other policies listed
   in [I-D.li-v6ops-load-balancing-requirement] and
   [I-D.zhang-behave-nat64-load-balancing] have obvious shortages when
   applied on NAT64 load balancing.

   o  Anycast-Based Selection Policy: The policy can't be used to
      stateful translation technology such as NAT64.

   o  Source-Based Selection Policy: The policy's efficiency is
      constrained by the selection criteria.  Besides, for the reason
      that the user can only access one NAT64, the whole system suffers
      from less robust capability.

   o  Destination-Based Selection Policy: Involve human to fairly assign
      certain IPv4 server to several different NAT64s.  Otherwise, the
      NAT64 in charge of some popular web-site will suffer from much
      traffic.

   o  Dynamic Selection Policy: Introduce SNMP or similar techniques to
      collect the information of NAT64s'status will cause additional
      communication overheads and management complexity.

4.3.  Load-balancer Location

   The load-balancer can be implemented in Terminal/Host, Access Gateway
   or Network Servers.  Since Access Gateway is not necessary in NAT64
   enviroment and least influence should be made on Terminal/Host, load-
   balancer should be located in Network Servers.

4.4.  Transport Protocol

   The candidates are DNS, DHCP, ICMPv6 and RADIUS protocol.  Since
   NAT64 relies on DNS64 which returns the synthesized IPv6 addresses,



Li, et al.                 Expires May 3, 2012                  [Page 4]


Internet-Draft      DNS64-based NAT64 Load-balancing        October 2011


   it's reasonable to use DNS protocol to transport IPv6 addresses with
   Prefix64 and steer traffic toward different NAT64 translators.

4.5.  Conclusion

   This document recommends DNS64-based round robin policy to balance
   the workload of NAT64 translators.

   Prefix64s corresponding to NAT64 translators should be configured in
   a DNS64 server.  On receiving AAAA query from user and no available
   AAAA record found, the DNS64 server circularly selects Prefix64 to be
   combined with available A records.  All the synthesized AAAA records
   will be returned to user.

   Since Prefix64s are used in round-robin way, users' traffic will
   routed to different NAT64 translators and the load of translation
   gateway is well balanced among many different NAT64 translators.

   Note: In some cases, NAT64 might decouple with DNS64 to directly
   communicate with IPv4 servers.  For example, IPv6 hosts get
   destination address through IPv4-literal in the application itself,
   other than DNS64.  These hosts may synthesize NAT64 prefix with such
   IPv4 referral information.  In this particular case, the recommended
   DNS64-based policy is not applied.


5.  Recommended Implementations

   Two specific implementations of DNS64-based NAT64 Round Robin load-
   balancing mechanism are recommended here.  They are provided as
   referential implementations.  Because the detailed implementation
   isn't visible to other devices, developers may use other better data
   structure, if any.

   Solution 1:

   Use two kinds of ODCDS which can be implemented by one-dimensional
   array or circularly linked list.  One is used to store all the
   Prefix64s and the other is used to store all the returned A records.
   When AAAA query arrives, DNS64 dynamically generates AAAA records
   from one circularly selected Prefix64 and all the A records and
   returns them to user.

   Solution 2:

   Use one kind of TDCDS which can be implemented by two-dimensional
   array or circularly linked list.  It stores all the synthesized AAAA
   records with the same Prefix64 as one of many inner circles.  All the



Li, et al.                 Expires May 3, 2012                  [Page 5]


Internet-Draft      DNS64-based NAT64 Load-balancing        October 2011


   inner circles are elements of a outer circle.  When AAAA query
   arrives, DNS64 retrieves all the cached AAAA records with the same
   Prefix64 circularly and returns them to user.

5.1.  ODCDS-Based Solution

   This solution creates two kinds of ODCDS (O1 and O2) in DNS64 server.
   O1 stores all the Prefix64s when DNS64 starts up.  O2 stores all the
   IPv4 addresses from returned results when upstream DNS server
   response to A query.  O1's instance is only one but O2's instance can
   be multiple.  Each O2's instance is corresponding to a different
   FQDN.

5.1.1.  Operations in DNS64

   When a user requires an AAAA record of a new FQDN and there is no
   AAAA record, the DNS64 will require A record.  Once A records
   returned, an O2's instance is created.  It caches all the returned
   IPv4 addresses ( some IPv4 server's FQDN has more than one IPv4
   address ).  Then, the following steps should be performed.

   1.  Fetch the Prefix64 in O1's current position and the IPv4 address
   in O2's current position.

   2.  Combine the Prefix64 with the IPv4 address as described in
   DNS64[RFC6147].

   3.  Move current position in O2 onto the next element.  If current
   position in O2 has gone back to the start, move both current
   positions in O1 and O2 onto the next element together and then go to
   step 4.  Else, hold the same position in O1 and then go to step 1.

   4.  Return all the synthetic AAAA records generated in every step 2
   to user.  These AAAA records have the same Prefix64.

   If a user requires an AAAA record of a cached FQDN, start directly at
   step 1.  Then, No O2's instances will be created.

5.1.2.  Pros

   + Ensure reasonable distribution among a set of NAT64 devices and a
   set of business servers;

   + Only store one copy of IPv6 prefix and necessary IPv4 addresses to
   occupy less memory space.






Li, et al.                 Expires May 3, 2012                  [Page 6]


Internet-Draft      DNS64-based NAT64 Load-balancing        October 2011


5.1.3.  Cons

   - A given IPv6-only hosts may be redirected to distinct NAT64
   devices.  Therefore, distinct IPv4 address may be used to represent
   the IPv6-only host in the IPv4 realm
   [I-D.zhang-behave-nat64-load-balancing];

   - A user can not be redirected to the NAT64 device where it has
   instructed its port forwarding entries
   [I-D.zhang-behave-nat64-load-balancing];

   - Involve certain time cost while synthesizing all the AAAA records
   with the same Prefix64 every time.

5.2.  TDCDS-Based Solution

   This solution creates one kind of TDCDS (T1) in DNS64 server.  T1
   stores all the synthetic IPv6 addresses when upstream DNS server
   response to A query.  T1's instance can be multiple.  Each T1's
   instance is corresponding to a different FQDN.

5.2.1.  Operations in DNS64

   When a user requires an AAAA record of a new FQDN and there is no
   AAAA record, DNS64 will require A record.  Once A records returned,
   an T1's instance is created corresponding to this FQDN.  Suppose the
   inner circle stores all the AAAA records with the same Prefix64 and
   many such circles are stored in the outer circle.  Every Prefix64
   available is bound with an element or an inner circle in outer
   circle.  Then, the following steps should be performed.

   1.  Fetch the Prefix64 in current position of outer circle and all
   the returned IPv4 addresses.

   2.  Combine the Prefix64 with IPv4 addresses as described in RFC6147
   [RFC6147] and store them circularly in the elements of inner circle.

   3.  Move current position in outer circle onto the next element.  If
   current position in outer circle has gone back to the start, then go
   to step 4.  Else, go to step 1.

   4.  Retrieve the AAAA record located by current position in outer
   circle and current position in corresponding inner circle.  Move
   current position in inner circle to the next element.

   5.  If current position in inner circle has gone back to the start,
   return all the synthetic AAAA records retrieved at step 4 to user,
   move current position in outer circle onto the next inner circle and



Li, et al.                 Expires May 3, 2012                  [Page 7]


Internet-Draft      DNS64-based NAT64 Load-balancing        October 2011


   move the current position in corresponding inner circle onto the
   element with exactly one element farther than the current position in
   previous inner circle.  Else, hold the same position in the outer
   circle and go to step 4.

   If a user requires an AAAA record of a cached FQDN, start directly at
   step 4.  Then, No T1's instances will be created.

5.2.2.  Pros

   + Ensure reasonable distribution among a set of NAT64 devices and a
   set of business servers;

   + Cache all the AAAA record to improve response speed.

5.2.3.  Cons

   - A given IPv6-only hosts may be redirected to distinct NAT64
   devices.  Therefore, distinct IPv4 address may be used to represent
   the IPv6-only host in the IPv4 realm
   [draft-zhang-behave-nat64-load-balancing];

   - A user can not be redirected to the NAT64 device where it has
   instructed its port forwarding entries
   [draft-zhang-behave-nat64-load-balancing];

   - Involve certain space cost while caching all the synthesized IPv6
   addresses.


6.  Security Considerations

   No potential security problem is introduced in this document.


7.  IANA Considerations

   This document makes no request of IANA.

   Note to RFC Editor: this section may be removed on publication as an
   RFC.


8.  References







Li, et al.                 Expires May 3, 2012                  [Page 8]


Internet-Draft      DNS64-based NAT64 Load-balancing        October 2011


8.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

8.2.  Informative References

   [I-D.li-v6ops-load-balancing-requirement]
              Li, Z., Zhao, Q., Huang, X., Ma, Y., and K. Building,
              "Analysis on Load Balancing Requirement in IPv4/IPv6
              Transition", draft-li-v6ops-load-balancing-requirement-01
              (work in progress), July 2011.

   [I-D.zhang-behave-nat64-load-balancing]
              Zhang, D., Xu, X., and M. Boucadair, "Considerations on
              NAT64 Load-Balancing",
              draft-zhang-behave-nat64-load-balancing-03 (work in
              progress), July 2011.

   [RFC6052]  Bao, C., Huitema, C., Bagnulo, M., Boucadair, M., and X.
              Li, "IPv6 Addressing of IPv4/IPv6 Translators", RFC 6052,
              October 2010.

   [RFC6146]  Bagnulo, M., Matthews, P., and I. van Beijnum, "Stateful
              NAT64: Network Address and Protocol Translation from IPv6
              Clients to IPv4 Servers", RFC 6146, April 2011.

   [RFC6147]  Bagnulo, M., Sullivan, A., Matthews, P., and I. van
              Beijnum, "DNS64: DNS Extensions for Network Address
              Translation from IPv6 Clients to IPv4 Servers", RFC 6147,
              April 2011.


Authors' Addresses

   Zhenqiang Li
   China Mobile
   Unit2, Dacheng Plaza, No. 28 Xuanwumenxi Ave, Xicheng District
   Beijing  100053
   P.R. China

   Email: lizhenqiang@chinamobile.com









Li, et al.                 Expires May 3, 2012                  [Page 9]


Internet-Draft      DNS64-based NAT64 Load-balancing        October 2011


   Gang Chen
   China Mobile
   Unit2, Dacheng Plaza, No. 28 Xuanwumenxi Ave, Xicheng District
   Beijing  100053
   P.R. China

   Email: chengang@chinamobile.com


   Qin Zhao
   Beijing University of Posts and Telecommunications
   Information Network Center, No. 10 Xitucheng Road, Haidian District
   Beijing  100876
   P.R. China

   Email: zhaoqin@bupt.edu.cn


   Xiaohong Huang
   Beijing University of Posts and Telecommunications
   Information Network Center, No. 10 Xitucheng Road, Haidian District
   Beijing  100876
   P.R. China

   Email: huangxh@bupt.edu.cn


   Yan Ma
   Beijing University of Posts and Telecommunications
   Information Network Center, No. 10 Xitucheng Road, Haidian District
   Beijing  100876
   P.R. China

   Email: mayan@bupt.edu.cn

















Li, et al.                 Expires May 3, 2012                 [Page 10]