[Dnsmasq-discuss] using gPXE in chainloader mode
rance at frontiernet.net
rance at frontiernet.net
Sun Dec 23 01:19:55 GMT 2007
Ive puged all the history in the interest of brevity:
This should be my final post on using gPXE with dnsmasq
First, the gPXE peop[e claim that there is a bug in dnsmasq that
appends an extra chaaracter hex(00) at the end of all dhcp supplied
option values.
a snooped dhcpoffer packet with wireshark confirms the asserstion by
the gPXE people.
The fact is that a 13 character bootfile name is a legth 14 option in
the dhcpoffer packet
I'm not sure if its a bug in dnsmasq or not, as I don't know the RFCs
well enough to make a judgement. But the gPXE people seemed convinced
that dnsmasq was somehow "wrong" in this.
Windowd dhcp server does this as well, but apparently isc-dhcpd does not.
The gPXE people said that they would have to adjust for it as there
was no way they could get windows to change their dhcpd program.
basically gPCXE was looking for a bootfile with a space at the end of
its name, and not finding it, and stopping there. Once gPXE can
account for the extra data, or dnsmasq removes it, then the problem
that I originally wrote about will be present. So I have been warned.
I have two snooped dhcp discover packets capaured by wireshark. the
first is the one that the pxebios got when the vmware virtual test
machine booted. And the second one is when gPXE booted and asked for
an ip address again.
No. Time Source Destination Protocol Info
217 12.056662 0.0.0.0 255.255.255.255 DHCP
DHCP Discover - Transaction ID 0x2a040896
Frame 217 (590 bytes on wire, 590 bytes captured)
Ethernet II, Src: Vmware_04:08:96 (00:0c:29:04:08:96), Dst: Broadcast
(ff:ff:ff:ff:ff:ff)
Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255
(255.255.255.255)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
Bootstrap Protocol
Message type: Boot Request (1)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x2a040896
Seconds elapsed: 4
Bootp flags: 0x8000 (Broadcast)
Client IP address: 0.0.0.0 (0.0.0.0)
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: Vmware_04:08:96 (00:0c:29:04:08:96)
Server host name not given
Boot file name not given
Magic cookie: (OK)
Option: (t=53,l=1) DHCP Message Type = DHCP Discover
Option: (53) DHCP Message Type
Length: 1
Value: 01
Option: (t=55,l=24) Parameter Request List
Option: (55) Parameter Request List
Length: 24
Value: 01020305060B0C0D0F1011122B363C438081828384858687
1 = Subnet Mask
2 = Time Offset
3 = Router
5 = Name Server
6 = Domain Name Server
11 = Resource Location Server
12 = Host Name
13 = Boot File Size
15 = Domain Name
16 = Swap Server
17 = Root Path
18 = Extensions Path
43 = Vendor-Specific Information
54 = Server Identifier
60 = Vendor class identifier
67 = Bootfile name
128 = Private
129 = Private
130 = Private
131 = Private
132 = Private
133 = Private
134 = Private
135 = Private
Option: (t=57,l=2) Maximum DHCP Message Size = 1260
Option: (57) Maximum DHCP Message Size
Length: 2
Value: 04EC
Option: (t=97,l=17) UUID/GUID-based Client Identifier
Option: (97) UUID/GUID-based Client Identifier
Length: 17
Value: 00564D2446242F648585B19F177C040896
Client Identifier (UUID): 46244d56-2f24-8564-85b1-9f177c040896
Option: (t=93,l=2) Client System Architecture = IA x86 PC
Option: (93) Client System Architecture
Length: 2
Value: 0000
Option: (t=94,l=3) Client Network Device Interface
Option: (94) Client Network Device Interface
Length: 3
Value: 010201
Client Network ID Major Version: 2
Client Network ID Minor Version: 1
Option: (t=60,l=32) Vendor class identifier =
"PXEClient:Arch:00000:UNDI:002001"
Option: (60) Vendor class identifier
Length: 32
Value: 505845436C69656E743A417263683A30303030303A554E44...
End Option
Padding
and the second one that was gPXE requesting
No. Time Source Destination Protocol Info
395 16.242627 0.0.0.0 255.255.255.255 DHCP
DHCP Discover - Transaction ID 0x29040896
Frame 395 (412 bytes on wire, 412 bytes captured)
Ethernet II, Src: Vmware_04:08:96 (00:0c:29:04:08:96), Dst: Broadcast
(ff:ff:ff:ff:ff:ff)
Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255
(255.255.255.255)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
Bootstrap Protocol
Message type: Boot Request (1)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x29040896
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
Client IP address: 0.0.0.0 (0.0.0.0)
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: Vmware_04:08:96 (00:0c:29:04:08:96)
Server host name not given
Boot file name not given
Magic cookie: (OK)
Option: (t=97,l=17) UUID/GUID-based Client Identifier
Option: (97) UUID/GUID-based Client Identifier
Length: 17
Value: 00564D2446242F648585B19F177C040896
Client Identifier (UUID): 46244d56-2f24-8564-85b1-9f177c040896
Option: (t=61,l=7) Client identifier
Option: (61) Client identifier
Length: 7
Value: 00000C29040896
Option: (t=175,l=34) Private
Option: (175) Private
Length: 34
Value: B10501102220001301011701011501011101011201011801...
Option: (t=94,l=3) Client Network Device Interface
Option: (94) Client Network Device Interface
Length: 3
Value: 010201
Client Network ID Major Version: 2
Client Network ID Minor Version: 1
Option: (t=93,l=2) Client System Architecture = IA x86 PC
Option: (93) Client System Architecture
Length: 2
Value: 0000
Option: (t=60,l=32) Vendor class identifier =
"PXEClient:Arch:00000:UNDI:002001"
Option: (60) Vendor class identifier
Length: 32
Value: 505845436C69656E743A417263683A30303030303A554E44...
Option: (t=57,l=2) Maximum DHCP Message Size = 1500
Option: (57) Maximum DHCP Message Size
Length: 2
Value: 05DC
Option: (t=55,l=13) Parameter Request List
Option: (55) Parameter Request List
Length: 13
Value: 010306070C0F112B3C4243AFCB
1 = Subnet Mask
3 = Router
6 = Domain Name Server
7 = Log Server
12 = Host Name
15 = Domain Name
17 = Root Path
43 = Vendor-Specific Information
60 = Vendor class identifier
66 = TFTP Server Name
67 = Bootfile name
175 = Private
203 = Private
Option: (t=53,l=1) DHCP Message Type = DHCP Discover
Option: (53) DHCP Message Type
Length: 1
Value: 01
End Option
Simon, does this give you enough to work with? or do you need more?
More information about the Dnsmasq-discuss
mailing list