Internet Engineering Task Force
Internet Draft                                          Nair/Schulzrinne
draft-nair-sip-dhcp-01.txt                           Columbia University
February 11, 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 11, 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 two methods of notifying the client of the servers'
   location:

        1.   DNS [5] SRV records: IP address can be resolved by the
             client, using DNS and the name string passed through a DHCP
             option. The client first uses the SRV [6] resource records
             to resolve the host name. If this fails the A resource
             records are tried.

        2.   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 an option 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
   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.



Nair/Schulzrinne                                              [Page 2]


Internet Draft                                         February 11, 2000


   This approach however consumes at least two option numbers from the
   option number space.

   In order to conserve the option number space, we propose to include
   both 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 both methods of SIP server location into 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 11, 2000


4.1 DNS name sub-option

   This sub-option specifies the DNS [5] name of the SIP server The
   client SHOULD first use this string to send an SRV query to the DNS
   server.  If the client is not SRV-cognizant OR the SRV query fails,
   the client sends the same string in an A record query.  The sub-code
   for this sub-option is 1. The length of the DNS 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      DNS name of 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 IP address sub-option

   This sub-option specifies the list of IP addresses indicating SIP
   servers available to the client. The list SHOULD only be used if the
   client does not implement DNS (as in the case of some emebedded
   systems) OR if the DNS server is not responding. We duplicate
   relevant parts of the SRV record [6] in this sub-option. Each item of
   the list consists of 6 fields which are described below:

        1.   prio: This is a 16 bit field which indicates the priority
             of this target host. A client MUST attempt to contact the
             target host with the lowest-numbered priority it can reach;
             target hosts with the same priority SHOULD be tried in a
             round-robin fashion starting with a randomly chosen
             address. The range of priorities is 0-65535.

        2.   wt: This is a 16 bit field used by the load balancing
             mechanism.  When selecting a target host among those that
             have the same priority, the chance of trying this one first
             SHOULD be proportional to its weight. The range of this
             number is 1-65535. Domain administrators are urged to use
             Weight 0 when there isn't any load balancing to do, to make



Nair/Schulzrinne                                              [Page 4]


Internet Draft                                         February 11, 2000


             the sub-option easier to read for humans (less noisy).

        3.   port: This is a 16 bit field indicating the port on this
             target SIP server. The range is 0-65535. This is often 5060
             - as specified in the IANA Assigned Numbers, but need not
             be.

        4.   prot: This is an 8 bit field indicating the protocol used
             by the SIP server. This can be either TCP or UDP. The IANA
             assigned number for TCP (6) and UDP (17) are used here.

        5.   pad: This is an 8 bit field introduced to ensure that the
             suboption data is alligned with a 32 bit boundary. This
             makes it easier for the client to process the data.

        6.   IP address: This is a 32 bit field indicating the IP
             address of the SIP server.

   The sub-code for this sub-option is 2. The minimum length of this
   sub-option is 12 octets and the length MUST be a multiple of 12.  The
   maximum length of this sub-option is 252 octets.

            Sub   Sub
            Code  Len    Sub-option data 1    Sub-option data 2
          +-----+-----+-----+-----+-----+--   --+-----+-----+--
          |  2  |  n  | i1  | i2  | i3  |  ...  | i13 | i14 |  ...
          +-----+-----+-----+-----+-----+--   --+-----+-----+--


   The sub-option data is as follows:

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             prio              |              wt               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             port              |     prot      |     pad       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          IP address                           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+




5 Multiple sub-options

   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



Nair/Schulzrinne                                              [Page 5]


Internet Draft                                         February 11, 2000


   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 Acknowledgements

   We would like to thank Bernie Volz, Jonathan Rosenberg, Kundan Singh,
   Wenyu Jiang and Sven Ubik for their contributions.

8 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

9 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



Nair/Schulzrinne                                              [Page 6]


Internet Draft                                         February 11, 2000


   specification," Request for Comments (Standard) 1035, Internet
   Engineering Task Force, Nov. 1987.

   [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 name sub-option .................................    4



Nair/Schulzrinne                                              [Page 7]


Internet Draft                                         February 11, 2000


   4.2        IP address sub-option ...............................    4
   5          Multiple sub-options ................................    5
   6          Security Consideration ..............................    6
   7          Acknowledgements ....................................    6
   8          Authors' Addresses ..................................    6
   9          Bibliography ........................................    6













































Nair/Schulzrinne                                              [Page 8]