On Tue, Nov 30, 2004 at 03:12:04AM -0500, Joey Hess wrote: > Next I looked at the dhcp rfcs. The dhcp options seemed like the obvious > way to get an url passed from dhcp to d-i. I looked at using option 43, > the vendor defined option, since its use is quite close to how d-i would > work. However, at least the debian dhcp package does not allow option-43 > in dhcpd.conf. > We could pick an option in the 128-254 range and use it, but we might be > violating rfc2939 by doing so, since it requires that these "MUST NOT be > defined for use by any publicly distributed DHCP server, client or relay > agent implementations". I'm not sure how much wiggle room there is in > "client" -- it's not like d-i's dhcp client would know about the option, > though d-i would, and we'd have to put something like "request option-nnn" in > dhclient.conf. There's always the potential that whatever private use > option number we choose will be used at some installation site for > something else. > We could add a boot option to make d-i look at a particular dhcp option > for preseeding, and leave it up to the admin. preseed/dhcp_opt=128. This > might still run out of kernel command line space on hppa (it's very > small) and it's a lot of layers of indirection to get to the preseed > file. > We could go through the process to get an option numer assigned by iana. > I don't have the time or the patience, but if someone does this is > probably the best way. dhcpd.conf(5): CLIENT CLASSING Clients can be separated into classes, and treated differently depend‐ ing on what class they are in. This separation can be done either with a conditional statement, or with a match statement within the class declaration. It is possible to specify a limit on the total number of clients within a particular class or subclass that may hold leases at one time, and it is possible to specify automatic subclassing based on the contents of the client packet. To add clients to classes based on conditional evaluation, you can specify a matching expression in the class statement: class "ras‐clients" { match if substring (option dhcp‐client‐identifier, 1, 3) = "RAS"; } Note that whether you use matching expressions or add statements (or both) to classify clients, you must always write a class declaration for any class that you use. If there will be no match statement and no in‐scope statements for a class, the declaration should look like this: This provides the means to distinguish PXE boot requests from other DHCP requests sent by d-i systems looking for preseed information, so that you can overload next-server/filename for both steps of the install using different DHCP class configurations. -- Steve Langasek postmodern programmer
Attachment:
signature.asc
Description: Digital signature