Softwires                                                     D. Hankins
Internet-Draft                                                       ISC
Intended status: Standards Track                            T. Mrugalski
Expires: March 19, 31, 2011                  Gdansk University of Technology
                                                      September 15, 27, 2010

 Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Options Option for Dual-
                               Stack Lite
              draft-ietf-softwire-ds-lite-tunnel-option-04
              draft-ietf-softwire-ds-lite-tunnel-option-05

Abstract

   This document specifies two single DHCPv6 options option which are is meant to be
   used by a Dual-Stack Lite client (Basic Bridging BroadBand element,
   B4) to discover its Address Family Transition Router (AFTR) address.

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 March 19, 31, 2011.

Copyright Notice

   Copyright (c) 2010 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
   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.  Requirements Language . . . . . . . . . . . . . . . . . . . . . 3
   2.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   3.  The Dual-Stack Lite Address DHCPv6 Option . . . . . . . . . . . 3
   4.  The Dual-Stack Lite Name DHCPv6 Option  . . . . . . . . . . . . 4
   5.  DHCPv6 Server Behavior  . . . . . . . . . . . . . . . . . . . . 6
   6. 4
   5.  DHCPv6 Client Behavior  . . . . . . . . . . . . . . . . . . . . 7
   7. 5
   6.  Security Considerations . . . . . . . . . . . . . . . . . . . . 7
   8. 5
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8
   9. 5
   8.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 8
   10. 6
   9.  Normative References  . . . . . . . . . . . . . . . . . . . . . 8 6
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . . 8 6

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

   Dual-Stack Lite [I-D.softwire-ds-lite] is a solution to offer both
   IPv4 and IPv6 connectivity to customers which are addressed only with
   an IPv6 prefix (no IPv4 address is assigned to the attachment
   device).  One of its key components is an IPv4-over-IPv6 tunnel,
   commonly referred to as a Softwire, but a Softwire.  DS-Lite Basic Bridging BroadBand
   (B4) will not know if the network it is attached to offers Dual-Stack
   Lite support, and if it did would not know the remote end of the
   tunnel to establish a connection.

   To inform the B4 of the Address Family Transition Router's (AFTR)
   location, either an option containing a single IPv6 address, Fully Qualified Domain Name (FQDN)
   or both address may be used.
   Once this information is conveyed, the presence of the configuration
   indicating the AFTR's location also informs a host to initiate Dual-Stack Dual-
   Stack Lite (DS-Lite) service and become a Softwire Initiator.

   To provide the conveyance of the configuration information, two a single
   DHCPv6 [RFC3315] options are used; one in the case where the host
   receives an IPv6 address, and one in the case where the host receives
   an FQDN in order to derive an IPv6 address. option is used.

   The details of how the B4 establishes an IPv4-in-IPv6 tunnel to the
   AFTR are out of scope for this document.

3.  The Dual-Stack Lite Address DHCPv6 Option

   The Dual-Stack Lite Address option consists of option-code and
   option-len fields (common for all DHCPv6 options), and a 128 bit
   tunnel-endpoint-addr field, containing one IPv6 address.  The tunnel-
   endpoint-addr specifies the location of the remote tunnel endpoint,
   expected to be located at an AFTR.

   The DS-Lite Address option MAY appear in the root scope of a DHCPv6
   packet.  It MUST NOT appear inside any IA_NA, IA_TA, IA_PD, IAADDR,
   or similar.  Any DS-Lite Address option received inside any other
   option MUST be ignored.

   The DS-Lite Address option MUST NOT appear more than once in a
   message.  Client that receives more than one DS-Lite Address option
   MUST discard all instances of that option.

   The format of the Dual-Stack Lite Address option is shown in the
   following figure:

        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_DS_LITE_ADDR (TBD)   |         option-len: 16        |
       +-------------------------------+-------------------------------+
       |                                                               |
       |               tunnel-endpoint-addr (IPv6 Address)             |
       |                                                               |
       |                                                               |
       +---------------------------------------------------------------+

                option-code: OPTION_DS_LITE_ADDR (TBD)

                 option-len: Length of the tunnel-endpoint-addr field,
                             which is precisely 16 octets.

       tunnel-endpoint-addr: A single IPv6 address in binary
                             representation of the remote tunnel
                             endpoint, located at the DS-Lite AFTR.

            Figure 1: DS-Lite IPv6 Address DHCPv6 Option Format

   The client validates the DS-Lite Address option by confirming the
   option length is exaclty exactly 16 octets.  The client MUST ignore any DS-
   Lite Address option that has length other than 16 octets.

   Because this option conveys the tunnel-endpoint-addr value, no
   further processing is required of the client.

   This option conveys a single IPv6 address, as the Dual-Stack Lite
   specification [I-D.softwire-ds-lite] defines only one Softwire
   connection between a B4 and any AFTR.  Multiple connections or
   endpoints are undefined.  It is expected that Service Provider (SP)
   will deal with load balancing and high availability, not the client.
   For more information, see Section 7.2 12.3 "High Availability" of
   [I-D.softwire-ds-lite].

4.  The Dual-Stack Lite Name  DHCPv6 Option

   The Dual-Stack Lite Name option consists Server Behavior

   Following requirements are result of option-code and option-
   len fields (common for all DHCPv6 options), and a variable length
   tunnel-endpoint-name field, containing a Fully Qualified Domain Name
   that refers applying behaviors defined in
   RFC 3315 Section 17.2.2 [RFC3315] to the AFTR DS-Lite Address option.
   They do not change default DHCPv6 operation, but rather are
   enumerated here as a convenience for the client is requested reader.

   If configured to establish a
   connection with.

   The offer DS-Lite Address information, DHCPv6 server
   will include the DS-Lite Name Address option MAY appear in if such option appears on the root scope of
   client's Option Request Option (OPTION_ORO).  RFC 3315 Section 17.2.2
   [RFC3315] describes how a DHCPv6
   packet.  It client and server negotiate
   configuration values using the ORO.

   A DHCPv6 server MUST NOT appear inside any IA_NA, IA_TA, IA_PD, IAADDR,
   or similar.  Any DS-Lite Name option received inside any other option
   MUST be ignored.

   The send DS-Lite Name Address option if it has not
   been explicitly requested by the client.

   A DHCPv6 server MUST NOT appear more than once in a message.
   Client that receives more than one DS-Lite Name option MUST discard
   all instances of that option.

   The format of the Dual-Stack Lite Name option is shown in the
   following figure:

        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_DS_LITE_NAME (TBD)   |           option-len          |
       +-------------------------------+-------------------------------+
       |                   tunnel-endpoint-name (FQDN)                 |
       +---------------------------------------------------------------+

                option-code: OPTION_DS_LITE_NAME (TBD)

                 option-len: Length in octets of the tunnel-endpoint-
                             name field.

       tunnel-endpoint-name: A single Fully Qualified Domain Name of the
                             remote tunnel endpoint, located at the
                             DS-Lite AFTR.

                Figure 2: DS-Lite Name DHCPv6 Option Format

   The tunnel-endpoint-name field is formatted as required in DHCPv6
   [RFC3315] Section 8 ("Representation and Use of Domain Names").
   Briefly, the format described is using a single octet noting the
   length of one DNS label (limited to at most 64 octets), followed by
   the label.  This repeats until all labels in the FQDN are exhausted.
   The root label (or the end of the FQDN) is denoted as a zero length
   label.  Any possible updates to Section 8 of DHCPv6 [RFC3315] also
   apply to encoding of this FQDN field.  An example FQDN format for
   this option is shown in Figure 3.

        +------+------+------+------+------+------+------+------+------+
        | 0x07 |   e  |   x  |   a  |   m  |   p  |   l  |   e  | 0x03 |
        +------+------+------+------+------+------+------+------+------+
        |   i  |   s  |   c  | 0x03 |   o  |   r  |   g  | 0x00 |
        +------+------+------+------+------+------+------+------+

                  Figure 3: Example tunnel-endpoint-name.

   Note that in the specific case of the example tunnel-endpoint-name,
   (Figure 3) the length of the option is 17 octets, and so an option-
   len field value of 17 would be used.

   The client (B4) validates the option in this format by first
   confirming that the option length is greater than 3, that the option
   data can be contained by the option length (that the option length
   does not run off the end of the packet), and that the tunnel-
   endpoint-name is of valid format as described in DHCPv6 Section 8
   [RFC3315]; there are no compression tags, there is at least one label
   of nonzero length.

   The client (B4) determines a value for the tunnel-endpoint-addr from
   the tunnel-endpoint-name using standard DNS resolution, as defined in
   [RFC3596].  If the DNS response contains more than one IPv6 address,
   the client picks only one IPv6 address and uses it as a remote tunnel
   endpoint.  The client MUST NOT establish more than one DS-Lite tunnel
   at the same time.  For a redundancy and high availability discussion,
   see Section 7.2 "High availability" of [I-D.softwire-ds-lite].

