netbooting Apple Xserves, not working since dhcp version 3.0pl1-9a

Glenn Satchell Glenn.Satchell at uniq.com.au
Thu Aug 16 15:56:28 UTC 2007


In version 3.0.1 onwards you can define new optionnames within
dhcpd.conf. Add these definitions to your new dhcpd.conf:

option mac-nc-client-unknown code 220 = string;
option mac-nc-client-id code 221 = text;
option mac-version code 230 = string;
option mac-user-name code 232 = text;
option mac-password code 233 = text;
option mac-nb-img code 234 = string;
option mac-apps-img code 235 = string;
option mac-machine-name code 237 = text;
option mac-client-nb-img 238 = string;

I think that's right. 'X' is a string and 't' is ascii text.

There's also some other things in that diff. The option 
dhcp-parameter-request-list looks like it needs to be set.

+	priority_list [priority_len++] = DHO_SUBNET_MASK;
+	priority_list [priority_len++] = DHO_ROUTERS;
+	priority_list [priority_len++] = DHO_MAC_NC_SERVER_VERSION;
+	priority_list [priority_len++] = DHO_MAC_NC_SERVER_USER_NAME;
+	priority_list [priority_len++] = DHO_MAC_NC_SERVER_MACHINE_NAME;
+	priority_list [priority_len++] = DHO_MAC_NC_SERVER_PASSWORD;
+	priority_list [priority_len++] = DHO_MAC_NC_SERVER_NB_IMG;
+	priority_list [priority_len++] = DHO_MAC_NC_SERVER_APPS_IMG;
+	priority_list [priority_len++] = DHO_MAC_NC_SERVER_CLIENT_NB_IMG;

Just need to find these and set them, in hex, eg:

option dhcp-parameter-request-list = 1:3:dc:dd:e6:e8:e9:ea:eb:ed:ee;

There might be some other fiddling required, but this looks about it.
Of course you probably want to put this in a class so that these
options are only set for your netbooting apple clients:

class "apple" {
  match if option dhcp-client-identifier = "Apple Mac NC";
  
  option dhcp-parameter-request-list = 1:3:dc:dd:e6:e8:e9:ea:eb:ed:ee;
  option dhcp-max-message-size = 576;
  
  option mac-nc-client-unknown code 220 = string;
  option mac-nc-client-id code 221 = text;
  option mac-version code 230 = string;
  option mac-user-name code 232 = text;
  option mac-password code 233 = text;
  option mac-nb-img code 234 = string;
  option mac-apps-img code 235 = string;
  option mac-machine-name code 237 = text;
  option mac-client-nb-img 238 = string;
  
  option mac-version = 0;
  option mac-user-name = "netboot";
  # etc
}

I hope this gives you most of what you need, and a way to work out the
rest.

regards,
-glenn

