Network Working Group H. Schulzrinne Internet-Draft Columbia U. Intended status: Standards Track J. Polk Expires: March 4, 2007 Cisco H. Tschofenig Siemens August 31, 2006 A Dynamic Host Configuration Protocol (DHCP) based Location-to-Service Translation Protocol (LoST) Discovery Procedure draft-polk-ecrit-dhc-lost-discovery-00.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, 2007. Copyright Notice Copyright (C) The Internet Society (2006). Schulzrinne, et al. Expires March 4, 2007 [Page 1] Internet-Draft DHCP-based LoST Discovery August 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 Domain Name List . . . . . . . . . . . . . . 5 3.2. LoST Servers IPv4 Address List . . . . . . . . . . . . . . 6 4. LoST Server DHCPv6 Option . . . . . . . . . . . . . . . . . . 8 4.1. LoST Servers Domain Name List . . . . . . . . . . . . . . 8 4.2. LoST Servers IPv6 Address List . . . . . . . . . . . . . . 9 4.3. Client Operation . . . . . . . . . . . . . . . . . . . . . 10 4.4. Server Operation . . . . . . . . . . . . . . . . . . . . . 10 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 8.1. Normative References . . . . . . . . . . . . . . . . . . . 14 8.2. Informative References . . . . . . . . . . . . . . . . . . 14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 16 Intellectual Property and Copyright Statements . . . . . . . . . . 17 Schulzrinne, et al. Expires March 4, 2007 [Page 2] Internet-Draft DHCP-based LoST Discovery August 2006 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 LoST server, the LoST client needs to know its 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 either deploys a LoST server or knows the address or host name of a third party provided LoST server, DHCP can provide the end host with this information. This document specifies a DHCPv4 and a DHCPv6 option that allows LoST clients to discover local LoST servers. Section 2 provides terminology. Section 3 describes the DHCPv4 option while Section 4 describes the DHCPv6 option, with the same functionality. IANA and Security Considerations complete the document in Section 5 and Section 6. Schulzrinne, et al. Expires March 4, 2007 [Page 3] Internet-Draft DHCP-based LoST Discovery August 2006 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]. Schulzrinne, et al. Expires March 4, 2007 [Page 4] Internet-Draft DHCP-based LoST Discovery August 2006 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. This option has two encodings, specified by the encoding byte ('enc') that follows the code byte. If 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 in the option following the 'Len' field, including the encoding byte. A DHCP server MUST NOT mix the two encodings in the same DHCP message, even if it sends two different instances of the same option. Attempts to do so would result 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 option [RFC3396]. 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 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 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 Schulzrinne, et al. Expires March 4, 2007 [Page 5] Internet-Draft DHCP-based LoST Discovery August 2006 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. If the length of the domain list exceeds the maximum permissible within a single option (254 octets), then the domain list 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: LoST FQDN 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 LoST FQDN DHCPv4 Option 3.2. LoST Servers IPv4 Address List If the 'enc' byte has a value of 1, the encoding byte is followed by a list of IPv4 addresses indicating LoST servers available to the client. Servers MUST be listed in order of preference. Schulzrinne, et al. Expires March 4, 2007 [Page 6] Internet-Draft DHCP-based LoST Discovery August 2006 Its minimum length is 5, and the length MUST be a multiple of 4 plus one. The offset is measured from the beginning of the option. The DHCP option for this encoding has the following format: Code Len enc Address 1 Address 2 +-----+-----+-----+-----+-----+-----+-----+-----+-- | TBD | n | 1 | a1 | a2 | a3 | a4 | a1 | ... +-----+-----+-----+-----+-----+-----+-----+-----+-- Figure 3: LoST IP Address(es) DHCPv4 Option Schulzrinne, et al. Expires March 4, 2007 [Page 7] Internet-Draft DHCP-based LoST Discovery August 2006 4. LoST Server DHCPv6 Option This document defines two DHCPv6 options that describe a local LoST server: one carries a list of 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 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 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 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 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 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. 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 to allow a single DHCP server to indicate LoST servers operated by multiple providers. The DHCPv6 option has the format shown in Figure 4. Schulzrinne, et al. Expires March 4, 2007 [Page 8] Internet-Draft DHCP-based LoST Discovery August 2006 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-length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LoST Server Domain Name List | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4: DHCPv6 Option for LoST Server Domain Name List option-code: OPTION_LOST_SERVER_D (TBD) option-length: Length of the 'LoST Server Domain Name List' field in octets; variable. LoST server Domain Name List: 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) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Schulzrinne, et al. Expires March 4, 2007 [Page 9] Internet-Draft DHCP-based LoST Discovery August 2006 Figure 6: DHCPv6 Option for LoST Server IPv6 Address List option-code: OPTION_LOST_SERVER_A (TBD) option-length: Length 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 client may request either or both of the LoST Servers Domain Name List and LoST IPv6 Address List options 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 the LoST Servers Domain Name List option. Only if no server in the LoST Servers Domain Name List can be resolved or reached, the client MAY use the LoST Servers IPv6 Address List option. 4.4. Server Operation A server MAY send a client one or both 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 the LoST Servers Domain Name List. A server configured with the LoST Servers IPv6 Address List option MUST send a client 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 the server's response: Client sends in ORO Domain Name List IPv6 Address List __________________________________________________________________ Neither option SHOULD MAY LoST Servers Domain Name List SHOULD MAY LoST Servers IPv6 Address List MAY MUST Both options SHOULD MAY Schulzrinne, et al. Expires March 4, 2007 [Page 10] Internet-Draft DHCP-based LoST Discovery August 2006 5. IANA Considerations 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 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 TBD Section 4.2 Schulzrinne, et al. Expires March 4, 2007 [Page 11] Internet-Draft DHCP-based LoST Discovery August 2006 6. 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. Schulzrinne, et al. Expires March 4, 2007 [Page 12] Internet-Draft DHCP-based LoST Discovery August 2006 7. Acknowledgements This document copies a lot of text from [RFC3361] and from [RFC3319]. The authors would therefore like to thank Henning Schulzrinne, Jonathan Rosenberg and Bernie Volz for their work on these two RFCs. Furthermore, the authors would like to thank Christian Dickmann and Mayutan Arumaithurai for their draft review. Schulzrinne, et al. Expires March 4, 2007 [Page 13] Internet-Draft DHCP-based LoST Discovery August 2006 8. References 8.1. Normative References [I-D.ietf-ecrit-lost] Hardie, T., "LoST: A Location-to-Service Translation Protocol", draft-ietf-ecrit-lost-00 (work in progress), June 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. Informative References [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 Schulzrinne, et al. Expires March 4, 2007 [Page 14] Internet-Draft DHCP-based LoST Discovery August 2006 Dynamic Host Configuration Protocol (DHCPv4)", RFC 3396, November 2002. Schulzrinne, et al. Expires March 4, 2007 [Page 15] Internet-Draft DHCP-based LoST Discovery August 2006 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 Schulzrinne, et al. Expires March 4, 2007 [Page 16] Internet-Draft DHCP-based LoST Discovery August 2006 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). Schulzrinne, et al. Expires March 4, 2007 [Page 17]