Internet Engineering Task Force Internet Draft Nair/Schulzrinne draft-nair-sip-dhcp-00.txt Columbia University February 4, 2000 Expires: August 2000 DHCP Option for SIP Servers STATUS OF THIS MEMO This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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. Abstract This document defines a DHCP option that contains one or more pointers to one or more SIP servers . This enables a SIP client to obtain the addresses of the SIP servers during bootup. 1 Terminology DHCP client: A DHCP [1] client is an Internet host that uses DHCP to obtain configuration parameters such as a network address. DHCP server: A DHCP server is an Internet host that returns configuration parameters to DHCP clients. SIP server: As defined in RFC 2543 [2]. In the context of this document, a SIP server refers to the host the application is running on. Nair/Schulzrinne [Page 1] Internet Draft February 4, 2000 SIP client: As defined in RFC 2543. In the context of this document, a SIP client refers to the host the application is running on. 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 [3]. 2 Introduction The Session Initiation Protocol (SIP) [2] is an application-layer control protocol that can establish, modify and terminate multimedia sessions or calls. In particular, it is used for signalling of Internet telephony calls. A SIP system has two components: user agents and servers. The user agent is the SIP end system that acts on behalf of someone who wants to participate in a SIP call. This draft specifies a DHCP option [1,4] that allows SIP user agents (clients) to locate a local SIP server that is to be used for all outbound SIP requests. (SIP clients MAY contact the address identified in the SIP URL directly, without involving a local SIP server. However in some circumstances, in particular with firewalls, SIP clients need to use a local server for outbound requests.) 3 Overview We identify three methods of notifying the client of the servers' location: 1. DNS SRV records [5,6]: The IP address can be resolved by the client, using DNS and the SRV name passed through a DHCP option. 2. DNS A records [5]: The IP address can be resolved by the client using DNS and the host name passed through a DHCP option. 3. List of IP addresses: Used in case there is no DNS server or in the case that the client host is not DNS capable. Any or all of these methods may be used to notify the client of the servers' location. One approach to using these methods through DHCP is to have a separate DHCP option for each method. This approach makes it easier for the client to ignore options that it is not concerned with. This is an issue in the case of smaller embedded systems that do not implement DNS or with systems that do not recognize the DNS SRV Nair/Schulzrinne [Page 2] Internet Draft February 4, 2000 record. In these cases the client is interested only in the IP address of the SIP server or the DNS `A' record, as the case may be. This approach however consumes at least three option numbers from the option number space. In order to conserve the option number space, we propose to include all three methods within a single option space. This is done by separating them into individual sub-options. The drawback of this method is that it is more complicated than the individual option approach mentioned above. However in addition to conserving precious option number space, it logically groups all three methods of SIP server location in a single field. This approach is defined in the following sections. 4 SIP server option This option specifies one or more fields containing location information for the SIP servers. The fields that can be carried in this option are described in the sections that follow. The code for this option is TBD, and its maximum length is 255 octets. Code Len Sub-Options +-----+-----+-----+-----+-----+-----+-- | TBD | n | s1 | s2 | s3 | s4 | ... +-----+-----+-----+-----+-----+-----+-- The `Len' field specifies the total number of octets contained in all sub-options. Each sub-option will contain a sub-code followed by a length that specifies the number of octets containing configuration information within the sub-option. Sub Sub Code Len configuration information +-----+-----+-----+-----+-----+-----+-----+-- | x | n | c1 | c2 | c3 | c4 | c5 | ... +-----+-----+-----+-----+-----+-----+-----+-- Nair/Schulzrinne [Page 3] Internet Draft February 4, 2000 4.1 DNS SRV resource record sub-option This sub-option specifies the SRV [6] name that the client can use to resolve the IP address of the host through DNS [5]. The sub-code for this sub-option is 1. The length of the SRV name string is specified in `Sub Len'. The maximum length of this string is 253 octets and minimum length is 1 octet. Sub Sub Code Len SRV string pointing to SIP server +-----+-----+-----+-----+-----+-----+-----+-- | 1 | n | s1 | s2 | s3 | s4 | s5 | ... +-----+-----+-----+-----+-----+-----+-----+-- Clients SHOULD use this method to locate the SIP server. The reason to list the SRV string and use DNS to resolve the address is that load sharing can be implemented more readily by an SRV-cognizant client. 4.2 DNS `A' resource record sub-option This sub-option specifies the host name of the SIP server that the client can resolve using the DNS `A' records. The sub-code for this sub-option is 2. The length of the host name is specified in `Sub Len'. The maximum length of this string is 253 octets and minimum length is 1 octet. Sub Sub Code Len Host name of SIP server +-----+-----+-----+-----+-----+-----+-----+-- | 2 | n | h1 | h2 | h3 | h4 | h5 | ... +-----+-----+-----+-----+-----+-----+-----+-- 4.3 IP address sub-option This sub-option specifies the list of IP addresses indicating SIP servers available to the client. If this suboption is used, the client SHOULD choose an address from this list at random. The random Nair/Schulzrinne [Page 4] Internet Draft February 4, 2000 choice of IP addresses prevents a single server from being overloaded. This sub-option SHOULD only be used if the client does not implement DNS (as in the case of some embedded systems). The sub-code for this sub-option is 3. The length is specified in `Sub Len'. The minimum length of this field is 4 and the length MUST be a multiple of 4. The maximum length of this field is 250 octets. Sub Sub Code Len Address 1 Address 2 +-----+-----+-----+-----+-----+-----+-----+-----+-- | 3 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... +-----+-----+-----+-----+-----+-----+-----+-----+-- 4.4 Backup IP address sub-option This sub-option specifies the IP address of the backup SIP server. This sub-option SHOULD be present in the reply made by the DHCP server and SHOULD be used by the clients only in the case of failure of the DNS server or in the case of failure of the SIP servers indicated in the sub-options 1, 2, or 3. This is a `last resort' option and is provided in addition to the sub-option 3 (which lists IP addresses) for the following reasons: A client host that is not DNS capable will use sub-option 3 which specifies that the choice of IP address from the list of IP addresses should be random. This random choice scheme does not provide an easy way to specify a backup server which is to be used ONLY as a last resort and not otherwise. Hence it is required to explicitly specify the IP address of a backup server in a separate sub-option. The sub-code for this option is 4. The length is specified in `Sub Len' and MUST be 4. Sub Sub Code Len Backup server Address +-----+-----+-----+-----+-----+-----+ | 4 | 4 | a1 | a2 | a3 | a4 | +-----+-----+-----+-----+-----+-----+ 5 Multiple sub-options Nair/Schulzrinne [Page 5] Internet Draft February 4, 2000 More than one sub-option MAY be returned by the DHCP server. More than one of any sub-option types MAY be present. This permits the client to select the sub-option that suits its capabilities (DNS-SRV, DNS-A, or no DNS capability). 6 Security Consideration There are no security considerations beyond those described in RFC 2132. 7 Authors' Addresses Gautam Nair Dept. of Computer Science Columbia University 1214 Amsterdam Avenue, MC 0401 New York, NY 10027 USA electronic mail: gnair@cs.columbia.edu Henning Schulzrinne Dept. of Computer Science Columbia University 1214 Amsterdam Avenue, MC 0401 New York, NY 10027 USA electronic mail: schulzrinne@cs.columbia.edu 8 Bibliography [1] R. Droms, "Dynamic host configuration protocol," Request for Comments (Draft Standard) 2131, Internet Engineering Task Force, Mar. 1997. [2] M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, "SIP: session initiation protocol," Request for Comments (Proposed Standard) 2543, Internet Engineering Task Force, Mar. 1999. [3] S. Bradner, "Key words for use in RFCs to indicate requirement levels," Request for Comments (Best Current Practice) 2119, Internet Engineering Task Force, Mar. 1997. [4] S. Alexander and R. Droms, "DHCP options and BOOTP vendor extensions," Request for Comments (Draft Standard) 2132, Internet Engineering Task Force, Mar. 1997. [5] P. V. Mockapetris, "Domain names - implementation and specification," Request for Comments (Standard) 1035, Internet Engineering Task Force, Nov. 1987. Nair/Schulzrinne [Page 6] Internet Draft February 4, 2000 [6] A. Gulbrandsen and P. Vixie, "A DNS RR for specifying the location of services (DNS SRV)," Request for Comments (Experimental) 2052, Internet Engineering Task Force, Oct. 1996. Full Copyright Statement Copyright (c) The Internet Society (2000). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS 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. Table of Contents 1 Terminology ......................................... 1 2 Introduction ........................................ 2 3 Overview ............................................ 2 4 SIP server option ................................... 3 4.1 DNS SRV resource record sub-option .................. 4 4.2 DNS `A' resource record sub-option .................. 4 4.3 IP address sub-option ............................... 4 4.4 Backup IP address sub-option ........................ 5 Nair/Schulzrinne [Page 7] Internet Draft February 4, 2000 5 Multiple sub-options ................................ 5 6 Security Consideration .............................. 6 7 Authors' Addresses .................................. 6 8 Bibliography ........................................ 6 Nair/Schulzrinne [Page 8]