Wheelhouse docs

Relay DHCP to another segment#

You will end up with the router forwarding DHCP requests from one or more segments to a server somewhere else. DHCP discovery is a broadcast and broadcasts do not cross a router, so a central DHCP server needs a relay on every segment it serves.

Before you start#

  • The operator role and a licence.
  • The server's address, reachable from the router.
  • Which interfaces carry clients, and which interface faces the server.
  • No DHCP server running on the router for those subnets. A relay and a server on the same segment is a race.

Step 1 — Configure the relay#

Network → DHCP → Relay.

set service dhcp-relay listen-interface eth0.30
set service dhcp-relay listen-interface eth0.40
set service dhcp-relay upstream-interface eth1
set service dhcp-relay server 192.0.2.50
LineMeans
listen-interfaceAn interface with clients on it. One line per interface.
upstream-interfaceThe interface the server is reached through
serverThe DHCP server's address. More than one is allowed.

The panel takes the listen interfaces and the servers as lists and writes one line each.

Step 2 — Let the traffic through#

The relay talks to the server on UDP 67, from the router. If your forward or input policy is narrow, make sure the router can reach the server and the server can answer.

Step 3 — Make the server route back#

The server needs a route to each relayed subnet, and its scopes need to cover them. That is configuration on the server, not on the router, and it is the half people forget: the relay works, the request arrives, and the server has no scope for the subnet the request came from.

Check it worked#

A client on a relayed segment gets a lease, and the address is from the central server's range rather than anything local.

On the router, watch the journal while a client asks:

bash
journalctl -f -u dhcp-relay

The Logs page reads the same journal.

On the server, the lease should show the relay's address as the giaddr, which is how the server knows which scope to use.

Undoing it#

delete service dhcp-relay

Everything on a relayed segment loses addressing at the next renewal, so have the replacement ready.

See also#


Checked against ui/src/pages/DhcpExtras.tsx

Updated 2026-09-02 dhcp relay