DHCP is often used for hosts to automatically assign IP addresses and uses 4 different packets to do so. Since a host doesn’t have an IP address to start with, we use broadcast messages on the network that hopefully end up at a DHCP server.
The problem with broadcast is that this means that the DHCP server has to be in the same broadcast domain since routers do not forward broadcast packets. Take a look at the following picture:
The first thing that happens is that our client will broadcast a DHCP discover message, the router will receive this message since its in the same broadcast domain as the client. Here’s what happens next:
The DHCP server has received the DHCP discover message and in return will send a DHCP offer message.
This will be sent as a unicast packet to the router…
The client likes the content of the DHCP offer message and will create a DHCP request which is broadcasted. The router hears this broadcast and will do this:
Last but not least, the DHCP server will send a DHCP ACK in response to the DHCP request. This is sent to the router by using unicast and our router will broadcast it on its FastEthernet 0/0 interface so the client receives it. The client now has an IP address and our mission is a great success.
Now you know how the DHCP relay agent works, let’s take a look at the configuration shall we?
I will be using 3 routers for this, the topology is the same as the one I just used for my explanation:
Let’s start with the configuration of the interfaces:
H1(config)#interface FastEthernet 0/0H1(config-if)#no shutdownR1(config)#interface FastEthernet 0/0R1(config-if)#no shutdownR1(config-if)#ip address 192.168.12.2 255.255.255.0R1(config)#interface FastEthernet 0/1R1(config-if)#no shutdownR1(config-if)#ip address 192.168.23.2 255.255.255.0DHCP(config)#interface FastEthernet 0/0DHCP(config-if)#no shutdownDHCP(config-if)#ip address 192.168.23.3 255.255.255.0Nothing special so far…let’s make a DHCP pool for the 192.168.12.0 /24 network. That’s where the client is at: