Internet DRAFT - draft-hazeyama-sunset4-dns-a-filter

draft-hazeyama-sunset4-dns-a-filter






Network Working Group                                        H. Hazeyama
Internet-Draft                                      NAIST / WIDE Project
Intended status: Informational                               T. Ishihara
Expires: January 11, 2014                  Univ. of Tokyo / WIDE Project
                                                             O. Nakamura
                                               Keio Univ. / WIDE Project
                                                           July 10, 2013


  DNS A Record Filtering for the migration from dual stack networks to
                          IPv6 only networks.
                 draft-hazeyama-sunset4-dns-a-filter-00

Abstract

   Filtering out of A records of a DNS response on a DNS proxy, we call
   it ``DNS A record filtering'', is an effective and efficient solution
   as a smooth migration to IPv6 only networks.  DNS A record filtering
   can mitigate fallback problems of dual stack nodes on IPv6 only
   environment.  This memo mentions the components of the DNS A record
   filter solution, procedure of DNS queries and refers current issues.

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 January 11, 2014.

Copyright Notice

   Copyright (c) 2013 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



Hazeyama, et al.        Expires January 11, 2014                [Page 1]

Internet-Draft             DNS A Record Filter                 July 2013


   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
     1.1.  Requirements Language  . . . . . . . . . . . . . . . . . .  3
   2.  Technology and Terminology . . . . . . . . . . . . . . . . . .  3
   3.  The mechanism of DNS A Record Filtering  . . . . . . . . . . .  4
     3.1.  Assumptions  . . . . . . . . . . . . . . . . . . . . . . .  4
     3.2.  Components . . . . . . . . . . . . . . . . . . . . . . . .  4
     3.3.  Procedure  . . . . . . . . . . . . . . . . . . . . . . . .  6
       3.3.1.  IPv6-only hosts  . . . . . . . . . . . . . . . . . . .  6
       3.3.2.  IPv6-full-capable dual stack host  . . . . . . . . . .  6
       3.3.3.  IPv6-partial-capable dual stack host . . . . . . . . .  7
   4.  Discussions  . . . . . . . . . . . . . . . . . . . . . . . . .  9
     4.1.  Limitation for IPv4 only applications  . . . . . . . . . .  9
     4.2.  CNAME of the reply to an type A query  . . . . . . . . . .  9
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . .  9
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  9
   7.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
     7.1.  Normative References . . . . . . . . . . . . . . . . . . . 10
     7.2.  Informative References . . . . . . . . . . . . . . . . . . 10
   Appendix A.  Acknowledgments . . . . . . . . . . . . . . . . . . . 11
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11






















Hazeyama, et al.        Expires January 11, 2014                [Page 2]

Internet-Draft             DNS A Record Filter                 July 2013


1.  Introduction

   In an IPv6 only network [RFC6586], that is composed of DHCP6 and
   DNS64/NAT64, IPv4/IPv6 dual stack hosts have fallback problems due to
   the partial IPv6 capability, happy eyeball functions [RFC6555],
   default route on IPv4 link local address due to the link local
   assumption[RFC3927], arrival timings of DNS responses, and so on.

   As well as so-called DNS AAAA record filtering in IPv4 only networks,
   filtering out of A records of a DNS response on a DNS proxy, we call
   it ``DNS A record filter proxy'', is an effective and efficient
   solution to mitigate fallback problems of dual stack nodes on IPv6
   only environment.

   DNS A record filtering solution allows dual stack nodes to resolve
   names both by IPv4 and IPv6 by notifying the IPv4 address of an DNS A
   record filter proxy through DHCP4 and the IPv6 address of the DNS A
   record filter proxy through DHCP6.  On the other hand, a DNS A record
   filter proxy forces dual stack nodes to conduct actual communications
   after the name query procedure through IPv6, by telling only AAAA or
   NAT64 mapped AAAA records to dual stack nodes.  In this solution, no
   special action is required on dual stack nodes.  A network operator
   can choose DNS64 and NAT64 location along with their design policy.

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


