Difference between sname, siaddr and option 66

Sujata Verma sujataverma3 at yahoo.com
Fri Jun 29 09:30:01 UTC 2012


Hi,
 
 
I am going throgh BOOTP and DHCP differences and i came across three fields in Linux next-server, server-name and tftp-server-name. 
 
In Windows 2003 Server the "sname" field is never used and option 66 ( tftp-server-name option) and "siaddr" fields are same. 
 
I have few questions and understandings on Linux behaviour and in general in RFC :
 
1) siaddr field from RFC will match to "next-server" name in Linux.
 
2) In which case "sname" field can be used ? For linux sname is equivalent to "server-name" , does its behaviour is also similar to "next-server".
 
  If i give "sname" ipaddress but not "next-server" in DHCP server conf file as per man page  " used to inform the client of the name of the server from which it is booting" , does this implies it can be used as "tftp-server" if not what is the purpose of this field? 
 
and how it is used.
 
Also in one of forun thread it is mentioned that "this is the name of the dhcp server"  if it is so , we already have dhcp-server-identifier field, why duplication of this?
 
Somewhere i read , this field is used by client to identify the server name from which it wants to boot, but no where setting this option is present in clients (either in windows or Linux).In RFC the sname field is mentioned by clients only as options or unused. So client should never use it is my assumption.
 
3) Next question is when "tftp-server-name" option will be used.

Also in previous forum thread (given in references) it is mentioned that the client should request for it .  Using which option should the client request it, so that it will work?

What will happen if i set both "next-server(siaddr) " and "tftp-server-name" which will be given preference.

In windows 2003 server, if we configure option 66 it is not sending it seperately as option but overriding the "siaddr" field. This means that "sname" is not overloaded and even though the name is "option 66" internally they are setting "siaddr" field. Is this behaviour correct as per RFC? 
 
Please let me know your thoughts on this. I will appreciate your comments/ views on this. This will help me in understanding of the DHCP in general. Below are the references which i have gone through.
 

References:================================================
http://www.daemon-systems.org/man/dhcpd.conf.5.html
http://linux.die.net/man/5/dhcp-options
Linux Man pages: 
next-server server-name;
         The  next-server statement is used to specify the host address of the
         server from which the initial boot file (specified  in  the  filename
         statement)  is  to  be  loaded.    Server-name should be a numeric IP
         address or a domain name.
       
The server-name statement
         server-name name ;
         The  server-name  statement  can  be used to inform the client of the
         name of the server from which it is booting.    Name  should  be  the
         name that will be provided to the client.

option tftp-server-name text; 

This option is used to identify a TFTP server and, if supported by the client, should have the same effect as the server-name declaration. BOOTP clients are 
unlikely to support this option. Some DHCP clients will support it, and others actually require it. 

Already discussed threads, but not clear to me:

https://lists.isc.org/pipermail/dhcp-users/2006-September/001874.html
https://lists.isc.org/pipermail/dhcp-users/2007-March/003089.html
 
DHCP RFC 2131 and 
options RFC : http://tools.ietf.org/html/rfc2132

   siaddr        4  IP address of next server to use in bootstrap;
                    returned in DHCPOFFER, DHCPACK by server.
   
   sname        64  Optional server host name, null terminated string.

TFTP server name
   This option is used to identify a TFTP server when the 'sname' field
   in the DHCP header has been used for DHCP options.
   The code for this option is 66, and its minimum length is 1.
       Code  Len   TFTP server
      +-----+-----+-----+-----+-----+---
      | 66  |  n  |  c1 |  c2 |  c3 | ...
      +-----+-----+-----+-----+-----+---
RFC sec 4.3.1
              
           DHCPOFFER             DHCPACK
'sname'    Server host name     Server host name    (unused)
           or options           or options
            
            DHCPDISCOVER          DHCPREQUEST
'sname'    options, if           options, if           (unused)
           indicated in          indicated in
           'sname/file'          'sname/file'
           option; otherwise     option; otherwise
           unused                unused

Sec 3.5 
The client SHOULD include the 'maximum DHCP message size' option to
   let the server know how large the server may make its DHCP messages.
   The parameters returned to a client may still exceed the space
   allocated to options in a DHCP message.  In this case, two additional
   options flags (which must appear in the 'options' field of the
   message) indicate that the 'file' and 'sname' fields are to be used
   for options.In this case, two additional
   options flags (which must appear in the 'options' field of the
   message) indicate that the 'file' and 'sname' fields are to be used
   for options.

========================================================================
 
Regards,
Sujata
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/dhcp-users/attachments/20120629/eb44080e/attachment-0001.html>


More information about the dhcp-users mailing list