5.  DHCPv6 Server Behavior

   DHCP servers must translate user input from their own specific and
   unique operator's interfaces into configuration state for the client.
   The server MUST provide a way to configure the OPTION_DS_LITE_ADDR.
   As a convenience to the operator, the server MAY allow the operator
   to enter a Fully Qualified Domain Name, upon which the server
   performs DNS Resolution to assemble its OPTION_DS_LITE_ADDR contents.
   The server MAY either provide the same Fully Qualified Domain Name as
   OPTION_DS_LITE_NAME contents, or simply provide a distinct method of
   configuring it.

   If configured with values, DHCPv6 servers will include the DS-Lite
   Address and/or Name options if either or both appear on the client's
   Option Request Option (OPTION_ORO).  RFC 3315 Section 17.2.2
   [RFC3315] describes how a DHCPv6 client and server negotiate
   configuration values using the ORO.

   A DHCPv6 server MUST NOT send either option if it has not been
   explicitly requested by the client.

   A DHCPv6 server MUST NOT send send more than one DS-Lite Address option.

   A DHCPv6 server MUST NOT send more than one DS-Lite Name option.

   A DHCPv6 server MUST NOT send DS-Lite Address or DS-Lite Name options as suboptions suboption in other
   options.

   If the server is configured with an FQDN as the tunnel endpoint
   locator, the configured FQDN value MUST contain a resolvable Fully
   Qualified Domain Name, having appropriate delegations from the root,
   and having a AAAA record locating the Softwire Concentrator.

   If OPTION_DS_LITE_NAME is being configured, the server MUST be
   configured to provide OPTION_DNS_SERVERS defined in [RFC3646]
   together with the DS-Lite Name option, so that clients will be able
   to ask for DNS servers locations to resolve the domain name provided
   in the DS-Lite Name option.

6.

5.  DHCPv6 Client Behavior

   A client that supports B4 functionality of DS-Lite (defined in
   [I-D.softwire-ds-lite]) and conforms to this specification MUST
   include OPTION_DS_LITE_ADDR on its OPTION_ORO, and MAY include
   OPTION_DS_LITE_NAME at its option and ability.

   If requesting the OPTION_DS_LITE_NAME option, the client also SHOULD
   request OPTION_DNS_SERVERS defined in [RFC3646] to be able to resolve
   any received domain name. OPTION_ORO.

   If the client receives either DS-Lite Address option, it MUST verify the
   option contents as described in Section 3 and Section 4. 3.  The client (B4) is
   expected to establish a softwire tunnel to the tunnel-
   endpoint-addr tunnel-endpoint-addr
   IPv6 address it determines from either of these
   options.

   If the client requests and DS-Lite Address option.

   Client that receives both the OPTION_DS_LITE_ADDR and
   the OPTION_DS_LITE_NAME options, it more than one DS-Lite Address option MUST proceed with resolving the
   OPTION_DS_LITE_NAME.

7.
   discard all instances of that option.

6.  Security Considerations

   This document does not present any new security issues, but as with
   all DHCPv6-derived configuration state, it is completely possible
   that the configuration is being delivered by a third party (Man In
   The Middle).  As such, there is no basis to trust that the access the
   DS-Lite Softwire connection represents can be trusted, and it should
   not therefore bypass any security mechanisms such as IP firewalls.

   RFC 3315 [RFC3315] discusses DHCPv6-related security issues.

   [I-D.softwire-ds-lite] discusses DS-Lite related security issues.

8.

7.  IANA Considerations

   IANA is requested to allocate two single DHCPv6 option codes code referencing
   this document.  One delineating OPTION_DS_LITE_ADDR, and one document, delineating OPTION_DS_LITE_NAME.

9. OPTION_DS_LITE_ADDR name.

8.  Acknowledgements

   Authors would like to thank Alain Durand, Rob Austein, Dave Thaler
   and Thaler,
   Paul Selkirk and Ralph Droms for their valuable feedback and
   suggestions.

10.

   This work has been partially supported by the Polish Ministry of
   Science and Higher Education under the European Regional Development
   Fund, Grant No.  POIG.01.01.02-00-045/09-00 (Future Internet
   Engineering Project).

9.  Normative References

   [I-D.softwire-ds-lite]
              Durand, A., Ed., "Dual-stack lite broadband deployments
              post IPv4 exhaustion", draft-ietf-softwire-dual-stack-lite
              (work in progress).

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, 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.

   [RFC3596]  Thomson, S., Huitema, C., Ksinant, V., and M. Souissi,
              "DNS Extensions to Support IP Version 6", RFC 3596,
              October 2003.

   [RFC3646]  Droms, R., "DNS Configuration options for Dynamic Host
              Configuration Protocol for IPv6 (DHCPv6)", RFC 3646,
              December 2003.

Authors' Addresses

   David W. Hankins
   Internet Systems Consortium, Inc.
   950 Charter Street
   Redwood City, CA  94063
   US

   Phone: +1 650 423 1307
   Email: David_Hankins@isc.org

   Tomasz Mrugalski
   Gdansk University of Technology
   Storczykowa 22B/12
   Gdansk  80-177
   Poland

   Phone: +48 698 088 272
   Email: tomasz.mrugalski@eti.pg.gda.pl