[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