DHCP Relay

If you want your router to forward DHCP requests to an external DHCP server you can configure the system to act as a DHCP relay agent. The DHCP relay agent works with IPv4 and IPv6 addresses.

All interfaces used for the DHCP relay must be configured.

IPv4 relay

Configuration

set service dhcp-relay interface <interface>
Enable the DHCP relay service on the given interface.
set service dhcp-relay server <server>
Configure IP address of the DHCP <server> which will handle the relayed packets.
set service dhcp-relay relay-options relay-agents-packets discard
The router should discard DHCP packages already containing relay agent information to ensure that only requests from DHCP clients are forwarded.

Options

set service dhcp-relay relay-options hop-count <count>
Set the maximum hop <count> before packets are discarded. Range 0…255, default 10.
set service dhcp-relay relay-options max-size <size>
Set maximum <size> of DHCP packets including relay agent information. If a DHCP packet size surpasses this value it will be forwarded without appending relay agent information. Range 64…1400, default 576.
set service dhcp-relay relay-options relay-agents-packet <append | discard | forward | replace>

Four policies for reforwarding DHCP packets exist:

  • append: The relay agent is allowed to append its own relay information to a received DHCP packet, disregarding relay information already present in the packet.
  • discard: Received packets which already contain relay information will be discarded.
  • forward: All packets are forwarded, relay information already present will be ignored.
  • replace: Relay information already present in a packet is stripped and replaced with the router’s own relay information set.

Example

  • Listen for DHCP requests on interface eth1.
  • DHCP server is located at IPv4 address 10.0.1.4.
  • Router receives DHCP client requests on eth1 and relays them to the server at 10.0.1.4.
DHCP relay example

DHCP relay example

The generated configuration will look like:

show service dhcp-relay
    interface eth1
    server 10.0.1.4
    relay-options {
       relay-agents-packets discard
    }

Operation

restart dhcp relay-agent
Restart DHCP relay service

IPv6 relay

Configuration

set service dhcpv6-relay listen-interface <interface>

Set eth1 to be the listening interface for the DHCPv6 relay.

Multiple interfaces may be specified.

set service dhcpv6-relay upstream-interface <interface> address <server>
Specifies an upstream network <interface> from which replies from <server> and other relay agents will be accepted.

Options

set service dhcpv6-relay max-hop-count ‘count’
Set maximum hop count before packets are discarded, default: 10
set service dhcpv6-relay use-interface-id-option
If this is set the relay agent will insert the interface ID. This option is set automatically if more than one listening interfaces are in use.

Example

  • DHCPv6 requests are received by the router on listening interface eth1
  • Requests are forwarded through eth2 as the upstream interface
  • External DHCPv6 server is at 2001:db8::4
DHCPv6 relay example

DHCPv6 relay example

The generated configuration will look like:

commit
show service dhcpv6-relay
    listen-interface eth1 {
    }
    upstream-interface eth2 {
       address 2001:db8::4
    }

Operation

restart dhcpv6 relay-agent
Restart DHCPv6 relay agent immediately.