2.  Technology and Terminology

   In this document, the following terms are used.  "Dual Stack" refers
   to a technique for providing complete support for both Internet
   protocols -- IPv4 and IPv6 -- in hosts and routers [RFC4213].

   "NAT64" refers to a Network Address Translator - Protocol Translator
   defined in [RFC6052], [RFC6144], [RFC6145], [RFC6146], [RFC6384].

   "DNS64" refers DNS extensions to use NAT64 translation from IPv6
   clients to IPv4 servers with name resolution mechanisms that is
   defined in [RFC6147].

   "DHCP4" refers Dynamic Host Configuration Protocol for IPv4 that is
   defined in [RFC2131].

   "DHCP6" refers Dynamic Host Configuration Protocol for IPv6.  So



Hazeyama, et al.        Expires January 11, 2014                [Page 3]

Internet-Draft             DNS A Record Filter                 July 2013


   called "Stateful DHCP6" is defined in [RFC3315] and "Stateless DHCP6"
   is defined in [RFC3736].  "DHCP-PD" or "DHCPv6 Prefix Delegation"
   refers IPv6 Prefix Options for DHCP6 that is initially defined in
   [RFC3633] and updated in [RFC6603].

   "ND" refers Neighbor Discovery for IP version 6 (IPv6) that is
   defined in [RFC4861] and updated in [RFC5942].


3.  The mechanism of DNS A Record Filtering

3.1.  Assumptions

   The DNS A record filtering simply filters out ``A record'' entry of a
   DNS reply on a DNS proxy.  As our assumption, the DNS A record
   filtering solution is mainly used in an IPv6 only network by
   combining DNS64/NAT64, DHCP4 and DHCP6.

   We also assume that hosts are dual stack capable, that is, hosts have
   ND function and the IPv6 address assignment function by RA at least.
   Stateful DHCP6, Stateless DHCP6 and IPv6 DNS query functions are
   preferable to be equipped by hosts.

3.2.  Components

   The components of the network, where this DNS A record filtering is
   employed, are as follows;

   o  DHCP4 server: this DHCP4 server offers a private IPv4 address to
      mitigate the long fall back problem due to the IPv4 link local
      assumption.  The DHCP4 server also offers the IPv4 address of the
      DNS A record filter proxy.  To avoid the selection of the IPv4 by
      Happy Eyeball [RFC6555] in a dual stack host, this DHCP4 server
      MUST NOT provide the IPv4 default route.

   o  DHCP6 server: this DHCP6 server MUST provide the IPv6 address of
      the DNS A record filter proxy.  Both stateful DHCP6 and stateless
      DHCP6 can be employed.  If the subnet is composed of a security
      switch and/or security wi-fi controllers, stateful DHCP6 is prefer
      to avoid the blocking due to the multiple temporary IPv6 address
      on a host.

   o  DNS A record filter proxy : this DNS proxy is the key component of
      this solution.  The DNS proxy SHOULD be located on the leaf
      subnet.  The DNS proxy has a private IPv4 address that SHOULD be
      the same subnet address provided by the DHCP4.  The DNS proxy has
      an IPv6 address that is announced to hosts through DHCP6.




Hazeyama, et al.        Expires January 11, 2014                [Page 4]

Internet-Draft             DNS A Record Filter                 July 2013


   o  DNS64 server : at least, one DNS64 server is required.  The DNS A
      record filter proxy forwards all queries to this DNS64 server
      directly, or several DNS forwarder can be placed for load
      balancing of DNS64 servers

   o  Authoritative DNS servers : these authoritative DNS servers would
      be queried by DNS64 servers.  These authoritative DNS servers MUST
      NOT return inappropriate replies mentioned in [RFC4074] to kick
      the fallback function of DNS64 servers

   o  NAT64 translators : at least, one NAT64 translator is placed that
      can be reached by hosts through IPv6.  A NAT64 translator can be
      settled as the gateway of the leaf subnet, or an aggregated
      translator of the intra network, or a global reachable open
      translator.  Several NAT64 translators can be registered in DNS64
      servers for the load balancing or for handling different IPv4
      prefixes by each NAT64 translrator.

   Figure 1 shows a sample network topology of this solution.


          +-----------------+
          |Authoritative DNS|
          +-----------------+
                 |
      +------ IPv6 Internet ------+       +---- IPv4 Internet ---+
                 |                                        |
          +--------------+   +-------+                +------+
          |  IPv6 router |   | DNS64 |                | NAT64|
          +--------------+   +-------+                +------+
                 |               |                        |
          +--------------- IPv6 backbone ----------------------+
                              |
         +----------+   +-----------+      +--------+  +--------+
         | A Record |   |   IPv6    |      | DHCP6  |  | DHCP4  |
         | Filter   |   |   Router  |      | server |  | server |
         | Proxy    |   +-----------+      +--------+  +--------+
         +----------+         |                |            |
             |                |                |            |
      +--- /64 prefix segment, closed private IPv4 segment ------+
                    |                          |
                    |                          |
           +----------------+         +------------------+
           |ipv6-only hosts |         | dual stack hosts |
           +----------------+         +------------------+


            A sample network topology of DNS A record filtering



Hazeyama, et al.        Expires January 11, 2014                [Page 5]

Internet-Draft             DNS A Record Filter                 July 2013


                                 Figure 1

3.3.  Procedure

3.3.1.  IPv6-only hosts

   The procedure on IPv6-only hosts is as follows;

   o  The host connects to the leaf subnet in layer 2 level.

   o  The host gets global IPv6 address through RA or stateful DHCP6,
      and also learns the IPv6 address of the DNS A record filter proxy.

   o  When the host connects to an URL, the hosts queries by type ANY or
      by type AAAA to the DNS A record filter proxy through IPv6.

   o  The DNS A record filter proxy forwards the received the type ANY
      query to the upper DNS forwarder or DNS64 server.

   o  When the DNS64 server receives the query, the DNS64 server
      forwards the issued FQDN to the upper authoritative DNS.

      *  If the FQDN has AAAA record, the DNS64 returns AAAA record to
         the DNS A record filter proxy.

      *  If the FQDN has only A record, the DNS64 returns NAT64 prefix
         mapped AAAA record to the DNS A record filter proxy.

      *  The DNS64 server or the upper DNS forwarder may return A record
         to the DNS A record filter proxy with AAAA record.

   o  When the DNS A record filter proxy receives the reply, the DNS A
      record filter proxy filters out A record if the reply contains A
      record.

   o  The DNS A record filter proxy returns only AAAA records to the
      host.

   o  The host access to the issued URL through the IPv6 address of the
      destination or the NAT64 prefix mapped address.

3.3.2.  IPv6-full-capable dual stack host

   An IPv6-full-capable dual stack node equips DHCP6 function and IPv6
   DNS query function, therefore, IPv6-full-capable dual stack node can
   send DNS queries through both IPv4 and IPv6.

   The procedure on IPv6-full-capable dual stack hosts (like Windows 7,



Hazeyama, et al.        Expires January 11, 2014                [Page 6]

Internet-Draft             DNS A Record Filter                 July 2013


   etc.) is as follows;

   o  The host connects to the leaf subnet in layer 2 level.

   o  The host gets a global IPv6 address through RA or stateful DHCP6,
      and also learns the IPv6 address of the DNS A record filter proxy.

   o  The host also gets a private IPv4 address through DHCP4, and also
      learns the IPv4 address of the DNS A record filter proxy.

   o  The network connectivity check sequence of the Operating System
      may run, then, IPv6 will be selected on the host because the IPv4
      is not global reachable.

   o  When the host connects to an URL, the host queries by type ANY to
      the DNS A record filter proxy through IPv6.

   o  The DNS A record filter proxy forwards the received type ANY query
      to the upper DNS forwarder or DNS64 server.

   o  When the DNS64 server receives the query, the DNS64 server
      forwards the issued FQDN to the upper authoritative DNS.

      *  If the FQDN has AAAA record, the DNS64 returns AAAA record to
         the DNS A record filter proxy.

      *  If the FQDN has only A record, the DNS64 returns NAT64 prefix
         mapped AAAA record to the DNS A record filter proxy.

      *  The DNS64 server or the upper DNS forwarder may return A record
         to the DNS A record filter proxy with AAAA record.

   o  When the DNS A record filter proxy receives the reply, the DNS A
      record filter proxy filters out A record if the reply contains A
      record.

   o  The DNS A record filter proxy returns only AAAA records to the
      host.

   o  The host access to the issued URL by using the IPv6 address of the
      destination or the NAT64 prefix mapped address.

