One document matched: draft-cui-intarea-464xlat-prefix-dhcp-00.xml


<?xml version="1.0" encoding="US-ASCII"?>
<?rfc toc="yes"?>
<?rfc compact="yes"?>
<?rfc tocdepth="6"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc autobreaks="no"?>
<?rfc subcompact="no"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<rfc category="std" docName="draft-cui-intarea-464xlat-prefix-dhcp-00"
     ipr="trust200902">
  <front>
    <title abbrev="IPv6 Prefix Discovery by DHCPv6">DHCPv6 Options for
    Discovery of 464XLAT IPv6 Prefixes</title>

    <author fullname="Yong Cui" initials="Y." surname="Cui">
      <organization>Tsinghua University</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <code>100084</code>

          <country>P.R.China</country>
        </postal>

        <phone>+86-10-6260-3059</phone>

        <email>yong@csnet1.cs.tsinghua.edu.cn</email>
      </address>
    </author>

    <author fullname="Lishan Li" initials="L." surname="Li">
      <organization>Tsinghua University</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <code>100084</code>

          <country>P.R.China</country>
        </postal>

        <phone>+86-15201441862</phone>

        <email>lilishan9248@126.com</email>
      </address>
    </author>

    <author fullname="Cong Liu" initials="C." surname="Liu">
      <organization>Tsinghua University</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <code>100084</code>

          <country>P.R.China</country>
        </postal>

        <phone>+86-10-6278-5822</phone>

        <email>gnocuil@gmail.com</email>
      </address>
    </author>

    <author fullname="Jianping Wu" initials="J." surname="Wu">
      <organization>Tsinghua University</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

          <code>100084</code>

          <country>P.R.China</country>
        </postal>

        <phone>+86-10-6278-5983</phone>

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

    <author fullname="Fred Baker" initials="F." surname="Baker">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <city>Santa Barbara, CA</city>

          <code>93117</code>

          <country>United States</country>
        </postal>

        <phone/>

        <email>fred@cisco.com</email>
      </address>
    </author>

    <date year="2014"/>

    <workgroup>intarea Working Group</workgroup>

    <abstract>
      <t>464XLAT provides limited IPv4 connectivity across an IPv6-only
      network using translation technology. The customer-side translator
      (CLAT) performs stateless 1:1 mapping of an IPv4 destination address into
      a provider-side translator (PLAT) IPv6 prefix, which subsequently
      translates it back into IPv4. Different PLATs will likely have different
      IPv6 prefixes, to attract traffic to the correct PLAT. Thus, an
      automatic PLAT-side prefix discovery method is necessary for CLATs. </t>

      <t>This document defines a DHCPv6-based method to inform a CLAT of a
      PLAT's IPv6 prefix and the IPv4 prefixes it serves.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t><xref target="RFC6877">464XLAT</xref> describes an IPv4-over-IPv6
      solution as one technique for IPv4 service extension and encouragement
      of IPv6 deployment. The 464XLAT architecture uses IPv4/IPv6 translation,
      described in <xref target="RFC6144"/>, and standardized in <xref
      target="RFC6052"/>, <xref target="RFC6145"/>, and <xref
      target="RFC6146"/>. It encourages the IPv6 transition by making IPv4
      service reachable across IPv6-only networks and providing IPv6 and IPv4
      connectivity to single-stack IPv4 or IPv6 servers and peers. In the
      464XLAT architecture, the CLAT must determine which of potentially
      several PLAT-side translation IPv6 prefix to use in order to send a
      packet to the PLAT with connectivity to its destination.</t>

      <t><xref target="RFC7050"/> describes a mechanism to learn the PLAT-side
      IPv6 prefix for protocol translation by <xref
      target="RFC6147">DNS64</xref>. Although it supports multiple PLAT-side
      prefix by responding with multiple AAAA records to a DNS64 query, it
      does not support mapping IPv4 prefixes to IPv6 prefix, which would be
      required, for example, if one PLAT has connectivity to the general
      Internet following a default route, another has connectivity to a BGP
      peer, and a third has connectivity to a network using <xref
      target="RFC1918">private addressing</xref>. Therefore, in the scenario
      with multiple PLATs, <xref target="RFC7050"/> does not directly support
      destination-based IPv4 routing among PLATs; instead, the DNS64 database
      must contain equivalent information. It also requires the additional
      deployment of DNS64 service in customer-side networks, which is not
      required in 464XLAT deployment.</t>

      <t>This document proposes a method for PLAT-side IPv6 prefix discovery
      based on DHCPv6, which is widely deployed and supported in customer
      networks. It defines two new dhcpv6 options for use by a CLAT to
      discover the PLAT-side translation IPv6 prefix(es). Also, the proposed
      mechanism can deal with the scenario with multiple independent DNS64
      databases supporting separate PLATs.</t>
    </section>

    <section 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"/>.</t>
    </section>

    <!--
  <section title="Problem Statement">                                                
    <section title="Issues">
    <t>The proposed mechanism can solve the following issues:</t> 
    <t>
        <list style="symbols">
        <t>Learn the Pref64::/n used by CLAT to implement IPv6 address 
        synthesis.</t>
        <t>Avoid stale Pref64::/n values.</t>
        <t>Discover multiple PLAT-side Pref64::/n values in the scenario 
        with multiple PLATs.</t>
        <t>Support destination-based Pref64::/n (e.g., Section 5.1 of 
        <xref target="RFC7050"/>).</t>
        <t>Use DNSSEC ([RFC4033], [RFC4034], [RFC4035]) in the presence of
        NAT64.</t>
        <t>IPv4 addresses are used in referrals</t>
        </list>
    </t>
    </section>
    
    <section title="Use Cases">
    <t>This section provides some use case to illustrate the problem space.</t>
    </section>
  </section>
   -->

    <section title="New DHCPv6 Option">
      <section title="PLAT Prefix List Option Format">
        <t>The PLAT Prefix List Option is a container for PLAT Prefix
        Option(s). A PLAT Prefix List Option MAY contain multiple PLAT Prefix
        Options.</t>

        <t>The format of the PLAT Prefix List Option is:</t>

        <figure>
          <artwork align="center">      
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   OPTION_PLAT_PREFIX_LIST     |       option-length           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                           PLAT_PREFIX-options                 +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>

        <t><list style="symbols">
            <t>option-code: OPTION_PLAT_PREFIX_LIST (TBA1)</t>

            <t>option-length: length of PLAT_PREFIX-options, specified in
            octets.</t>

            <t>PLAT_PREFIX-options: one or more OPTION_PLAT_PREFIX
            options.</t>
          </list></t>
      </section>

      <section title="PLAT Prefix Option Format">
        <t>The PLAT Prefix Option is encapsulated in the PLAT Prefix List
        Option. This option allows the mapping of destination IPv4 address
        ranges (contained in the IPv4 Prefix List) to a PLAT IPv6 prefix. If
        there is more than one such prefix, each prefix comes in its own
        option, with its associated IPv4 prefix list. In this way, the CLAT
        can select the PLAT with the corresponding destination IPv4
        address.</t>

        <t>The format of the PLAT Prefix Option is:</t>

        <figure>
          <artwork align="center">      
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   OPTION_PLAT_PREFIX         |         option-length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| platv6-prelen |                                               |
+-+-+-+-+-+-+-+-+          platv6-prefix                        |
|                       (variable length)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
.                           (optional)                          .    
.              IPv4 Prefix List (variable length)               .
.                       (see Figure 3)                          .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>

        <figure>
          <artwork align="center">      
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4-prelen   |   IPv4 Prefix (32 bits)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    (cont.)    | IPv4-prelen   | IPv4 Prefix (32 bits)         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    IPv4 Prefix (cont)         |                ...            |     
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            ...                                |     
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>

        <t><list style="symbols">
            <t>option-code: OPTION_PLAT_PREFIX (TBA2)</t>

            <t>option-length: 1 + length of platv6-prefix + length of IPv4
            Prefix List, specified in octets.</t>

            <t>platv6-prelen: length of platv6-prefix.</t>

            <t>platv6-prefix: The PLAT IPv6 prefix that the CLAT used for IPv6
            address synthesis.</t>

            <t>IPv4 Prefix List: This is an optional field. The format of the
            IPv4 Prefix List is shown in Figure 3. It is a list of zero or
            more IPv4 Prefixes. Each entry is formed by IPv4-prelen and IPv4
            Prefix. The total length of the field is 5*number of IPv4
            prefixes.</t>

            <t>IPv4-prelen: the length of the IPv4 Prefix.</t>

            <t>IPv4 Prefix: the destination-based IPv4 Prefix. The length is 4
            octets.</t>
          </list></t>
      </section>
    </section>

    <section title="Client Behavior">
      <t>The client requests the OPTION_PLAT_PREFIX_LIST option using the
      Option Request option (ORO) in every Solicit, Request, Renew, Rebind,
      and Information-request message. If the DHCPv6 server includes the
      OPTION_PLAT_PREFIX_LIST option in its response, the CLAT may use the
      contained platv6-prefix to translate the destination IPv4 address into
      the destination IPv6 address.</t>

      <t>When receiving the OPTION_PLAT_PREFIX option with IPv4 Prefix List,
      the CLAT MUST record the received IPv6 prefix and the corresponding IPv4
      prefixes in IPv4 Prefix List. When receiving the OPTION_PLAT_PREFIX
      option without IPv4 Prefix List, the CLAT MUST treat the IPv6 prefix and
      the default IPv4 prefix 0.0.0.0/0 as one of the records.</t>

      <t>If the CLAT loses contact with the DHCPv6 server, the CLAT SHOULD
      clear the prefix(es) it learned from the DHCPv6 server.</t>

      <t>When translating the destination IPv4 address into the destination
      IPv6 address, CLAT MUST search an IPv4 routing database using the
      longest-match-first rule and select the IPv6 prefix offering that IPv4
      prefix.</t>
    </section>

    <!--
	<section title="DHCPv6 server Behavior">
	  <t>The DHCPv6 server controlling the PLAT(s) SHOULD be configured to
      return CLAT the PLAT translation IPv6 prefix.</t>
      <t>If the DHCPv6 server is configured to honor the PLAT translation
      IPv6 prefix(es) but no prefix is explicitly configured, the DHCPv6 
      server MUST NOT include any IPv6 address option in its DHCPv6 
      message.</t>
      <t>The DHCPv6 server MAY be configured to return multiple IPv6 prefix
      in the message to the CLAT. In such case, the IPv4 prefix lists MAY 
      be configured, which is used to distinguish different PLATs.</t> 
	</section>
     -->

    <section title="Message Flow Illustration">
      <t>The figure below shows an example of message flow for a Client
      learning IPv6 prefixes using DHCPv6.</t>

      <t>In this example, two IPv6 prefixes are provided by the DHCPv6 server.
      The first IPv6 prefix is 2001:db8:122:300::/56, the corresponding IPv4
      prefixes are 192.0.2.0/24 and 198.51.100.0/24. The second IPv6 prefix is
      2001:db8:122::/48, the corresponding IPv4 prefix is 192.0.2.128/25.</t>

      <t>When the CLAT receives the packet with destination IPv4 address
      192.0.2.1, according to the rule of longest prefix match, the PLAT with
      IPv6 prefix 2001:db8:122::/48 is chosen. In the same way, the PLAT with
      IPv6 prefix 2001:db8:122::/48 is chosen.</t>

      <figure>
        <artwork align="center">    
