I did this lab some time back and thought it would be useful to post. In this lab I use a Dell Force10 S25P (FTOS 22.214.171.124) switch and Dell Force10 S50N (FTOS 126.96.36.199) switch to demonstrate trunking and Dynamic Host Configuration Protocol (DHCP) for multiple subnets. Both of these switches are layer 2/3 switches, however, I use the S25P to do all the routing and use the S50N strictly as a layer 2 switch.
DHCP clients will request the needed IP information by way of a DHCP broadcast message. Since routers do not forward broadcasts, if a DHCP server does not exist on the subnet, the broadcast packet will be dropped and obviously the client will not receive the needed information.
The easiest thing to do is simply add a DHCP server to the respective subnet, however, what if the DHCP server is on a different subnet or you have a DHCP server for handling multiple subnets (a more realistic scenario)? What needs to happen is that the switch needs to know that the message is a DHCP broadcast message and relay the DHCP message to the DHCP server. This can be done by using the “ip helper-address [dhcp server IP address]” command; the command must be entered in interface mode. You can specify multiple DHCP servers by using the “ip helper-address [dhcp server IP address]” command multiple times.
In this lab I have three subnets – VLAN 1 (10.1.0.0/24), VLAN 2 (10.2.0.0/24), and VLAN 3 (10.3.0.0/24). I also have a trunk link between the two switches (see my prior blog on trunking, 802.1Q Trunking Between Cisco and Dell Force10 Switches). You can see that my DHCP server sits in VLAN 3 which is subnet 10.3.0.0/24. VLAN 1 is my native VLAN and is therefore untagged across the trunk link. See the network diagram and all the respective configuration below.
After the “ip helper-address” is configured, the following occurs:
- the switch listens for DHCP broadcast messages on UDP port 67.
- when a ‘DHCPDiscover’ broadcast message is received from the client, the switch, acting as a relay device, rewrites the destination IP address as the DHCP server IP address and writes its own address as the relay agent.
- responses from the DHCP server (DHCPOffer) are sent back via unicast to the relay agent on port 68, and the relay agent rewrites the source and broadcasts the packet to the client (remember, the client has no IP address yet).
- after selecting the ‘DHCPOffer’, the client broadcasts a ‘DHCPRequest’ message. The ‘DHCPRequest’ message contains the IP address from the ‘DHCPOffer’ that it selected; if the client is renewing or rebinding to a previous lease, this packet might be unicast directly to the server.
- the server then broadcasts back either a ‘DHCPAck’ or ‘DHCPNack’; again the relay agent intercepts and rewrites the source as its own.
- the client can later send a ‘DHCPDecline’ broadcast message (declining the IP address), ‘DHCPRelease’ unicast message (releasing the IP address), or a ‘DHCPInform’ unicast message (obtaining additional local configuration).
Tags: Dell Force10 S25P, Dell Force10 S50N, dhcp, DHCP broadcast message, DHCP server, DHCP server for multiple subnets, DHCP UDP port 67, DHCPAck, DHCPDecline, DHCPDiscover, DHCPInform, DHCPNack, DHCPOffer, DHCPRelease, DHCPRequest, Dynamic Host Configuration Protocol, Force10 S25P, Force10 S50N, FTOS, helper-address, ip helper, ip helper-address, packet capture, S25P, S50N, trunk, trunk link, trunk links, UDP port 67, wireshark