3.3.3.  IPv6-partial-capable dual stack host

   An IPv6-partial-capable dual stack node does not equip either DHCP6
   function or IPv6 DNS query function, therefore, IPv6-partial-capable
   dual stack node will send DNS queries through only IPv4.  However,
   IPv6-partial-capable dual stack can recognize AAAA record or IPv6



Hazeyama, et al.        Expires January 11, 2014                [Page 7]

Internet-Draft             DNS A Record Filter                 July 2013


   address.

   The procedure on IPv6-partial-capable dual stack host is as follows;

   o  The host connects to the leaf subnet in layer 2 level.

   o  The host gets a global IPv6 address through RA.

   o  The host also gets a private IPv4 address through DHCP4, and also
      learns the IPv4 address of the DNS A record filter proxy.

   o  The network connectivity check sequence of the Operating System
      may run, then, IPv6 may be selected on the IPv6-preferred host
      because the IPv4 is not global reachable.  In some case, the
      network connectivity check may pass by name resolution to the
      anchor server, or the network connectivity may run again with
      certain interval.

   o  When the host connects to an URL, the host queries by type ANY to
      the DNS A record filter proxy through IPv4.

   o  The DNS A record filter proxy forwards the received type ANY query
      to the upper DNS forwarder or DNS64 server through IPv6.

   o  When the DNS64 server receives the query, the DNS64 server
      forwards the issued FQDN to the upper authoritative DNS.

      *  If the FQDN has AAAA record, the DNS64 returns AAAA record to
         the DNS A record filter proxy.

      *  If the FQDN has only A record, the DNS64 returns NAT64 prefix
         mapped AAAA record to the DNS A record filter proxy.

      *  The DNS64 server or the upper DNS forwarder may return A record
         to the DNS A record filter proxy with AAAA record.

   o  When the DNS A record filter proxy receives the reply, the DNS A
      record filter proxy filter out A record if the reply contains A
      record.

   o  The DNS A record filter proxy returns only AAAA records to the
      host.

   o  The host access to the issued URL by using the IPv6 address of the
      destination or the NAT64 prefix mapped address.






Hazeyama, et al.        Expires January 11, 2014                [Page 8]

Internet-Draft             DNS A Record Filter                 July 2013


4.  Discussions

4.1.  Limitation for IPv4 only applications

   As mentioned in [RFC6586], IPv4-only (or IPv6-incapable) applications
   exist.  Such IPv4-only applications will not work on this DNS A
   record filtering environment.  It is preferable that such IPv4-only
   applications become dual stack applications if possible.

4.2.  CNAME of the reply to an type A query

   We conducted a field trial of this DNS A record filter solution in
   Interop Tokyo 2013.  We provided an IPv6-only Wi-Fi access with this
   DNS A record filter solution.  We used the current Debian release and
   bind 9.9.2-p1 patch provided from WIDE project as the DNS A Record
   filter proxy.

   In the hot stage of Interop Tokyo 2013, we met a trouble case of the
   current DNS A record filter.  In the trouble case, a host used
   Firefox browser and crawled several web pages for test.  In some web
   page, several contents were lost.  We inspected by packet captures,
   the reply of the A query to the host arrived faster than the arrival
   of the reply of AAAA record.  The reply of A query contained as type
   CNAME, that was not filtered in the current bind A filter patch.
   (The A filter patch removed type A record of the CNAME.)  On the
   other hand, in a successful case, the reply of AAAA record, that
   contained type CNAME and type AAAA of the CNAME, arrived faster than
   the type A reply.

   Of course, we have to conduct further investigation and tests, the
   CNAME on a type A reply would be removed by DNS A filter proxy as
   well as type A record on the type A reply.


5.  Security Considerations

   As well as mentioned in [RFC6586], the use of IPv6 instead of IPv4 by
   itself does not make a big security difference.


