Configure DHCP on a Cisco Router
Putting DHCP on a router is pretty easy and that’s one advantage of setting up DHCP no need to setup a Linux or Windows server. However this also depends on what type of environment you are running, if the company has an Active Directory structure that can be a showstopper if you want have DHCP on the router. There can be a problems because while your domain controller controls DNS any PC that gets an address from DHCP that the router is handing out may not be updated in DNS. (Active Directory likes to have DNS that is current) There have been issues with Active Directory and the best solution is to setup the DHCP service on the Windows server and disable DHCP on the router.
That way both DNS and DHCP is automatically added/updated when a new PC joins the network. Along with way more functionality on the server side than the router side, like such as clustering and or load balancing DHCP servers if there is ever need. Although Cisco routers are great it’s not designed for a clustering load balancing DHCP server. A router’s main job is forwarding and routing data and although routers can have more than one job besides routing this also adds more load to the router if it already has big shoes to fill. ;)
So now let’s begin learning how to configure DHCP, listed below is the current running-config on the router called Branch-1 in which we will configure DHCP on.
BRANCH-1#show run
Building configuration...
Current configuration : 1075 bytes
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
hostname BRANCH-1
boot-start-marker
boot-end-marker
no network-clock-participate aim 0
no network-clock-participate aim 1
no aaa new-model
ip subnet-zero
ip cef
ip ips po max-events 100
no ftp-server write-enable
interface FastEthernet0/0
ip address 192.168.40.1 255.255.255.0
duplex auto
speed auto
interface FastEthernet0/1
no ip address
shutdown
duplex auto
speed auto
ip classless
no ip http server
no ip http secure-server
control-plane
line con 0
logging synchronous
line aux 0
line vty 0 4
login
scheduler allocate 20000 1000
end
This configuration is pretty basic and if PCs where connected to FastEthernet 0/0 they would be able to ping the gateway if they where manually setup with the correct IP addresses. This maybe be ok if you only had a couple of PCs to work with but even then it is pretty simple to set up a DHCP server instead of manually configuring PCs so let’s start configuring it!
- For this example we are going to be configuring a DHCP pool called DHCP-40-POOL.
- We are also going to be excluding address from this pool which will be 192.168.40.0 - 192.168.40.5
- In this example we don’t have an internal DNS server so we will be using one of OpenDNS’s servers. That IP address is 208.67.222.222. We will also configure a secondary DNS server, that IP address is 8.8.8.8 (Thanks Google)
- Finally are domain name for this example will be BRANCH1.ryansrealm.com/ciscoskills
Let’s get connected to Branch-1 and verify you are in global configuration mode and type the following to create a DHCP pool. (This example is using DHCP-40-POOL)
BRANCH-1(config)#ip dhcp pool DHCP-40-POOL
BRANCH-1(dhcp-config)
You’ll notice that we are now in the DHCP-Config area. If you type a question mark we will see the available options we can configure while under this mode.
BRANCH-1(dhcp-config)#?
DHCP pool configuration commands:
accounting Send Accounting Start/Stop messages
bootfile Boot file name
class Specify a DHCP class
client-identifier Client identifier
client-name Client name
default-router Default routers
dns-server DNS servers
domain-name Domain name
exit Exit from DHCP pool configuration mode
hardware-address Client hardware address
host Client IP address and mask
import Programmatically importing DHCP option parameters
lease Address lease time
netbios-name-server NetBIOS (WINS) name servers
netbios-node-type NetBIOS node type
network Network number and mask
next-server Next server in boot process
no Negate a command or set its defaults
option Raw DHCP options
origin Configure the origin of the pool
subnet Subnet allocation commands
update Dynamic updates
utilization Configure various utilization parameters
vrf Associate this pool with a VRF
So for this example we first need to type the network that will be using DHCP. (For this tutorial it’s the 192.168.40.0 network so the command would look something like this:
BRANCH-1(dhcp-config)#network 192.168.40.0 255.255.255.0
To set the default router for DHCP (This is usually the router’s interface address, PCs would call this their default gateway.)
BRANCH-1(dhcp-config)#default-router 192.168.40.1
To set the domain name of this network (This example is using BRANCH1.ryansrealm.com/ciscoskills)
BRANCH-1(dhcp-config)#domain-name BRANCH1.example.com
To set DNS servers (You can type more than one in this example I have two DNS servers 208.67.222.222 is the first DNS server followed by 8.8.8.8)
BRANCH-1(dhcp-config)#dns-server 208.67.222.222 8.8.8.8
Our last setup is to exclude some address for this example we are going to excluding the first five address in the the 192.168.40.0/24 range. We have to exit out of the DHCP-config mode and go back to the global configuration mode:
BRANCH-1(dhcp-config)#exit
BRANCH-1(config)#ip dhcp excluded-address 192.168.40.0 192.168.40.5
Let’s do a copy run start to save changes and if we now look at the running-config to verify our DHCP settings it should look something like the example below.
BRANCH-1#show running-config
Building configuration...
Current configuration : 1083 bytes
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
hostname BRANCH-1
! -- OMITTED --
ip dhcp excluded-address 192.168.40.0 192.168.40.5
ip dhcp pool DHCP-40-POOL
network 192.168.40.0 255.255.255.0
dns-server 208.67.222.222 8.8.8.8
default-router 192.168.40.1
domain-name BRANCH1.example.com
! -- OMITTED --
That’s it! I hope this tutorial was helpful, to review we just configured a DHCP server on a Cisco IOS Router! As mentioned there are pros and cons when setting up DHCP on a router instead of a Windows or Linux server and the overall configuration in setting up DHCP is simple. If you noticed there are commands available while in the DHCP mode that we have not even touched and I would encourage you to either search them on the web or try them out in a lab environment. Once again I hope this information is helpful and please comment below if you have any questions.
Related articles
- Coping with Holiday Traffic - Secondary DHCP Subnets (ioshints.info)
- Top 10 Important command prompt’s commands (andiwijaya.wordpress.com)
- Real World DNS Abuse: Finding Common Ground (blogs.cisco.com)
- Cisco IOS DHCP Server tip (diecarvi.wordpress.com)