One document matched: draft-ietf-pcp-dhcp-10.xml


<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="5"?>
<?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-ietf-pcp-dhcp-10" ipr="trust200902">
  <front>
    <title abbrev="PCP DHCP Options">DHCP Options for the Port Control
    Protocol (PCP)</title>

    <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
      <organization>France Telecom</organization>

      <address>
        <postal>
          <street></street>

          <city>Rennes</city>

          <region></region>

          <code>35000</code>

          <country>France</country>
        </postal>

        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>

    <author fullname="Reinaldo Penno" initials="R." surname="Penno">
      <organization>Cisco</organization>

      <address>
        <postal>
          <street></street>

          <code></code>

          <country>USA</country>
        </postal>

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

    <author fullname="Dan Wing" initials="D." surname="Wing">
      <organization abbrev="Cisco">Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street>170 West Tasman Drive</street>

          <city>San Jose</city>

          <region>California</region>

          <code>95134</code>

          <country>USA</country>
        </postal>

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

    <date day="01" month="April" year="2014" />

    <workgroup>PCP Working Group</workgroup>

    <keyword>PCP Server discovery, Port Mapping, Shared Address</keyword>

    <abstract>
      <t>This document specifies DHCP (IPv4 and IPv6) options to configure
      hosts with Port Control Protocol (PCP) server IP addresses. The use of
      DHCPv4 or DHCPv6 depends on the PCP deployment scenarios. The set of
      deployment scenarios to which use of DHCPv4 or DHCPv6 apply are outside
      the scope of this document.</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>This document defines DHCPv4 <xref target="RFC2131"></xref> and
      DHCPv6 <xref target="RFC3315"></xref> options that can be used to
      provision PCP server <xref target="RFC6887"></xref> IP addresses.</t>

      <t>This specification assumes a PCP server is reachable with one or
      multiple IP addresses. As such, a list of IP addresses can be returned
      in the DHCP PCP server option.</t>

      <t>This specification allows returning one or multiple lists of PCP
      server IP addresses. This is used as a hint to guide the PCP client when
      determining whether to send PCP requests to one or multiple PCP servers.
      For guidelines on how a PCP client can use multiple IP addresses and
      multiple PCP servers, see <xref
      target="I-D.ietf-pcp-server-selection"></xref>.</t>

      <t>The use of DHCPv4 or DHCPv6 depends on the PCP deployment scenarios.
      The set of deployment scenarios to which use of DHCPv4 or DHCPv6 apply
      are out of scope.</t>
    </section>

    <section title="Terminology">
      <t>This document makes use of the following terms:<?rfc subcompact="yes" ?></t>

      <t><list style="symbols">
          <t>PCP server denotes a functional element that receives and
          processes PCP requests from a PCP client. A PCP server can be
          co-located with or be separated from the function (e.g., NAT,
          Firewall) it controls. Refer to <xref target="RFC6887"></xref>.</t>

          <t>PCP client denotes a PCP software instance responsible for
          issuing PCP requests to a PCP server. Refer to <xref
          target="RFC6887"></xref>.</t>

          <t>DHCP refers to both DHCPv4 <xref target="RFC2131"></xref> and
          DHCPv6 <xref target="RFC3315"></xref>.</t>

          <t>DHCP client denotes a node that initiates requests to obtain
          configuration parameters from one or more DHCP servers.</t>

          <t>DHCP server refers to a node that responds to requests from DHCP
          clients.</t>
        </list><?rfc subcompact="no" ?></t>
    </section>

    <section title="DHCPv6 PCP Server Option">
      <t></t>

      <section title="Format">
        <t>The DHCPv6 PCP server option can be used to configure a list of
        IPv6 addresses of a PCP server.</t>

        <t>The format of this option is shown in <xref
        target="dhcpv6_name_option"></xref>.</t>

        <t><figure anchor="dhcpv6_name_option"
            title="DHCPv6 PCP server option">
            <preamble></preamble>

            <artwork><![CDATA[    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_V6_PCP_SERVER      |         Option-length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                         ipv6-address                          |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                         ipv6-address                          |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              ...                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>

            <postamble></postamble>
          </figure>The fields of the option shown in <xref
        target="dhcpv6_name_option"></xref> are as follows:<?rfc subcompact="yes" ?></t>

        <t><list style="symbols">
            <t>Option-code: OPTION_V6_PCP_SERVER (TBA, see <xref
            target="iana6"></xref>)</t>

            <t>Option-length: Length of the 'PCP server IP Address(es)' field
            in octets. MUST be a multiple of 16.</t>

            <t>PCP server IPv6 Addresses: Includes one or more IPv6 addresses
            <xref target="RFC4291"></xref> of the PCP server to be used by the
            PCP client. Note, IPv4-mapped IPv6 addresses (Section 2.5.5.2 of
            <xref target="RFC4291"></xref>) are allowed to be included in this
            option.</t>
          </list></t>

        <t><?rfc subcompact="no" ?></t>
      </section>

      <section title="DHCPv6 Client Behavior">
        <t>To discover one or more PCP servers, the DHCPv6 client requests PCP
        server IP addresses by including OPTION_V6_PCP_SERVER in an Option
        Request Option (ORO), as described in Section 22.7 of <xref
        target="RFC3315"></xref>.</t>

        <t>The DHCPv6 client MUST be prepared to receive multiple instances of
        OPTION_V6_PCP_SERVER; each instance is to be treated as a separate PCP
        server.</t>

        <t>If an IPv4-mapped IPv6 address is received in OPTION_V6_PCP_SERVER,
        it indicates that the PCP server has the corresponding IPv4
        address.</t>
      </section>
    </section>

    <section title="DHCPv4 PCP Option">
      <t></t>

      <section title="Format">
        <t>The DHCPv4 PCP server option can be used to configure a list of
        IPv4 addresses of a PCP server. The format of this option is
        illustrated in <xref target="dhcppcp"></xref>.</t>

        <t><figure anchor="dhcppcp" title="DHCPv4 PCP server option">
            <preamble></preamble>

            <artwork><![CDATA[    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Code         |     Length    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | List-Length   |   List of     |
   +-+-+-+-+-+-+-+-+  PCP server   |
   /              IPv4 Addresses   /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   ---
   | List-Length   |   List of     |    |
   +-+-+-+-+-+-+-+-+  PCP server   |    |
   /              IPv4 Addresses   /    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |
   .             ...               . optional
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |
   | List-Length   |   List of     |    |
   +-+-+-+-+-+-+-+-+  PCP server   |    |
   /              IPv4 Addresses   /    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   ---

]]></artwork>

            <postamble></postamble>
          </figure></t>

        <t>The description of the fields is as follows:<?rfc subcompact="yes" ?><list
            style="symbols">
            <t>Code: OPTION_V4_PCP_SERVER (TBA, see <xref
            target="iana4"></xref>);</t>

            <t>Length: Length of all included data in octets. The minimum
            length is 5.</t>

            <t>List-Length: Length of the "List of PCP server IPv4 Addresses"
            field in octets; MUST be a multiple of 4.</t>

            <t>List of PCP server IPv4 Addresses: Contains one or more IPv4
            addresses of the PCP server to be used by the PCP client. The
            format of this field is shown in <xref target="list"></xref>.</t>

            <t>OPTION_V4_PCP_SERVER can include multiple lists of PCP server
            IPv4 addresses; each list is treated as a separate PCP server.
            When several lists of PCP server IPv4 addresses are to be
            included, "List-Length" and "PCP server IPv4 Addresses" fields are
            repeated.</t>
          </list><figure anchor="list"
            title="Format of the List of PCP server IPv4 Addresses">
            <artwork><![CDATA[   0     8     16    24    32    40    48
   +-----+-----+-----+-----+-----+-----+--
   |  a1 |  a2 |  a3 |  a4 |  a1 |  a2 | ...
   +-----+-----+-----+-----+-----+-----+--
        IPv4 Address 1          IPv4 Address 2 ...]]></artwork>

            <postamble>This format assumes that an IPv4 address is encoded as
            a1.a2.a3.a4.</postamble>
          </figure></t>

        <t><?rfc subcompact="no" ?>OPTION_V4_PCP_SERVER is a
        concatenation-requiring option. As such, the mechanism specified in
        <xref target="RFC3396"></xref> MUST be used if OPTION_V4_PCP_SERVER
        exceeds the maximum DHCPv4 option size of 255 octets.</t>
      </section>

      <section title="DHCPv4 Client Behavior">
        <t>To discover one or more PCP servers, the DHCPv4 client requests PCP
        server IP addresses by including OPTION_V4_PCP_SERVER in a Parameter
        Request List Option <xref target="RFC2132"></xref>.</t>

        <t>The DHCPv4 client MUST be prepared to receive multiple lists of PCP
        server IPv4 addresses in the same DHCPv4 PCP server option; each list
        is to be treated as a separate PCP server.</t>
      </section>
    </section>

    <section title="DHCP Server Configuration Guidelines">
      <t>DHCP servers supporting the DHCP PCP server option can be configured
      with a list of IP addresses of the PCP server(s). If multiple IP
      addresses are configured, the DHCP server MUST be explicitly configured
      whether all or some of these addresses refer to:</t>

      <t><list style="numbers">
          <t>the same PCP server: the DHCP server returns multiple addresses
          in the same instance of the DHCP PCP server option.</t>

          <t>distinct PCP servers: the DHCP server returns multiple lists of
          PCP server IP addresses to the requesting DHCP client (encoded as
          multiple OPTION_V6_PCP_SERVER or in the same OPTION_V4_PCP_SERVER);
          each list is referring to a distinct PCP server. For example,
          multiple PCP servers may be configured to a PCP client in some
          deployment contexts such as multi-homing. It is out of scope of this
          document to enumerate all deployment scenarios that require multiple
          PCP servers to be returned.</t>
        </list></t>

      <t>The DHCP server MAY be configurable with one or multiple Fully
      Qualified Domain Names (FQDNs) of the PCP server(s). In such case, the
      DHCP server MUST resolve these FQDNs into one or a list of IP addresses.
      If multiple FQDNs are configured to the DHCP server, the DHCP server
      MUST include multiple lists of PCP server IP addresses in the PCP server
      option (encoded as multiple OPTION_V6_PCP_SERVER or in the same
      OPTION_V4_PCP_SERVER); each of them carries one or a list of IP
      addresses that resulted from the FQDN resolution. DHCPv4 servers
      supporting PCP server option MUST resolve any configured FQDNs into IPv4
      addresses while DHCPv6 servers may resolve any configured FQDNs into
      IPv6 and/or IPv4 addresses. If an IPv4 address is retrieved by the
      DHCPv6 server, the corresponding IPv4-mapped IPv6 address is included in
      OPTION_V6_PCP_SERVER. If both IPv4 and IPv6 addresses are retrieved by
      the DHCPv6 server, these addresses are included in the same
      OPTION_V6_PCP_SERVER (IPv4 addresses are represented as IPv4-mapped IPv6
      addresses).<list style="empty">
          <t>Discussion: The motivation for this design is to accommodate
          deployment cases where an IPv4 connectivity service is provided
          while only DHCPv6 is in use (e.g., an IPv4-only PCP server in a
          DS-Lite context <xref target="RFC6333"></xref>).</t>
        </list></t>

      <t>For guidelines on providing context-specific configuration
      information (e.g., returning a regional-based configuration), and
      information on how a DHCP server might be configured with FQDNs that get
      resolved on demand, see <xref
      target="I-D.ietf-dhc-topo-conf"></xref>.</t>
    </section>

    <section title="Dual-Stack Hosts">
      <t>A Dual-Stack host might receive PCP server option via both DHCPv4 and
      DHCPv6. For guidance on how a DHCP client can handle PCP server IP lists
      for the same network but obtained via different mechanisms, see <xref
      target="I-D.ietf-pcp-server-selection"></xref>.</t>
    </section>

    <section anchor="mif" title="Hosts with Multiple Interfaces">
      <t>A host may have multiple network interfaces (e.g, 3G, IEEE 802.11,
      etc.); each configured differently. Each PCP server learned MUST be
      associated with the interface via which it was learned. Refer to <xref
      target="I-D.ietf-pcp-server-selection"></xref> and Section 8.4 of <xref
      target="RFC6887"></xref> for more discussion on multi-interface
      considerations.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The security considerations in <xref target="RFC2131"></xref> and
      <xref target="RFC3315"></xref> are to be considered. PCP-related
      security considerations are discussed in <xref
      target="RFC6887"></xref>.</t>
    </section>

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

      <section anchor="iana6" title="DHCPv6 Option">
        <t>IANA is requested to assign the following new DHCPv6 Option Code in
        the registry maintained in
        http://www.iana.org/assignments/dhcpv6-parameters:</t>

        <texttable style="headers">
          <ttcol align="right">Option Name</ttcol>

          <ttcol>Value</ttcol>

          <c>OPTION_V6_PCP_SERVER</c>

          <c>TBA</c>
        </texttable>
      </section>

      <section anchor="iana4" title="DHCPv4 Option">
        <t>IANA is requested to assign the following new DHCPv4 Option Code in
        the registry maintained in
        http://www.iana.org/assignments/bootp-dhcp-parameters/:</t>

        <texttable style="headers">
          <ttcol align="right">Option Name</ttcol>

          <ttcol>Value</ttcol>

          <ttcol>Data length</ttcol>

          <ttcol>Meaning</ttcol>

          <c>OPTION_V4_PCP_SERVER</c>

          <c>TBA</c>

          <c>Variable; the minimum length is 5.</c>

          <c>Includes one or multiple lists of PCP server IP addresses; each
          list is treated as a separate PCP server. </c>
        </texttable>

        <t></t>
      </section>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>Many thanks to C. Jacquenet, R. Maglione, D. Thaler, T. Mrugalski, T.
      Reddy, S. Cheshire, M. Wasserman, and C. Holmberg for their review and
      comments.</t>

      <t>Special thanks to T. Lemon and B. Volz for the review and their
      effort to enhance this specification.</t>
    </section>
  </middle>

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

      <?rfc include='reference.RFC.3315'?>

      <?rfc include='reference.RFC.2131'?>

      <?rfc include='reference.RFC.4291'?>

      <?rfc include='reference.RFC.2132'?>

      <?rfc include='reference.RFC.6887'?>

      <?rfc include='reference.RFC.3396'?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.I-D.ietf-dhc-topo-conf'?>

      <?rfc include='reference.I-D.ietf-pcp-server-selection'?>

      <?rfc include='reference.RFC.6333'?>
    </references>
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-23 20:46:55