6.  IANA Considerations

   This document has no IANA implications.


7.  References





Hazeyama, et al.        Expires January 11, 2014                [Page 9]

Internet-Draft             DNS A Record Filter                 July 2013


7.1.  Normative References

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

   [RFC3736]  Droms, R., "Stateless Dynamic Host Configuration Protocol
              (DHCP) Service for IPv6", RFC 3736, April 2004.

   [RFC4213]  Nordmark, E. and R. Gilligan, "Basic Transition Mechanisms
              for IPv6 Hosts and Routers", RFC 4213, October 2005.

7.2.  Informative References

   [RFC2131]  Droms, R., "Dynamic Host Configuration Protocol",
              RFC 2131, March 1997.

   [RFC3315]  Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C.,
              and M. Carney, "Dynamic Host Configuration Protocol for
              IPv6 (DHCPv6)", RFC 3315, July 2003.

   [RFC3633]  Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic
              Host Configuration Protocol (DHCP) version 6", RFC 3633,
              December 2003.

   [RFC3927]  Cheshire, S., Aboba, B., and E. Guttman, "Dynamic
              Configuration of IPv4 Link-Local Addresses", RFC 3927,
              May 2005.

   [RFC4074]  Morishita, Y. and T. Jinmei, "Common Misbehavior Against
              DNS Queries for IPv6 Addresses", RFC 4074, May 2005.

   [RFC4861]  Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
              "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
              September 2007.

   [RFC5942]  Singh, H., Beebee, W., and E. Nordmark, "IPv6 Subnet
              Model: The Relationship between Links and Subnet
              Prefixes", RFC 5942, July 2010.

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

   [RFC6144]  Baker, F., Li, X., Bao, C., and K. Yin, "Framework for
              IPv4/IPv6 Translation", RFC 6144, April 2011.

   [RFC6145]  Li, X., Bao, C., and F. Baker, "IP/ICMP Translation
              Algorithm", RFC 6145, April 2011.



Hazeyama, et al.        Expires January 11, 2014               [Page 10]

Internet-Draft             DNS A Record Filter                 July 2013


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

   [RFC6384]  van Beijnum, I., "An FTP Application Layer Gateway (ALG)
              for IPv6-to-IPv4 Translation", RFC 6384, October 2011.

   [RFC6555]  Wing, D. and A. Yourtchenko, "Happy Eyeballs: Success with
              Dual-Stack Hosts", RFC 6555, April 2012.

   [RFC6586]  Arkko, J. and A. Keranen, "Experiences from an IPv6-Only
              Network", RFC 6586, April 2012.

   [RFC6603]  Korhonen, J., Savolainen, T., Krishnan, S., and O. Troan,
              "Prefix Exclude Option for DHCPv6-based Prefix
              Delegation", RFC 6603, May 2012.


Appendix A.  Acknowledgments

   T. Jinmei of Internet Systems Consortium for providing DNS A filter
   patch of Bind 9.

   O. Onoe of Sony Corporation for his deep inspection and testing of
   end node devices in WIDE project meeting in September 2012.

   Interop Tokyo 2013 NOC members and Nano Opt Media for providing a
   field trial of this DNS A Record Filter solution as a service
   network.  Especially, K. Mano of A10 Networks and STM members for
   their deep inspection and testing.


Authors' Addresses

   Hiroaki Hazeyama
   NAIST / WIDE Project
   Takayama 8916-5
   Nara,
   Japan

   Phone: +81 743 72 5216
   Email: hiroa-ha@is.naist.jp




Hazeyama, et al.        Expires January 11, 2014               [Page 11]

Internet-Draft             DNS A Record Filter                 July 2013


   Tomohiro Ishihara
   Univ. of Tokyo / WIDE Project
   3-8-1 Komaba, Meguro
   Tokyo,
   Japan

   Email: sho@c.u-tokyo.ac.jp


   Osamu Nakamura
   Keio Univ. / WIDE Project
   5322 Endo
   Kanagawa,
   Japan

   Email: osamu@wide.ad.jp



































Hazeyama, et al.        Expires January 11, 2014               [Page 12]