Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Boot file name is missing from DHCP ACK impacting uefi network booting #912

Open
orajab opened this issue Feb 18, 2024 · 0 comments
Open

Comments

@orajab
Copy link

orajab commented Feb 18, 2024

After long debug why booting in uefi is not working I found that Boot file name attribute is not added to DHCP (ACK) frame

here is the capture from wireshare
Frame 20: 355 bytes on wire (2840 bits), 355 bytes captured (2840 bits) on interface \Device\NPF_{3BEAEBE1-5199-45A0-8715-2F99DC8A7213}, id 0
Section number: 1
Interface id: 0 (\Device\NPF_{3BEAEBE1-5199-45A0-8715-2F99DC8A7213})
Interface name: \Device\NPF_{3BEAEBE1-5199-45A0-8715-2F99DC8A7213}
Interface description: VMware Network Adapter mngnet
Encapsulation type: Ethernet (1)
Arrival Time: Feb 18, 2024 20:52:26.650874000 Arabian Standard Time
UTC Arrival Time: Feb 18, 2024 16:52:26.650874000 UTC
Epoch Arrival Time: 1708275146.650874000
[Time shift for this packet: 0.000000000 seconds]
[Time delta from previous captured frame: 0.011994000 seconds]
[Time delta from previous displayed frame: 0.011994000 seconds]
[Time since reference or first frame: 6.676187000 seconds]
Frame Number: 20
Frame Length: 355 bytes (2840 bits)
Capture Length: 355 bytes (2840 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: eth:ethertype:ip:udp:dhcp]
[Coloring Rule Name: UDP]
[Coloring Rule String: udp]
Ethernet II, Src: VMware_9a:93:18 (00:0c:29:9a:93:18), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Destination: Broadcast (ff:ff:ff:ff:ff:ff)
Address: Broadcast (ff:ff:ff:ff:ff:ff)
.... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default)
.... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)
Source: VMware_9a:93:18 (00:0c:29:9a:93:18)
Address: VMware_9a:93:18 (00:0c:29:9a:93:18)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 172.16.0.1, Dst: 255.255.255.255
0100 .... = Version: 4
.... 0101 = Header Length: 20 bytes (5)
Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
0000 00.. = Differentiated Services Codepoint: Default (0)
.... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)
Total Length: 341
Identification: 0x4646 (17990)
010. .... = Flags: 0x2, Don't fragment
0... .... = Reserved bit: Not set
.1.. .... = Don't fragment: Set
..0. .... = More fragments: Not set
...0 0000 0000 0000 = Fragment Offset: 0
Time to Live: 64
Protocol: UDP (17)
Header Checksum: 0x4741 [validation disabled]
[Header checksum status: Unverified]
Source Address: 172.16.0.1
Destination Address: 255.255.255.255
User Datagram Protocol, Src Port: 67, Dst Port: 68
Source Port: 67
Destination Port: 68
Length: 321
Checksum: 0x7f0b [unverified]
[Checksum Status: Unverified]
[Stream index: 1]
[Timestamps]
[Time since first frame: 3.996961000 seconds]
[Time since previous frame: 3.996961000 seconds]
UDP payload (313 bytes)
Dynamic Host Configuration Protocol (ACK)
Message type: Boot Reply (2)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x6e32e74b
Seconds elapsed: 0
Bootp flags: 0x8000, Broadcast flag (Broadcast)
1... .... .... .... = Broadcast flag: Broadcast
.000 0000 0000 0000 = Reserved flags: 0x0000
Client IP address: 0.0.0.0
Your (client) IP address: 172.16.0.10
Next server IP address: 172.16.0.1
Relay agent IP address: 0.0.0.0
Client MAC address: VMware_10:57:a9 (00:0c:29:10:57:a9)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given < --------------------------------- missing
Magic cookie: DHCP
Option: (1) Subnet Mask (255.255.192.0)
Length: 4
Subnet Mask: 255.255.192.0
Option: (3) Router
Length: 4
Router: 192.168.0.1
Option: (6) Domain Name Server
Length: 4
Domain Name Server: 172.16.0.1
Option: (15) Domain Name
Length: 15
Domain Name: testcluster.lan.
Option: (51) IP Address Lease Time
Length: 4
IP Address Lease Time: 1 day (86400)
Option: (53) DHCP Message Type (ACK)
Length: 1
DHCP: ACK (5)
Option: (54) DHCP Server Identifier (172.16.0.1)
Length: 4
DHCP Server Identifier: 172.16.0.1
Option: (66) TFTP Server Name
Length: 10
TFTP Server Name: 172.16.0.1
Option: (67) Bootfile name
Length: 8
Bootfile name: ipxe.efi

