Network Working Group                                     H. Schulzrinne
Internet-Draft                                               Columbia U.
Intended status:  Standards Track                                J. Polk
Expires:  March 4, 31, 2007                                           Cisco
                                                           H. Tschofenig
                                                                 Siemens
                                                         August 31,
                                                      September 27, 2006

 A Dynamic Host Configuration Protocol (DHCP) based Location-to-Service
            Translation Protocol (LoST) Discovery Procedure
               draft-polk-ecrit-dhc-lost-discovery-00.txt
               draft-polk-ecrit-dhc-lost-discovery-01.txt

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

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

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on March 4, 31, 2007.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   The Location-to-Service Translation Protocol (LoST) describes an XML-
   based protocol for mapping service identifiers and geospatial or
   civic location information to service contact Uniform Resource
   Locators (URLs).  LoST servers can be located anywhere but a
   placement closer to the end host, e.g., in the access network, is
   desireable.  Such a LoST server placement provides benefits in
   disaster situations with intermittent network connectivity regarding
   the resiliency of emergency service communication.

   This document describes how a LoST client can discover a LoST server
   using the Dynamic Host Configuration Protocol (DHCP).

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .  4
   3.  LoST Server DHCPv4 Option  . . . . . . . . . . . . . . . . . .  5
     3.1.  LoST Servers 3
   3.  Domain Name List  . . . . . . . Encoding  . . . . . . .  5
     3.2.  LoST Servers IPv4 Address List . . . . . . . . . . . . . .  6 3
   4.  LoST Server DHCPv6 DHCPv4 Option . . . . . . . . . . . . . . . . . .  8
     4.1.  LoST Servers Domain Name List . 4
   5.  LoST Server DHCPv6 Option . . . . . . . . . . . . .  8
     4.2.  LoST Servers IPv6 Address List . . . . . . 4
   6.  Example . . . . . . . .  9
     4.3.  Client Operation . . . . . . . . . . . . . . . . . . . . 5
   7.  IANA Considerations . 10
     4.4.  Server Operation . . . . . . . . . . . . . . . . . . . . . 10
   5. 5
     7.1.  IANA Considerations Consideration for DHCPv4 Option  . . . . . . . . . . . 6
     7.2.  IANA Consideration for DHCPv6 Option  . . . . . . . . . . . 11
   6. 6
   8.  Security Considerations . . . . . . . . . . . . . . . . . . . 12
   7. . 6
   9.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 13
   8. 6
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . . . 14
     8.1. 6
     10.1. Normative References  . . . . . . . . . . . . . . . . . . . 14
     8.2. 6
     10.2. Informative References  . . . . . . . . . . . . . . . . . . 14 7
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . . 16 8
   Intellectual Property and Copyright Statements  . . . . . . . . . . 17 9

1.  Introduction

   The Location-to-Service Translation Protocol (LoST)
   [I-D.ietf-ecrit-lost] describes an XML-based protocol for mapping
   service identifiers and geospatial or civic location information to
   service contact Uniform Resource Locators (URLs).

   In order to query the interact with a LoST server, the LoST client finally
   needs to know its IP address.  Several mechanisms can be used to
   learn this address, including manual configuration.  In some environments
   where DHCP is
   used and the local access networks network itself either deploys a LoST server or knows the address or host name of
   a third party provided that operates a LoST server, server DHCP can provide the end
   host with this information. a domain name.  This domain name is then used as input to
   the DNS-based resolution mechanism described in LoST
   [I-D.ietf-ecrit-lost] that reuses the URI-enabled NAPTR specification
   (see [I-D.daigle-unaptr]).

   This document specifies a DHCPv4 and a DHCPv6 option that allows LoST
   clients to discover local LoST servers.

   Section 2 provides terminology.  Section 3 4 describes the DHCPv4
   option while Section 4 5 describes the DHCPv6 option, with the same
   functionality.  IANA and Security Considerations complete the
   document in Section 5 7 and Section 6. 8.

2.  Terminology

   In this document, the key words "MUST", "MUST NOT", "REQUIRED",
   "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
   and "OPTIONAL" are to be interpreted as described in RFC 2119
   [RFC2119].

   Within this document, we use terminology from
   [I-D.ietf-ecrit-requirements] and [I-D.ietf-ecrit-lost].

3.  LoST Server DHCPv4 Option

   The LoST server DHCP option carries either a 32-bit (binary) IPv4
   address or, preferably, a DNS (RFC 1035 [RFC1035]) fully-qualified
   domain name to be used by the LoST client to locate a LoST server.  Domain Name Encoding

   This option has two encodings, specified by the encoding byte ('enc')
   that follows the code byte.  If section describes the encoding byte has the value 0, it
   is followed by a list of domain names.  If the encoding byte has the
   value 1, it is followed by one or more IPv4 addresses (Section 3.2).
   All implementations MUST support both encodings.  The 'Len' field
   indicates the total number of octets domain name used in the
   DHCPv4 option following the
   'Len' field, including the encoding byte.

   A DHCP server MUST NOT mix the two encodings shown in the same DHCP
   message, even if it sends two different instances of the same option.
   Attempts to do so would result Section 4 and also used in incorrect client behavior as DHCP
   processing rules call for the concatenation of multiple instances of
   an option into a single option prior to processing the DHCPv6 option
   [RFC3396].
   shown in Section 5.

   The code for this option is TBD.

