Skip to main content

๐ŸŒ [Advanced] PXE Boot Across Subnets

๐Ÿงฉ Overview

This guide covers a more advanced ggRock PXE boot scenario involving clients located across multiple subnets, VLANs, or network segments.


๐Ÿ› ๏ธ Problem

In complex network environments, client devices may reside on different subnets. By default, PXE broadcasts do not traverse subnet boundaries โ€” which means additional configuration is needed for multi-subnet PXE booting.


โœ… Solution

1. Disable Default Gateway Handling

Edit the ggRock configuration file to avoid routing boot traffic through a default gateway.

nano /opt/ggrock/app/App_Data/config.json

Add the following content:

{
"ServerConfiguration": {
"BootDefaultGateway": "None"
}
}

๐Ÿ’พ Press CTRL+X, then Y, then Enter to save and close.


2. Define Subnet Ranges for PXE

Create a custom dnsmasq configuration file:

nano /etc/dnsmasq.d/vlan.conf

Add the following line, replacing the IP range and netmask with the correct values to define the full scope of PXE clients on your network. The goal is to cover the broadest possible address range that includes all potential PXE clients:

dhcp-range=10.0.0.0,proxy,255.255.255.0

Examples:

  • If your PXE clients are in 10.0.0.0 โ€“ 10.0.0.255, use:
  dhcp-range=10.0.0.0,proxy,255.255.255.0
  • If your PXE clients span 10.0.0.0 โ€“ 10.0.1.255, use:
  dhcp-range=10.0.0.0,proxy,255.255.254.0
  • If you're covering 10.0.0.0 โ€“ 10.0.255.255, use:
  dhcp-range=10.0.0.0,proxy,255.255.0.0

๐Ÿ“Œ Note: Use only one dhcp-range line per subnet or supernet that includes your PXE clients. The proxy keyword ensures that dnsmasq will provide PXE options without assigning IPs (used when another DHCP server is providing the addresses).


3. Restart Services

Restart ggRock and the web server to apply changes:

systemctl restart ggrock
systemctl restart nginx
systemctl restart dnsmasq

๐Ÿ’ก Additional Notes

  • A custom dnsmasq configuration may be necessary depending on your network topology.
  • Make sure IP Helper addresses (or DHCP relay) are configured on each Layer 3 device (e.g., routers or L3 switches) between the client and the PXE server.

๐Ÿง  How It Works: PXE Across Subnets

  1. Client Broadcast: A client sends a DHCP/PXE broadcast to the local subnet.
  2. IP Helper: The router intercepts and forwards the broadcast as a unicast to the PXE server.
  3. Multi-hop Routing: If more routers exist between client and server, each must also forward via IP helper.

๐Ÿ–ผ๏ธ Example Diagram

Client ---[Switch]---[Router 1]---[Router 2]---[PXE Server]
^ ^
IP Helper IP Helper
Configured Configured

โœ… Each router in the path must be configured to forward PXE/DHCP packets to ensure successful booting.


๐Ÿ†˜ Need Help?

If you're still having trouble booting across subnets, don't worry โ€” weโ€™ve got your back!
Reach out via our ๐Ÿ’ฌ web support chat or email us at support@ggcircuit.com.


Was this article helpful?

More in Debian OS

Not finding what you are looking for?

Chat with us or send us an email. Chat is open 24/7 through the bubble at the bottom right.

Send us an email