1. Define the DHCP address pool,
Router(config)#ip dhcp pool POOLNAME
Router(dhcp-config)#network XXX.XXX.XXX.XXX YYY.YYY.YYY.YYY
XXX.XXX.XXX.XXX is the network address to be used by the DHCP pool
YYY.YYY.YYY.YYY is the subnet mask for the network.
You can replace the subnet mask by a (/PREFIX) to provide the subnet mask.
2. Configure the parameters to be sent to the client,
To provide the DNS server IP address
To provide the IP address of the default gateway
To provide the name of the domain of the network (if in a domain environment)
To provide the IP address of the NetBIOS name server
Router(dhcp-config)#lease DAYS HOURS MINUTES
To define the lease time of the addresses given to the client. You can make it infinite by using this command instead; lease infinite
There is a large group of settings that you can configure to be sent to the clients, and I have only mentioned the most frequently used.
3. Configure the IP addresses to be excluded from the pool. This is usually done to avoid the conflicts caused by the DHCP with servers and printers. Remember to give ALL servers and network printers static IP addresses in the same range of the DHCP pool. And then exclude these addresses from the pool to avoid conflicts.
Router(config)#ip dhcp excluded-address XXX.XXX.XXX.XXX
Use the command in the previous form to excluded a single address. You can repeat it as much as you see fit for the IP addresses you want to exclude. Or,
Router(config)#ip dhcp excluded-address YYY.YYY.YYY.YYY ZZZ.ZZZ.ZZZ.ZZZ
YYY.YYY.YYY.YYY is the start of the range to be excluded from the pool
ZZZ.ZZZ.ZZZ.ZZZ is the end of the range
This way you can exclude a range or ranges of IP addresses and reserve them for static addresses use.
4. Enable the DHCP service in the router
To disable it use
Router(config)#no service dhcp
Usually the DHCP service is enabled by default on your router.
5. Use the following commands to check the DHCP operation on the router:
Router#show ip dhcp binding
This command shows the current bindings of addresses given to clients
Router#show ip dhcp server statistics
This command show the DHCP server statistics.
Router#debug ip dhcp server
This debug command is used to troubleshoot DHCP issues.
1. If you have a DHCP server other than the router, and you would like to let the router to forward the DHCP requests from a certain LAN to the DHCP server laying outside that LAN, go to the Ethernet interface that does not have the DHCP server and type the following command:
Router(config-if)#ip helper-address XXX.XXX.XXX.XXX
where XXX.XXX.XXX.XXX is the IP address of the server laying outside this LAN.
2. You can create a DHCP database agent that stores the DHCP binding database. A DHCP database agent is any host, for example, an FTP, TFTP, or RCP server that stores the DHCP bindings database. You can configure multiple DHCP database agents and you can configure the interval between database updates and transfers for each agent. To configure a database agent and database agent parameters, use the following command in global configuration mode:
Router(config)#ip dhcp database url [timeout seconds | write-delay seconds]
If you choose not to configure a DHCP database agent, disable the recording of DHCP address conflicts on the DHCP server. To disable DHCP address conflict logging, use the following command in global configuration mode:
Router(config)#no ip dhcp conflict logging
3. DHCP service uses port 67 and 68. So, if you are using a firewall, remember to open these ports.
4. To clear DHCP server variables, use the following commands as needed:
Router#clear ip dhcp binding *
If you want to clear a certain binding not all of them, replace the * in the previous command with the IP address to be cleared.
Router#clear ip dhcp server statistics