3.1.  LoST Servers Domain Name List

   If the 'enc' byte has a value of 0, the encoding byte domain name is followed by
   a sequence of labels, encoded according to Section 3.1 of RFC 1035
   [RFC1035], quoted below:

   Domain names in messages are expressed in terms of a sequence of
   labels.  Each
   [RFC1035] whereby each label is represented as a one octet length
   field followed by that number of octets.  Since every  The domain name ends with
   the null label of the root, a domain name is terminated by a length
   byte of zero.  The high order two bits of every length octet must be
   zero, and the remaining six bits of the length field limit the label
   to 63 octets or less.  To simplify implementations, the total length
   of a domain name (i.e., label octets and label length octets) is
   restricted to 255 octets or less.

   RFC 1035 [RFC1035] encoding was chosen to accommodate future
   internationalized domain name mechanisms.

   The minimum length for this encoding is 3.

   The option MAY contain multiple domain names, but these SHOULD refer
   to different NAPTR records, rather than different A records.  The
   client MUST try the records in the order listed.  The client only
   resolves the subsequent domain names if attempts to contact the first
   one failed or yielded no common transport protocols between client
   and server or denote a domain administratively prohibited by client
   policy.

   Use of multiple domain names is not meant to replace NAPTR (?TBD?)
   and SRV records, but rather to allow a single DHCP server to indicate
   LoST servers operated by multiple providers.

   Clients MUST support compression according to the encoding in Section
   4.1.4 ("Domain Names - Implementation And Specification") of
   [RFC1035].

   Since the domain names are supposed to be different domains,
   compression will likely have little effect, however.

   For DHCPv4 only:  If the length of the domain list name exceeds the
   maximum permissible within a single option (254 (i.e., 254 octets), then
   the domain list name MUST be represented in the DHCP message as specified
   in [RFC3396].

   The DHCP option for this encoding has the following format:

         Code  Len   enc   DNS name of LoST server
         +-----+-----+-----+-----+-----+-----+-----+-----+--
         | TBD |  n  |  0  |  s1 |  s2 |  s3 |  s4 | s5  |  ...
         +-----+-----+-----+-----+-----+-----+-----+-----+--

                     Figure 1:

4.  LoST FQDN Server DHCPv4 Option

   As an example, consider the case where the server wants to offer two
   LoST servers, "example.com" and "example.net".  These would be
   encoded as follows:

       +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
       |TBD|27 | 0 | 7 |'e'|'x'|'a'|'m'|'p'|'l'|'e'| 3 |'c'|'o'|'m'| 0 |
       +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
       +---+---+---+---+---+---+---+---+---+---+---+---+---+
       | 7 |'e'|'x'|'a'|'m'|'p'|'l'|'e'| 3 |'n'|'e'|'t'| 0 |
       +---+---+---+---+---+---+---+---+---+---+---+---+---+

              Figure 2: Example for a

   The LoST FQDN server DHCPv4 Option

3.2.  LoST Servers IPv4 Address List

   If the 'enc' byte has a value of 1, the encoding byte is followed by option carries a list of IPv4 addresses indicating LoST servers available DNS (RFC 1035 [RFC1035])
   fully-qualified domain name to the
   client.  Servers MUST be listed in order of preference.

   Its minimum length is 5, and used by the length MUST be LoST client to locate a multiple of 4 plus
   one.  The offset is measured from the beginning of the option.
   LoST server.

   The DHCP option for this encoding has the following format:

         Code    Len   enc   Address 1               Address 2
           +-----+-----+-----+-----+-----+-----+-----+-----+--   LoST Server Domain Name
         +-----+-----+-----+-----+-----+-----+-----+----
         | TBD |  n  |  1  | a1  s1 | a2  s2 | a3  s3 | a4  s4 | a1 s5  |  ...
           +-----+-----+-----+-----+-----+-----+-----+-----+--
         +-----+-----+-----+-----+-----+-----+-----+----

                     Figure 3: 1: LoST IP Address(es) FQDN DHCPv4 Option

4.  LoST

      Code: OPTION_LOST (TBD1)

      Len: Length of the 'LoST Server DHCPv6 Option

   This document defines two DHCPv6 options that describe a local Domain Name' field
      in octets; variable.

      LoST
   server:  one carries a list of server Domain Name: The domain names (see Section 4.1), the
   other a list of 128-bit (binary) IPv6 addresses (see Section 4.2).

      Since DHCPv6 does not suffer from a shortage name of option codes, we
      avoid the encoding byte found in the IPv4 DHCP option for LoST
      servers (see Section 3).  This makes the option shorter, easier to
      parse, simplifies appropriate word alignment
      server for the numeric
      addresses and allows the client to request either numeric or
      domain name options using the "option request option".

   An implementation implementing this specification MUST support both
   options described in Section 4.1 and in Section 4.2.

4.1.  LoST Servers Domain Name List use.

   The option length is followed by a sequence of labels, encoded
   according to Section 3.1 of RFC 1035 [RFC1035], quoted below:

      "Domain names in messages are expressed in terms of a sequence of
      labels.  Each label is represented as a one octet length field
      followed by that number of octets.  Since every domain name ends
      with the null label encoding of the root, a domain name is terminated by a
      length byte of zero.  The high order two bits of every length
      octet must be zero, and the remaining six bits of the length field
      limit the label to 63 octets or less.  To simplify
      implementations, the total length of described in Section 3.

   Only a single domain name (i.e., label
      octets and label length octets) is restricted to 255 octets or
      less."

      RFC 1035 [RFC1035] encoding was chosen to accommodate future
      internationalized domain name mechanisms.

   The option MAY contain multiple domain names, but these SHOULD refer
   to different NAPTR records, rather than different A records.  The
   client MUST try the records be present in the order listed.  The client only
   resolves the subsequent domain names if attempts to contact the first
   one failed or yielded no common transport protocols between client
   and server or denote DHCPv4 option.

5.  LoST Server DHCPv6 Option

   This document defines a domain administratively prohibited by client
   policy.  Domain names MUST be listed in order of preference.

   Use of multiple domain names is not meant to replace NAPTR or SRV
   records, but rather DHCPv6 options to allow carry a single DHCP server to indicate LoST
   servers operated by multiple providers. domain name.

   The DHCPv6 option has the format shown in Figure 4. 3.

       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_LOST_SERVER_D      OPTION_LOST              |         option-length         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                LoST Server Domain Name List                        |
      |                              ...                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Figure 4: 3: DHCPv6 Option for LoST Server Domain Name List

      option-code: OPTION_LOST_SERVER_D (TBD) OPTION_LOST (TBD2)

      option-length: Length of the 'LoST Server Domain Name List' Name' field
      in octets; variable.

      LoST server Domain Name List: Name: The domain names of LoST
      servers for the client to use.  The domain names are encoded
      as specified in Section 8 ("Representation and use of domain
      names") of the DHCPv6 specification [RFC3315].

4.2.  LoST Servers IPv6 Address List

   This option specifies a list of IPv6 addresses indicating LoST
   servers available to the client.  Servers MUST be listed in order of
   preference.

   The DHCPv6 option has the format shown in Figure 6.

       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_LOST_SERVER_A     |           option-len          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      |                   LoST server (IP address)                    |
      |                                                               |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      |                   LoST server (IP address)                    |
      |                                                               |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                              ...                              |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         Figure 6: DHCPv6 Option for LoST Server IPv6 Address List

      option-code: OPTION_LOST_SERVER_A (TBD)

      option-length: Length name of the 'options' field in octets; must be a
      multiple of 16.

      LoST server: IPv6 address of a LoST
      server for the client to use.
                  The servers are listed in the order of preference for
                  use by the client.

4.3.  Client Operation

   A DHCPv6 client may request either or both of the LoST Servers Domain Name
   List and a LoST IPv6 Address List options server domain name in an Options
   Request Option (ORO) as described in [RFC3315],

   If a client receives both the LoST Servers Domain Name List and LoST
   Servers IPv6 Address List options, it SHOULD use [RFC3315].

   The encoding of the LoST Servers
   Domain Name List option.  Only if no server domain name is described in the LoST Servers
   Domain Name List can Section 3.

   Only a single domain name MUST be resolved or reached, the client MAY use present in the
   LoST Servers IPv6 Address List DHCPv6 option.

4.4.  Server Operation

   A server MAY send a client one or both

6.  Example

   This section shows an example of the LoST Servers Domain
   Name List and LoST Servers IPv6 Address List options.

   If a client requests both options and the server is configured for
   both, the server MAY send a client only one of these options and
   SHOULD send DHCPv4 option where the LoST Servers Domain Name List.

   A DHCP
   server configured with wants to offer the LoST Servers IPv6 Address List option
   MUST send a client "example.com" domain name to the LoST Servers IPv6 Address List option if that client requested the LoST Servers IPv6 Address List option and not
   the LoST Servers Domain Name List option in an ORO (see [RFC3315]).

   The following table summarizes as
   input to the server's response:

     Client sends in ORO             Domain Name List  IPv6 Address List
     __________________________________________________________________
     Neither option                  SHOULD            MAY U-NAPTR LoST Servers Domain Name List   SHOULD            MAY discovery procedure.  This domain name
   would be encoded as follows:

         +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
         |TBD|13 | 7 |'e'|'x'|'a'|'m'|'p'|'l'|'e'| 3 |'c'|'o'|'m'| 0 |
         +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

              Figure 5: Example for a LoST Servers IPv6 Address List  MAY               MUST
     Both options                    SHOULD            MAY

5. FQDN DHCPv4 Option

7.  IANA Considerations
7.1.  IANA Consideration for DHCPv4 Option

   The following DHCPv4 option code for the Location-to-Service
   Translation Protocol (LoST) server option must be assigned by IANA:

       Option  Name            Value       Described in
       -----------------------------------------------
       OPTION_LOST              TBD         Section 3 4

7.2.  IANA Consideration for DHCPv6 Option

   IANA is requested to assign the following DHCPv6 option codes for the
   Location-to-Service Translation Protocol (LoST) options:

       Option  Name            Value       Described in
       ------------------------------------------------
       OPTION_LOST_SERVER_D     TBD         Section 4.1
       OPTION_LOST_SERVER_A
       OPTION_LOST              TBD         Section 4.2

6. 5

8.  Security Considerations

   If an adversary manages to modify the response from a DHCP server or
   insert its own response, a LoST client could be led to contact a
   rogue LoST server under the control of the adversary or be given an
   invalid address.  These threats are documented in
   [I-D.ietf-ecrit-security-threats].  The security considerations in
   [RFC2131], [RFC2132] and [RFC3315] are applicable to this document.

7.

9.  Acknowledgements

   This document copies a lot of text from [RFC3361] and from [RFC3319].

   The authors would therefore like to thank Henning Schulzrinne,
   Jonathan Rosenberg Andrew Newton and Bernie Volz Leslie Daigle for
   their work on these two RFCs.

   Furthermore, the authors draft review.  We would like to particularly thank Christian Dickmann and
   Mayutan Arumaithurai Andrew
   Newton for their draft review.

8. the simplifications he proposed.

10.  References

8.1.

10.1.  Normative References

   [I-D.ietf-ecrit-lost]
              Hardie, T., "LoST: A Location-to-Service Translation
              Protocol", draft-ietf-ecrit-lost-00 draft-ietf-ecrit-lost-01 (work in progress),
              June
              September 2006.

   [RFC1035]  Mockapetris, P., "Domain names - implementation and
              specification", STD 13, RFC 1035, November 1987.

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

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

   [RFC2132]  Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor
              Extensions", RFC 2132, 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.

8.2.

10.2.  Informative References

   [I-D.daigle-unaptr]
              Daigle, L., "Domain-based Application Service Location
              Using URIs and the Dynamic  Delegation Discovery Service
              (DDDS)", draft-daigle-unaptr-00 (work in progress),
              June 2006.

   [I-D.ietf-ecrit-requirements]
              Schulzrinne, H. and R. Marshall, "Requirements for
              Emergency Context Resolution with Internet Technologies",
              draft-ietf-ecrit-requirements-12 (work in progress),
              August 2006.

   [I-D.ietf-ecrit-security-threats]
              Taylor, T., "Security Threats and Requirements for
              Emergency Call Marking and Mapping",
              draft-ietf-ecrit-security-threats-03 (work in progress),
              July 2006.

   [RFC3319]  Schulzrinne, H. and B. Volz, "Dynamic Host Configuration
              Protocol (DHCPv6) Options for Session Initiation Protocol
              (SIP) Servers", RFC 3319, July 2003.

   [RFC3361]  Schulzrinne, H., "Dynamic Host Configuration Protocol
              (DHCP-for-IPv4) Option for Session Initiation Protocol
              (SIP) Servers", RFC 3361, August 2002.

   [RFC3396]  Lemon, T. and S. Cheshire, "Encoding Long Options in the
              Dynamic Host Configuration Protocol (DHCPv4)", RFC 3396,
              November 2002.

Authors' Addresses

   Henning Schulzrinne
   Columbia University
   Department of Computer Science
   450 Computer Science Building
   New York, NY  10027
   US

   Phone:  +1 212 939 7004
   Email:  hgs+ecrit@cs.columbia.edu
   URI:    http://www.cs.columbia.edu

   James Polk
   Cisco
   2200 East President George Bush Turnpike
   Richardson, Texas  75082
   US

   Email:  jmpolk@cisco.com

   Hannes Tschofenig
   Siemens
   Otto-Hahn-Ring 6
   Munich, Bavaria  81739
   Germany

   Phone:  +49 89 636 40390
   Email:  Hannes.Tschofenig@siemens.com
   URI:    http://www.tschofenig.com

Full Copyright Statement

   Copyright (C) The Internet Society (2006).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

Acknowledgment

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).