Vendor options not being sent

Glenn Satchell glenn.satchell at uniq.com.au
Wed Sep 15 12:00:57 UTC 2010


Hi Arno

I think what is missing is the definitions of the SUNW space variables. 
These must be defined in the global scope to specify what the type each 
of the SUNW.things are. This ensures they are encoded in the proper 
format (string, number, ip-address and so on. Then in an appropriate 
scope you fill in the value.

Here is what I use in my configuration for booting and jumpstarting Sun 
SParc boxes. All the jumpstart bits are defined in the class and nothing 
special is needed in the subnet definition.

# Jumpstart specific stuff
option space SUNW code width 1 length width 1 hash size 11;
option SUNW.root-server-ip-address code 2 = ip-address;
option SUNW.root-server-hostname code 3 = text;
option SUNW.root-path-name code 4 = text;
option SUNW.install-server-ip-address code 10 = ip-address;
option SUNW.install-server-hostname code 11 = text;
option SUNW.install-path code 12 = text;
option SUNW.sysid-config-file-server code 13 = text;
option SUNW.jumpstart-server code 14 = text;

class "SUNW_sparc" {
   match if substring(option vendor-class-identifier, 0, 8) = "SUNW.Sun";
   vendor-option-space SUNW;
   option SUNW.root-server-ip-address drill.uniq.com.au;
   option SUNW.root-server-hostname "drill";
   option SUNW.root-path-name 
"/jumpstart/solaris/sol_10_1009_sparc/Solaris_10/Tools/Boot";
   option SUNW.install-server-ip-address drill;
   option SUNW.install-server-hostname "drill";
   option SUNW.install-path "/jumpstart/solaris/sol_10_1009_sparc";
   option SUNW.sysid-config-file-server "drill:/jumpstart/sysid/2.10";
   option SUNW.jumpstart-server "drill:/jumpstart";
}

subnet 192.168.14.0 netmask 255.255.255.0 {
   option routers grinder.uniq.com.au;
   pool {
     range 192.168.14.230 192.168.14.253;
   }
}

regards,
-glenn

On 09/15/10 07:51, Arno Lehmann wrote:
> Hi all,
>
> I'm currently struggling to send some vendor options to a dhcp client,
> so far without success.
>
> I've got dhcpd serving a number of IPv4 subnets for quite a while, and
> the basic stuff all works fine.
>
> Now I've got an old sun server I want to boot from the network, and set
> up its boot configuration with dhcp.
>
> I ended up defining an "option space SUNW;" with all the needed options
> - that part seems to work as I don't get complaints on dhcpd startup.
>
> Then I've got one locally connected subnet inside which I - after trying
> many other approaches - ended up with this construct:
>
> class "v210" {
> match if option vendor-class-identifier = "SUNW.Sun-Fire-V210";
> }
>
> pool {
> range 192.168.37.125 192.168.37.125;
> allow members of "v210";
> next-server X;
> filename "sol10sparc";
> option host-name "sun1";
> option domain-name "a.b.com";
> ddns-hostname "sun1";
> ddns-domainname "a.b.com";
> vendor-option-space SUNW;
> option SUNW.install-server-hostname "X";
> option SUNW.install-server-ip-address 192.168.m.n;
> option SUNW.root-server-hostname "X";
> option SUNW.install-path "/sol10";
> option SUNW.root-server-ip-address 192.168.m.n;
> option SUNW.root-path-name "/sol10/Solaris_10/Tools/Boot";
> option SUNW.sysid-config-file-server "192.168.m.n:/sol10/config";
> option SUNW.JumpStart-server "192.168.m.n:/sol10/jumpstart";
> }
>
> which seems to work basically - the (only) IP address is assigned,
> registered in DNS, the host name is assigned, etc. Unfortunately, the
> Vendor Options are never sent...
>
> I believe I confirmed this by checking with tcpdump. This is a DISCOVER:
>
>> 21:34:43.355965 IP (tos 0x0, ttl 64, id 1, offset 0, flags [none],
>> proto: UDP (
>> 17), length: 328) 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP,
>> Request f
>> rom 00:03:ba:59:f1:0d (oui Unknown), length: 300, xid:0x21f83d33,
>> flags: [none]
>> Client Ethernet Address: 00:03:ba:uu:vv:ww (oui Unknown)
>> Vendor-rfc1048:
>> DHCP:DISCOVER
>> VC:"SUNW.Sun-Fire-V210"
>> PR:SM+DG+HN+VO
>> MSZ:1472
>
> Here, a REPLY:
>
>> 21:34:43.356294 IP (tos 0x10, ttl 16, id 0, offset 0, flags [none],
>> proto: UDP
>> (17), length: 328) d.e.f.g.bootps > sun1.a.b.
>> com.bootpc: BOOTP/DHCP, Reply, length: 300, xid:0x21f83d33, flags: [none]
>> Your IP: sun1.a.b.com
>> Server IP: X.Y.Z
>> Client Ethernet Address: 00:03:ba:uu:vv:ww (oui Unknown)
>> file "sol10sparc"
>> Vendor-rfc1048:
>> DHCP:OFFER
>> SID:d.e.f.g
>> LT:8000
>> SM:255.255.255.0
>> DG:d.e.f.g
>  > 0x0000: <dump snipped>
>
> Then, the REQUEST:
>
>> 21:34:47.373359 IP (tos 0x0, ttl 64, id 2, offset 0, flags [none],
>> proto: UDP (
>> 17), length: 328) 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP,
>> Request f
>> rom 00:03:ba:uu:vv:ww (oui Unknown), length: 300, xid:0x21f83d33,
>> flags: [none]
>> Client Ethernet Address: 00:03:ba:uu:vv:ww (oui Unknown)
>> Vendor-rfc1048:
>> DHCP:REQUEST
>> VC:"SUNW.Sun-Fire-V210"
>> PR:SM+DG+HN+VO
>> MSZ:1472
>> SID:d.e.f.g
>> RQ:sun1.a.b.com
>> 0x0000:
>
> And, finally, the REPLY:
>
>> 21:34:47.373717 IP (tos 0x10, ttl 16, id 0, offset 0, flags [none],
>> proto: UDP
>> (17), length: 328) d.e.f.g.bootps > sun1.a.b.
>> com.bootpc: BOOTP/DHCP, Reply, length: 300, xid:0x21f83d33, flags: [none]
>> Your IP: sun1.a.b.com
>> Server IP: X.Y.Z
>> Client Ethernet Address: 00:03:ba:uu:vv:ww (oui Unknown)
>> file "sol10sparc"
>> Vendor-rfc1048:
>> DHCP:ACK
>> SID:d.e.f.g
>> LT:8000
>> SM:255.255.255.0
>> DG:d.e.f.g
>> 0x0000: <dump follows>
>
> What I read in the above is that Vendor options are requested
> ("PR:SM+DG+HN+VO") but I don't see them in any response packet.
>
> As I tried this with both my (outdated) production dhcpd 3.0.5 as well
> as a freshly compiled 4.1.1-P1 version without any difference in
> behaviour, I assume the problem is in my configuration.
>
> Any hints?
>
> By the way - initially, I tried the plain approach of defining a host
> with a static address and all the options, but that resulted in exactly
> the same result - no vendor options delivered to the client.
>
> Thanks,
>
> Arno
>



More information about the dhcp-users mailing list