+----------+                                     +-----------------+
|   CLAT   |                                     |  DHCPv6 server  |
+----------+                                     +-----------------+
     |            DHCPv6 query for IPv6 prefix            |
     |--------------------------------------------------->|
     |         ORO with OPTION_V6_PLATPREFIX_LIST         |
     |                                                    |
     |       DHCPv6 response with:                        |
     |         PLATPREFIX{                                |
     |           platv6-pre = 2001:db8:122:300::/56       |
     |           platv4-pre = 192.0.2.0/24                |
     |           platv4-pre = 198.51.100.0/24}            |
     |         PLATPREFIX{                                |
     |           platv6-pre = 2001:db8:122::/48           |
     |           platv4-pre = 192.0.2.128/25}             |
     |<---------------------------------------------------|
     |                                                    |
     |
     |                     +-----------------+   +-----------------+
     |                     |     PLAT 1      |   |     PLAT 2      |
     |                     +-----------------+   +-----------------+
     |                         platv6-pre =          platv6-pre =
     |                    2001:db8:122:300::/56   2001:db8:122::/48
     |                         platv4-pre =          platv4-pre =
     |                        192.0.2.0/24       192.0.2.128/25
     |                        198.51.100.0/24             |
     |                              |                     |
     |       Dest IPv4 addr:        |                     |
     |        192.0.2.1             |                     |
     |       Dest IPv6 addr:        |                     |
     |  2001:db8:122:300::c000:201  |                     |
     |----------------------------->|                     |
     |                              |                     |
     |                                                    |
     |     Dest IPv4 addr: 192.0.2.193                    |
     |     Dest IPv6 addr: 2001:db8:122::c000:2c1         |
     |--------------------------------------------------->|
