I am a new user. I have installed Fog successfully in an Arch Linux VM (I had to use dev-branch
(currently commit 42b459a7
) for it to work (due to an issue with PHP8, I think).
Now I have tried to configure an additional boot option on my existing DHCP / TFTP server (running dnsmasq). I have added this option
pxe-service=x86PC,Fog,ipxe.kpxe,192.168.21.82
where that is the IP of the Fog server.
I had to manually start the TFTP server on the Fog server but, otherwise, it appears to work
systemctl start tftpd
I note this is configured ( /etc/conf.d/tftpd
with a TFTP root at /srv/tftp
rather than /tftpboot
as documented ). The files are present and I can pull them using curl
. So I believe that the TFTP server on Fog is good.
Now when I PXE boot a machine on my network, I get the new Fog
menu option in addition to all of the others previously there. Selecting that causes it to boot from the Fog server, however after iPXE loads it then tries to chain load tftp://192.168.21.2/default/ipxe
which is the address of my DHCP/TFTP server and not the Fog server. The file does not exist on my server.
BOOT SERVER IP: 192.168.21.82
PXE->EB: !PXE at 9DA9:0070, entry point ad 9DA9:0104
iPXE initialising devices...ok
iPXE 1.21.1+ (g47159) -- Open source Network Boot Firmware -- https://ipxe.org
Waiting for link-up on net0..... ok
Configuring (net0 08:00:27:d5:66:5f)... ok
Received DHCP answer on interface net0
tftp://192.168.21.2/default.ipxe... No such file or directory (https://ipxe.org/2d12603b)
I can copy over default.ipxe
and then it works, however I would have expected it to load that from itself, no?
If it has to go on my server, I don’t really want that file in the root but I can’t see if it’s possible to specify a path.
But I don’t think I should need any of these files on my TFTP/DHCP server because it just points at the TFTP hosted by the Fog server.
I should just need a menu entry directing client to the Fog IP, lile I have done with
pxe-service=x86PC,Fog,ipxe.kpxe,192.168.21.82
I’ve looked in Wireshark at what happens. I can see the message that passes the boot file name “ipxe.kpxe” and the next server IP address being 192.168.21.82.
I can see the separate Server host name field is not given (I tried adding dhcp-option=66,"192.168.21.82"
to the dnsmasq config but it made no difference to this). I don’t know if that’s relevant.
User Datagram Protocol, Src Port: 4011, Dst Port: 4011
Dynamic Host Configuration Protocol (ACK)
Message type: Boot Reply (2)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x28d5665f
Seconds elapsed: 4
Bootp flags: 0x0000 (Unicast)
Client IP address: 0.0.0.0
Your (client) IP address: 192.168.21.175
Next server IP address: 192.168.21.82
Relay agent IP address: 0.0.0.0
Client MAC address: PcsCompu_d5:66:5f (08:00:27:d5:66:5f)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name: ipxe.kpxe
Magic cookie: DHCP
Option: (53) DHCP Message Type (ACK)
Length: 1
DHCP: ACK (5)
Option: (54) DHCP Server Identifier (192.168.21.2)
Length: 4
DHCP Server Identifier: 192.168.21.2
Option: (60) Vendor class identifier
Length: 9
Vendor class identifier: PXEClient
Option: (97) UUID/GUID-based Client Identifier
Length: 17
Client Identifier (UUID): 1e151d72-cba2-4c28-8d50-aefed289fd36
Option: (43) Vendor-Specific Information (PXEClient)
Length: 30
Option 43 Suboption: (71) PXE boot item
Length: 4
boot item: 80050000
Type: 32773
Layer: 0000
Option 43 Suboption: (10) PXE menu prompt
Length: 21
menu prompt: ff43686f6f736520796f75722070697869652e2e2e
Timeout: 255
Prompt: Choose your pixie...
PXE Client End: 255
Option: (255) End
Option End: 255
I also looked in Fog TFTP Server settings page but could not see a setting that would help resolve this.
Is it possible to Dnsmasq PXE menu option and/or Fog to boot Fog iPXE and have it perform its chain-load from itself ?