<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-rfvlb-behave-v6-content-for-v4-clients-00"
     ipr="trust200902">
  <front>
    <title abbrev="Access to IPv6 content for IPv4-only clients">Framework for
    accessing IPv6 content for IPv4-only clients</title>

    <author fullname="Branimir Rajtar" initials="B." surname="Rajtar">
      <organization>Hrvatski Telekom</organization>

      <address>
        <postal>
          <street/>

          <city>Zagreb</city>

          <country>Croatia</country>
        </postal>

        <email>branimir.rajtar@t.ht.hr</email>
      </address>
    </author>

    <author fullname="Ian Farrer" initials="I." surname="Farrer">
      <organization>Deutsche Telekom AG</organization>

      <address>
        <postal>
          <street/>

          <city>Bonn</city>

          <country>Germany</country>
        </postal>

        <email>ian.farrer@telekom.de</email>
      </address>
    </author>

    <author fullname="Ale&scaron; V&iacute;zdal" initials="A."
            surname="V&iacute;zdal">
      <organization>T-Mobile CZ</organization>

      <address>
        <postal>
          <street/>

          <city>Prague</city>

          <country>Czech Republic</country>
        </postal>

        <email>ales.vizdal@t-mobile.cz</email>
      </address>
    </author>

    <author fullname="Xing Li" initials="X." surname="Li">
      <organization>CERNET Center/Tsinghua University</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <country>China</country>
        </postal>

        <email>xing@cernet.edu.cn</email>
      </address>
    </author>

    <author fullname="Congxiao Bao" initials="C." surname="Bao">
      <organization>CERNET Center/Tsinghua University</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <country>China</country>
        </postal>

        <email>congxiao@cernet.edu.cn</email>
      </address>
    </author>

    <date day="1" month="July" year="2013"/>

    <area>Transport</area>

    <workgroup>Behave WG</workgroup>

    <abstract>
      <t>With the expansion of IPv6 usage and content available on IPv6, it is
      important to enable clients with legacy (i.e. non IPv6-ready) operating
      systems to access such content.</t>

      <t>This document describes how this can be achieved and how it can be
      implemented in a real-world scenario.</t>
    </abstract>

    <note title="Requirements Language">
      <t>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 <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>At the time of writing, IPv6 is still not widely deployed. Several
      reasons can be named, one of which is the fact that IPv4-only operating
      systems are still used by many end customers and account for a large
      fraction of total Internet traffic. Also, with the introduction of
      Carrier-Grade NAT, exhaustion of IPv4 address space is no longer an
      issue which would be the key driver of the transition to IPv6.</t>

      <t>With the growth of IPv6 traffic, servers only supporting IPv6 are
      appearing on the Internet and IPv4-only clients must be able to access
      content available on them. The following sections describe a methodology
      how this can achieved.</t>

      <section title="Solution Requirements">
        <t>To clarify when this approach is applicable, the following
        requirements can be named:<list style="numbers">
            <t>The content must be reachable through IPv6, i.e. the server on
            which the content is stored must have a valid IPv6 address and a
            working IPv6 stack. As can be seen later in the document, this in
            turn implies that the server must have a valid AAAA record.</t>

            <t>The client must support only IPv4. The other alternative is
            also that it supports IPv6, but for some reason uses only IPv4 to
            access content on the Internet.</t>

            <t>Client's DNS queries must be proxied by a dedicated
            appliance.</t>

            <t>All traffic between the client and the server must pass through
            a device capable of performing translation between IPv4 and IPv6,
            as described in <xref target="RFC6145"/> and <xref
            target="RFC6052"/>.</t>
          </list>It is feasible that requirements three and four can be
        combined in one device and managed by the service provider.</t>
      </section>

      <section title="Covered Scenarios">
        <t>As described in <xref target="RFC6144"/>, there are multiple
        scenarios for IPv4/IPv6 translation. This document covers mainly
        Scenario 4: An IPv4 Network to the IPv6 Internet, but is not limited
        to be used for the following scenarios as well:<list style="symbols">
            <t>Scenario 2: The IPv4 Internet to an IPv6 Network</t>

            <t>Scenario 6: An IPv4 Network to an IPv6 Network</t>
          </list>These scenarios are not subject of this draft and can be
        elaborated in future documents, if deemed necessary.</t>
      </section>
    </section>

    <section title="Algorithm Description">
      <t>This section describes how the algorithm works and the roles of every
      functional element. The steps are in cronological order, and display the
      scenario when the IPv4 client initiates a request for example.com which
      is running on an IPv6-only server.</t>

      <t><list style="numbers">
          <t>The customer types in "example.com" into his web browser and
          initiaties the request for the web page.</t>

          <t>The client operating system initiates a DNS query for
          "example.com". Since the client uses IPv4, the query is for an A
          record.</t>

          <t>DNS proxy perceives that the query is for an A resource record
          only and assumes the client is not IPv6 capable. Therefore, it
          initiates a DNS query for A and AAAA records for "example.com" to
          the authorative DNS server.</t>

          <t>If a DNS response is received with only an AAAA record, the DNS
          proxy assumes that the server is IPv6-only. (In case the proxy
          receives both A or AAAA records, or just an A record, the A record
          is returned to the client and the process ends here.)</t>

          <t>As a response to the client, the proxy returns a fake A record
          for "example.com" pointing at an IPv4 address from the private
          address space (as described in <xref target="RFC1918"/> ).</t>

          <t>The private IPv4 address and the resolved IPv6 address of
          "example.com" must be kept in translation table at the device which
          performs the actual translation. The time the translation would stay
          active in the table would be equal to the TTL field of the DNS
          response. How the DNS-related information is conveyed from the DNS
          proxy to the translation device is out of the scope of this
          document.</t>

          <t>All IPv4 traffic from the client to "example.com" will be
          translated to IPv6 as described in <xref target="RFC6145"/>. Unlike
          NAT-PT described in <xref target="RFC2766"/> (moved to Historic
          Status by <xref target="RFC4966"/>), the translation is a configured
          state and not a session triggered state. The destination address of
          the translated IPv6 packet will be the resolved AAAA record of
          "example.com", while the source IPv6 address will be created
          according to <xref target="RFC6052"/>. The IPv4 address and IPv6
          prefix used to create the source IPv6 address are out of the scope
          of this document.</t>

          <t>Return IPv6 traffic will be translated at the same device as the
          outgoing traffic, using IPv6 to IPv4 translation analogous to the
          one described in previous step. The source IPv4 address would be the
          private IPv4 address given by the DNS proxy to the client, while the
          destination IPv4 address would be the one of the client.</t>
        </list></t>
    </section>

    <section title="Usage scenarios">
      <t>The typical scenario where such a solution can be used is the home
      network. The customer can have a broadband service with access to IPv6
      Internet, but uses an IPv4-only client. The DNS proxy and the
      translation device would in that case be the home gateway, which would
      handle the decision-making process, as well as the translation as
      well.</t>

      <t>However, other scenarios can also be foreseable, such as mobile
      access, business customers, etc. It's applicable to all scenarios where
      a DNS proxy is used, as well as a default gateway which can act as a
      translation device.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document makes no request of IANA.</t>

      <t>Note to RFC Editor: this section may be removed on publication as an
      RFC.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t/>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t/>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <reference anchor="RFC6145">
        <front>
          <title>IP/ICMP Translation Algorithm</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="RFC1918">
        <front>
          <title>Address Allocation for Private Internets</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="RFC6052">
        <front>
          <title>IPv6 Addressing of IPv4/IPv6 Translators</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement
          Levels</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="RFC6144">
        <front>
          <title>Framework for IPv4/IPv6 Translation</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="RFC2766">
        <front>
          <title>Network Address Translation - Protocol Translation
          (NAT-PT)</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="RFC4966">
        <front>
          <title>Reasons to Move the Network Address Translator - Protocol
          Translator (NAT-PT) to Historic Status</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>
    </references>
  </back>
</rfc>