Option: (255) End
Option End: 255

here is the Ack frame captured for ISC DHCP which works fine

Frame 9: 342 bytes on wire (2736 bits), 342 bytes captured (2736 bits) on interface \Device\NPF_{3BEAEBE1-5199-45A0-8715-2F99DC8A7213}, id 0
Section number: 1
Interface id: 0 (\Device\NPF_{3BEAEBE1-5199-45A0-8715-2F99DC8A7213})
Interface name: \Device\NPF_{3BEAEBE1-5199-45A0-8715-2F99DC8A7213}
Interface description: VMware Network Adapter mngnet
Encapsulation type: Ethernet (1)
Arrival Time: Feb 18, 2024 20:48:05.117724000 Arabian Standard Time
UTC Arrival Time: Feb 18, 2024 16:48:05.117724000 UTC
Epoch Arrival Time: 1708274885.117724000
[Time shift for this packet: 0.000000000 seconds]
[Time delta from previous captured frame: 0.001877000 seconds]
[Time delta from previous displayed frame: 0.001877000 seconds]
[Time since reference or first frame: 3.996813000 seconds]
Frame Number: 9
Frame Length: 342 bytes (2736 bits)
Capture Length: 342 bytes (2736 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: eth:ethertype:ip:udp:dhcp]
[Coloring Rule Name: UDP]
[Coloring Rule String: udp]
Ethernet II, Src: VMware_9a:93:18 (00:0c:29:9a:93:18), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Destination: Broadcast (ff:ff:ff:ff:ff:ff)
Address: Broadcast (ff:ff:ff:ff:ff:ff)
.... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default)
.... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)
Source: VMware_9a:93:18 (00:0c:29:9a:93:18)
Address: VMware_9a:93:18 (00:0c:29:9a:93:18)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 172.16.0.1, Dst: 255.255.255.255
0100 .... = Version: 4
.... 0101 = Header Length: 20 bytes (5)
Differentiated Services Field: 0x10 (DSCP: Unknown, ECN: Not-ECT)
0001 00.. = Differentiated Services Codepoint: Unknown (4)
.... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)
Total Length: 328
Identification: 0x0000 (0)
000. .... = Flags: 0x0
0... .... = Reserved bit: Not set
.0.. .... = Don't fragment: Not set
..0. .... = More fragments: Not set
...0 0000 0000 0000 = Fragment Offset: 0
Time to Live: 128
Protocol: UDP (17)
Header Checksum: 0x8d84 [validation disabled]
[Header checksum status: Unverified]
Source Address: 172.16.0.1
Destination Address: 255.255.255.255
User Datagram Protocol, Src Port: 67, Dst Port: 68
Source Port: 67
Destination Port: 68
Length: 308
Checksum: 0x39a0 [unverified]
[Checksum Status: Unverified]
[Stream index: 2]
[Timestamps]
[Time since first frame: 2.980739000 seconds]
[Time since previous frame: 2.980739000 seconds]
UDP payload (300 bytes)
Dynamic Host Configuration Protocol (ACK)
Message type: Boot Reply (2)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x22282c5a
Seconds elapsed: 0
Bootp flags: 0x8000, Broadcast flag (Broadcast)
1... .... .... .... = Broadcast flag: Broadcast
.000 0000 0000 0000 = Reserved flags: 0x0000
Client IP address: 0.0.0.0
Your (client) IP address: 172.16.0.10
Next server IP address: 0.0.0.0
Relay agent IP address: 0.0.0.0
Client MAC address: VMware_10:57:a9 (00:0c:29:10:57:a9)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name: ipxe.efi <------------------------------- provided by ISC DHCP and look below in the options is not provided and it seems its not required for uefi network booting
Magic cookie: DHCP
Option: (53) DHCP Message Type (ACK)
Length: 1
DHCP: ACK (5)
Option: (54) DHCP Server Identifier (172.16.0.1)
Length: 4
DHCP Server Identifier: 172.16.0.1
Option: (51) IP Address Lease Time
Length: 4
IP Address Lease Time: 10 minutes (600)
Option: (1) Subnet Mask (255.255.192.0)
Length: 4
Subnet Mask: 255.255.192.0
Option: (6) Domain Name Server
Length: 4
Domain Name Server: 172.16.0.1
Option: (15) Domain Name
Length: 14
Domain Name: testcluster.lan
Option: (255) End
Option End: 255
Padding: 00000000000000000000000000000000

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant