Boot file name not passed in boot reply if host not declared in conf

Harry Zachrisson harry at zachrisson.net
Tue Apr 29 23:05:30 UTC 2008


Hi.
I have a problem getting the DHCP server to pass the boot file name in the
boot reply if I dont specify my host in the dhcpd.conf file and I rather
avoid that if possible.

I trying to netboot SGI workstations and the typical way of doing that is to
type a command at the prom promt telling the IP of the Boot server and the
file name of the boot file.
The command typically looks like this:
bootp()<bootp_server_ip>:/path/and/file-to-boot

The bootp server then returns the client IP and the same filname in the
bootp reply.
This works fine if my config file on the DHCP server looks like this:
--------------------------------dhcpd.conf------------------------
allow unknown-clients;
ddns-update-style ad-hoc;
default-lease-time 500;
max-lease-time 1024;

subnet 192.168.1.0 netmask 255.255.255.0 {
 pool { range dynamic-bootp 192.168.1.101 192.168.1.199; }
 allow bootp;
}

host indigo210k{
  hardware ethernet 08:00:69:0a:a2:70;
  fixed-address 192.168.1.101;
}
--------------------------------------------------------------------

The problem is I rather not specify the MAC adress in the config file as
this will limit the usefullness of the setup, it intended to be a netboot
appliance for SGIs and preferely should not needed to be configured in any
way.

A packet dump from wireshark looks like this for the working config.
Request:
------------------------------
Bootstrap Protocol
    Message type: Boot Request (1)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 0
    Transaction ID: 0x0000f171
    Seconds elapsed: 5
    Bootp flags: 0x0000 (Unicast)
        0... .... .... .... = Broadcast flag: Unicast
        .000 0000 0000 0000 = Reserved flags: 0x0000
    Client IP address: 192.168.1.101 (192.168.1.101)
    Your (client) IP address: 0.0.0.0 (0.0.0.0)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 0.0.0.0 (0.0.0.0)
    Client MAC address: SGI_0a:a2:70 (08:00:69:0a:a2:70)
    Server host name: 192.168.1.100
    Boot file name: /irix/6.2/1/stand/sash64
 ------------------------------

Reply:
-------------------------------
Bootstrap Protocol
    Message type: Boot Reply (2)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 0
    Transaction ID: 0x0000f171
    Seconds elapsed: 5
    Bootp flags: 0x0000 (Unicast)
        0... .... .... .... = Broadcast flag: Unicast
        .000 0000 0000 0000 = Reserved flags: 0x0000
    Client IP address: 192.168.1.101 (192.168.1.101)
    Your (client) IP address: 192.168.1.101 (192.168.1.101)
    Next server IP address: 192.168.1.100 (192.168.1.100)
    Relay agent IP address: 0.0.0.0 (0.0.0.0)
    Client MAC address: SGI_0a:a2:70 (08:00:69:0a:a2:70)
    Server host name not given
    Boot file name: /irix/6.2/1/stand/sash64
--------------------------------

Please note that the Boot file name is not coded in the config file, it
comes from the bootp request and is just passed back.


Now if I comment out the host portion of the dhcpd.conf
--------------------------------dhcpd.conf------------------------
allow unknown-clients;
ddns-update-style ad-hoc;
default-lease-time 500;
max-lease-time 1024;

subnet 192.168.1.0 netmask 255.255.255.0 {
 pool { range dynamic-bootp 192.168.1.101 192.168.1.199; }
 allow bootp;
}

#host indigo210k{
#  hardware ethernet 08:00:69:0a:a2:70;
#  fixed-address 192.168.1.101;
#}
--------------------------------------------------------------------

The reply from the DHCP server no longer passes the boot file name as seen
in this packet dump:

Reply:
--------------------------------
Bootstrap Protocol
    Message type: Boot Reply (2)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 0
    Transaction ID: 0x000079b2
    Seconds elapsed: 5
    Bootp flags: 0x0000 (Unicast)
        0... .... .... .... = Broadcast flag: Unicast
        .000 0000 0000 0000 = Reserved flags: 0x0000
    Client IP address: 192.168.1.101 (192.168.1.101)
    Your (client) IP address: 192.168.1.101 (192.168.1.101)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 0.0.0.0 (0.0.0.0)
    Client MAC address: SGI_0a:a2:70 (08:00:69:0a:a2:70)
    Server host name not given
    Boot file name not given
    Option: (t=54,l=4) Server Identifier = 127.0.0.1
    Option: (t=1,l=4) Subnet Mask = 255.255.255.0
    End Option
--------------------------------


So my question is, is there a way of getting the DHCP server to pass the
boot file name without specifying the MAC adress in the dhcpd.conf file?


Regards
//Harry








More information about the dhcp-users mailing list