DragonFly BSD
DragonFly users List (threaded) for 2004-10
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

(dhcpd.conf update) Re: Is there a way to install DragonFly via network (w/o CD) ?


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Thu, 14 Oct 2004 02:12:54 -0700 (PDT)

    Here's an update to the dhcpd.conf file the cd-booted system will need
    to run when operating in dhcp server mode.  This plus the boot changes
    (in HEAD at the moment) will do the trick.  I had to add another class so
    the DragonFly BOOTP kernel is able to successfully query the server.

    I still need to add stuff to the nrelease build to build a GENERIC
    BOOTP kernel as well as a normal GENERIC kernel.  Note that I just
    commited a change that will cause the pxeboot'd loaders to attempt
    to load 'kernel.BOOTP' instead of 'kernel', and the loader also will
    use loader-bootp.conf instead of loader.conf in that case.  So if you
    are already using pxebooting on your systems and you update the loader
    you need to be aware of that.

    I did some more experimentation and, unfortunately, it looks like 
    the BIOS PXE boot code (at least the one on my machine) seems to accept
    responses from 'other' dhcp servers even when they do not supply the
    correct information, preventing proper operation.  This could wind up
    being an issue for cable and dsl modem based dhcp servers but it should
    not be a problem if you are simply running two dhcp servers from UNIX
    boxes as you can program your primary dhcp server to ignore the
    PXEClient vendor class.  I checked the BOOTP kernel code and it will
    ignore responses from servers that do not supply a root path, so at
    least the kernel will ignore them.

						-Matt


# /usr/local/etc/dhcpd.conf
#
ddns-update-style none;

class "pxeboot-class" {
    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
}

class "etherboot-class" {
    match if substring (option vendor-class-identifier, 0, 9) = "Etherboot";
}

class "dragonfly-class" {
    match if substring (option vendor-class-identifier, 0, 9) = "DragonFly";
}

subnet 10.1.0.0 netmask 255.255.255.0 {
    pool {
	allow members of "pxeboot-class";
	allow members of "etherboot-class";
	allow members of "dragonfly-class";
	range 10.1.0.128 10.1.0.254;
	option subnet-mask 255.255.255.0;
	option broadcast-address 10.1.0.255;
	filename "pxeboot";
	option root-path "10.1.0.1:/cdrom";
	next-server 10.1.0.1;
    }
}




[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]