Date: Mon, 12 Jan 2004 13:10:30 +0200 From: Danny Braniss <danny@cs.huji.ac.il> To: FreeBSD-gnats-submit@FreeBSD.org Cc: danny@cs.huji.ac.il Subject: i386/61239: bootp enhancement, places the dhcp tags into the Message-ID: <E1Afzxm-000CTl-00@pampa.cs.huji.ac.il> Resent-Message-ID: <200401121120.i0CBKEAi089421@freefall.freebsd.org>
index | next in thread | raw e-mail
>Number: 61239
>Category: i386
>Synopsis: bootp enhancement, places the dhcp tags into the
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-i386
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Mon Jan 12 03:20:13 PST 2004
>Closed-Date:
>Last-Modified:
>Originator: Danny Braniss
>Release: FreeBSD 4.9-STABLE i386
>Organization:
>Environment:
System: FreeBSD pampa 4.9-STABLE FreeBSD 4.9-STABLE #10: Sun Nov 16 14:13:37 IST 2003 danny@dev:/r+d/obj/r+d/4.9/src/sys/HUJI i386
diskless boot via PXE
>Description:
This is still unfinished ...
The changes to lib/libstand/bootp.c were promped for the following reasons:
o- need to configure many different disk/data-less clients.
o- simplify management.
o- allow some form of central control
Changes:
1: When the pxeboot card first send out a dhcp request, it adds a
vendor specific id/class (PXEClient) so that the dhcp daemon
can identify the request as comming from a pxe-aware program,
eg: from dhcpd.conf
class "pxeclients" {
option PXE.mtftp-ip 0.0.0.0;
match if substring (option vendor-class-identifier, 0, 9)
= "PXEClient";
}
Note: the above 'tricks' the PXE-boot not to go and mess with
the proxy-dhcpd/mftp.
I modified lib/libstand/bootp.c to send "FreeBSD" instead
of the default "PXEClient" and so:
option FBSD.kernel code 1 = text;
option FBSD.kernel_options code 3 = text;
option FBSD.kernelname code 2 = text;
option FBSD.usr-ip code 4 = ip-address;
option FBSD.usr-path code 5 = text;
class "freebsd" {
# Production - uses fs-02
option FBSD.kernel "kernel";
match if substring (option vendor-class-identifier, 0, 8) =
"FreeBSD";
option root-path "1.1.1.1:/roots/FreeBSD/i386-4.4";
vendor-option-space FBSD;
}
2: places all the tags received in the kernel environment eg:
kenv |grep dhcp
dhcp.dhcp-lease-time="0000012c"
dhcp.dhcp-message-type="05"
dhcp.dhcp-rebinding-time="00000106"
dhcp.dhcp-renewal-time="00000096"
dhcp.dhcp-server-identifier="132.65.16.17"
dhcp.domain-name="cs.huji.ac.il"
dhcp.domain-name-servers="132.65.16.10,132.65.16.8"
dhcp.host-name="foo"
dhcp.root-path="132.65.16.100:/c/2"
dhcp.routers="132.65.16.1"
dhcp.subnet-mask="255.255.0.0"
dhcp.tags="053:054:051:001:003:006:012:017:058:059:015:043:"
>How-To-Repeat:
>Fix:
ftp://ftp.cs.huji.ac.il/users/danny/freebsd/diskless-boot/bootp.c
>Release-Note:
>Audit-Trail:
>Unformatted:
kernel environment
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1Afzxm-000CTl-00>
