Re: [Etherboot-users] REQUIRE_VCI_ETHERBOOT Question
Brought to you by:
marty_connor,
stefanhajnoczi
From: Marty C. <md...@et...> - 2006-03-09 19:15:09
|
On Mar 9, 2006, at 4:52 PM, lo...@ou... wrote: > When a boot client does a broadcast for a DHCP request, then there > could be more than 1 DHCP server responding and the client would > receive requests from all responding DHCP servers looking for the > one that accepted that particular client and gave it a lease, right? It's more elaborate than that. PXE says the client should wait for up to 3 DHCP offers, and pick the one it likes the best (correct me if I'm wrong, PXE mavens). > Would this also mean that, in general, for all of the DHCP servers, > then if only one of the had the client MAC address in their list > then that would be the request that would have the valid > information (IP, gateway, etc....) for that client? > I guess what I am getting at is that it is probably ok for there to > be multiple DHCP servers on the net and subnets as long a only one > of them had the client address as an acceptable MAC address. It depends on if they're (the DHCP server) are "authoritative" for the subnet or "not authoritative" in ISC dhcpd.conf parlance. If they have the "not authoritative" directive turned on, they don't say anything. If they're authoritative, I believe they say "no lease" if you don't have a pool of addresses defined. > The problem with changing ports for the DHCP server and Etherboot > is that there might already be other DHCP servers on those ports > without us bing aware of it by some chance and then we would still > have multiple requests beign fielded by multiple DHCP servers and > in which the problem is really not solved. We're looking at allowing people to put STATIC information in their Etherboot configuration so that no DHCP server is required to load a file. This means that someone could mess up and walk on an IP address on the LAN, but this is already possible on just about any device I know about. The consequences would be between you and your LAN administrator if you blow it. Isn't there some way to use DEFAULT_BOOTFILE to get what you want using Etherboot? setting DEFAULT_BOOTFILE to: tftp://192.168.1.xxx/tftpboot/lts/kernel.nb (I believe) would get an IP address from a DHCP server, and then (assuming the DHCP server didn't give a filename) would use the DEFAULT_BOOTFILE. I even found an old patch that would FORCE_BOOTFILE (although I would rename it FORCE_DEFAULT_BOOTFILE :) that ignores all the DHCP filenames and uses the one you supplied. This strikes me as a likely scenario. You can get an IP, Router, DNS, etc, but you can't modify the DHCP server to do the filename thing, even though you have your own little tftp server (they're so much less objectionable than DHCP servers to LAN admins, after all). So you get everything from normal DHCP except DEFAULT_BOOTFILE, and you get your kernel from where you need to. Does this help? Marty --- etherboot-5.3.6/src/core/nic.c 2003-12-13 07:27:21.000000000 +0100 +++ etherboot-5.3.6.new/src/core/nic.c 2003-12-21 15:22:27.000000000 +0100 @@ -267,7 +267,11 @@ rpc_init(); #endif #ifdef DEFAULT_BOOTFILE +#ifdef FORCE_BOOTFILE + kernel = DEFAULT_BOOTFILE; +#else kernel = KERNEL_BUF[0] != '\0' ? KERNEL_BUF : DEFAULT_BOOTFILE; +#endif /*FORCE_BOOTFILE */ #else kernel = KERNEL_BUF; #endif |