</artwork>
      </figure>
    </section>

    <section title="Security Considerations">
      <t>Considerations for security in this type of environment are primarily
      around the operation of the DHCPv6 protocol and the databases it
      uses.</t>

      <t>In the DHCPv6 server, should the database be compromised, it will
      deliver incorrect data to its CLAT clients. In the CLAT, should its
      database be compromised by attack or polluted by an incorrect DHCPv6
      server database, it will route data incorrectly. In both cases, the
      security of the systems and their databases in an operational matter,
      not managed by protocol.</t>

      <t>However, the operation of the DHCPv6 protocol itself is also required
      to be correct - the server and its clients must recognize valid requests
      and reject invalid ones. Therefore, DHCPv6 exchanges MUST be secured as
      described in <xref target="RFC3315"/>.</t>
    </section>

    <section title="IANA Considerations">
      <t>We request that IANA allocate two DHCPv6 option codes for use by
      OPTION_V6_PLATPREFIX_LIST and OPTION_V6_PLATPREFIX from the "Option
      Codes" table</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119" ?>
      <?rfc include="reference.RFC.3315" ?>
      <?rfc include="reference.RFC.6877" ?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.1918' ?>
      <?rfc include='reference.RFC.6052' ?>
      <?rfc include='reference.RFC.6144' ?>
      <?rfc include='reference.RFC.6145' ?>
      <?rfc include='reference.RFC.6146' ?>
      <?rfc include='reference.RFC.6147' ?>
      <?rfc include='reference.RFC.7050'?>
    </references>
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-24 10:12:36