>Date: Thu, 16 Aug 2007 10:59:03 -0400
>From: Robert G Colantuoni <rgc at oss.buffalo.edu>
>To: dhcp-users at isc.org
>Subject: Re: netbooting Apple Xserves, not working since dhcp version 3.0pl1-9a
>
>From: http://frank.gwc.org.uk/~ali/nb/dhcp-2.0+macnb.0.1.diff
>
>{ "mac-nc-client-unknown", "X",			&dhcp_universe, 220 },
>{ "mac-nc-client-id", "t",			&dhcp_universe, 221 },
>{ "mac-version", "X",				&dhcp_universe, 230 },
>{ "mac-user-name", "t",				&dhcp_universe, 232 },
>{ "mac-password", "t",				&dhcp_universe, 233 },
>{ "mac-nb-img", "X",				&dhcp_universe, 234 },
>{ "mac-apps-img", "X",				&dhcp_universe, 235 },
>{ "mac-machine-name", "t",			&dhcp_universe, 237 },
>{ "mac-client-nb-img", "X",			&dhcp_universe, 238 },
>
>
>Robert G Colantuoni
>CIT - Operational Support Services
>University at Buffalo
>rgc at oss.buffalo.edu
>716.645.3552
>
>
>
>Glenn Satchell wrote:
>> The undocumented change is to the source code for 3.0pl1. Do you have
>> or can you get the source for that version (with the changes). Look in
>> the file common/tables.c amd find "struct option dhcp_options". Lookin
>> this table for the mac-xxx commands. Make a note of the option number,
>> eg:
>> 
>> static struct option dhcp_options[] = {
>>         { "subnet-mask", "I",                   &dhcp_universe,   1, 1 },
>>         { "time-offset", "l",                   &dhcp_universe,   2, 1 },
>>         { "routers", "IA",                      &dhcp_universe,   3, 1 },
>> 
>> routers is option 3. For newer version of dhcpd you don't need to hack
>> the source, you can add the definitions in dhcpd.conf. Say the option
>> for mac-version is 125. In your dhcpd.conf create an entry:
>> 
>> option mac-version code 125 = integer 8;
>> option mac-version 0;
>> 
>> The details are in the dhcp-options man page, search for DEFINING NEW 
OPTIONS.
>> 
>> If you don't have access to the hacked source, then all is not lost.
>> You could capture some dhcp network traffic and get the option numbers
>> that way.  Same deal as far as adding the entries to dhcpd.conf.
>> 
>> regards,
>> -glenn
>> 
>>> Date: Thu, 16 Aug 2007 08:26:28 -0600
>>> From: Aaron Johnson <ajohnson at terrasoftsolutions.com>
>>> To: dhcp-users at isc.org
>>> Subject: netbooting Apple Xserves, not working since dhcp version 3.0pl1-9a
>>>
>>> All,
>>> I have several Apple PPC64 Xserves I have been able to netboot with dhcp 
>>> version 3.0pl1-9a but with any new version I try dhcp won't even start  
>>> I get the following error in /var/log/messages (this was with dhcp 
>>> version 3.0.3-28)
>>>
>>> Aug 16 14:21:52 localhost dhcpd: dhcpd startup failed
>>> Aug 16 14:21:59 localhost dhcpd: /etc/dhcpd.conf line 5: unknown option 
>>> dhcp.mac-version
>>> Aug 16 14:21:59 localhost dhcpd: option mac-version 0:
>>> Aug 16 14:21:59 localhost dhcpd:        ^
>>> Aug 16 14:21:59 localhost dhcpd: /etc/dhcpd.conf line 6: unknown option 
>>> dhcp.mac-user-name
>>> Aug 16 14:21:59 localhost dhcpd: option mac-user-name "netboot"
>>> Aug 16 14:21:59 localhost dhcpd:        ^
>>> Aug 16 14:21:59 localhost dhcpd: Configuration file errors encountered 
>>> -- exiting
>>>
>>>
>>> The relavent psrt of my /etc/dhcp.conf file is:
>>>
>>> allow bootp;
>>> ddns-update-style interim;
>>> default-lease-time 30000000000;
>>> option mac-version 0:0:0:0;
>>> option mac-user-name "netboot";
>>>
>>> subnet 192.168.200.0 netmask 255.255.255.0 {
>>> option routers                  192.168.200.172;
>>> option subnet-mask              255.255.255.0;
>>> filename                        "yhpc-ppc64.img";
>>> next-server                       192.168.200.172;
>>> allow bootp;
>>> range dynamic-bootp             192.168.200.100 192.168.200.199;
>>> }
>>>
>>>
>>>
>>> I have also tried upgrading to dhcp 3.0.6, 3.1.0, and 4.0.0 without any 
>>> success.  I have looking through all the man pages for all version and 
>>> the change log neither one says anything about needing to change the 
>>> "option mac-..." lines for the newer versions, I was hoping someone 
>>> could help me figure out this un-documented change.
>>>
>>> Aaron
>>>
>> 
>


More information about the dhcp-users mailing list