DHCP Client Relay Server HowTo
Introduction
This document shows how to set up a DHCP server to provide leases to an IP subnet behind a DHCP relay agent.
The DHCP server is be configured with a default pool of addresses and a
number of Static Leases. The DHCP relay is configured to append DHCP
option 82 to each DHCP message on vlan1
and forward it to the DHCP
sever.
|
.--.-.
( ( )__
(_, \ ) ,_) Internet/Intranet
'-'--`--'
|
.----+----.
| |
| Server |
| |
'----+----'
| .1
192.168.2.0/24 |
| .2
.----+----.
| | iface: vlan2
| Relay |
| | iface: vlan1
'----+----'
| .1
192.168.1.0/24 |
|
-----+-------+---+---+-------+-----
| | | |
.--+--. .--+--. .--+--. .--+--.
| H1 | | H2 | | H3 | | H4 |
'-----' '-----' '-----' '-----'
Relay Configuration
Configure the Relay to forward any DHCP traffic towards the server.
- Forward all DHCP messages to the
server
at 192.168.1.1 port 6767 - Append
option82
, to all DHCP messages that pass through the relay
Relay:/#> configure Relay:/config/#> dhcp-relay Relay:/config/dhcp-relay/#> server 192.168.1.1:6767 Relay:/config/dhcp-relay/#> iface vlan1 Relay:/config/dhcp-relay/iface-vlan1/#> end Relay:/config/dhcp-relay/#> Relay:/config/dhcp-relay/#> option82 Activating Option 82. Relay:/config/dhcp-relay/option82/#> end Relay:/config/dhcp-relay/#> leave Relay:/#>
Server Configuration
The DHCP server is set up to provide a dynamic pool of addresses and a number of static leases for the 192.168.1.0 subnet. With each lease the server will also provide some additional information like: gateway and DNS server. Worth noting is the use of the non-standard port 6767, this means clients cannot accidentally connect to the server for a pool address, but must always go through a relay agent.
Server:/config/#> dhcp-server Server:/config/dhcp-server/#> server-port 6767 Server:/config/dhcp-server/#> name-server auto Server:/config/dhcp-server/#> gateway auto
Next up is the subnet to serve:
Server:/config/dhcp-server/#> subnet 192.168.1.0/24 Created new DHCP server for subnet 192.168.1.0. Server:/config/dhcp-server/subnet-192.168.1.0/#> pool 192.168.1.100 100 Server:/config/dhcp-server/subnet-192.168.1.0/#> end Server:/config/dhcp-server/#>
We conclude the configuration by setting up a couple of static leases:
-
The first lease use
match mac
, meaning only the client with that particular MAC address will be offered thehost 1
configuration,address
192.168.1.10 -
The second lease use
match option82
, meaning any host connected to port eth1 on the Relay (identified by its MAC address) will be offered thehost 2
configuration,address
192.168.1.20
Server:/config/dhcp-server/#> host 1 Server:/config/dhcp-server/host-1/#> match mac 0c:50:e5:07:24:00 Server:/config/dhcp-server/host-1/#> address 192.168.1.10 Server:/config/dhcp-server/host-1/#> end Server:/config/dhcp-server/#> host 2 Server:/config/dhcp-server/host-2/#> match option82 circuit-id eth1 Server:/config/dhcp-server/host-2/#> match option82 remoteid-id 0c:50:e5:65:97:00 Server:/config/dhcp-server/host-2/#> address 192.168.1.20 Server:/config/dhcp-server/host-2/#> end Server:/config/dhcp-server/#> leave Server:/#>
Status
To verify that addresses are distributed as intended any provided lease can be viewed on the server:
Server:/#> show dhcp LEASE TIME MAC ADDRESS CLIENT ID IP ADDRESS HOSTNAME 864000 0c:50:e5:07:24:00 01:0c:50:e5:07:24:00 192.168.1.10 H1 864000 0c:50:e5:a0:b3:00 01:0c:50:e5:a0:b3:00 192.168.1.20 H2 864000 0c:50:e5:b2:55:00 01:0c:50:e5:b2:55:00 192.168.1.114 H3 864000 0c:50:e5:c6:27:00 01:0c:50:e5:c6:27:00 192.168.1.120 H4