DHCP Static Mapping
Problem
You want to enable the assignment
of static IP addresses from a text file.
Solution
To enable the assignment of static
IP addresses from a text file, first you must create a static DHCP mapping file
on your TFTP server:
Freebsd% cat /tftpboot/dhcp.static
*time* Aug 17 2006 03:52 PM
*version* 2
!IP address Type Hardware address Lease expiration
10.1.1.16 /24 id 0100.104b.33da.74 Infinite
10.1.1.17 /24 id 0100.0dbc.eff6.38 Infinite
10.1.1.18 /24 id 0100.0a5e.4001.27 Infinite
10.1.1.19 /24 id 0100.0331.327e.41 Infinite
10.1.1.20 /24 id 0100.0d60.b21a.4c Infinite
*end*
Freebsd%
To enable the router to read the static text file from the TFTP
server, use the origin file command:
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#ip dhcp pool OREILLY
Router1(dhcp-config)#origin file tftp://172.25.1.1/dhcp.static
Router1(dhcp-config)#default-router 10.1.1.1
Router1(dhcp-config)#dns-server 172.25.1.1 172.25.1.3
Router1(dhcp-config)#domain-name oreilly.com
Router1(dhcp-config)#lease 3
Router1(dhcp-config)#end
Router1#
Discussion
As demonstrated in Recipe
20.7, we can statically bind IP addresses to hardware addresses; however,
doing so requires a dedicated DHCP pool, and more importantly, many lines of
configuration. For instance, the following is a sample configuration for a
single statically mapped IP address:
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#ip dhcp pool IAN
Router1(dhcp-config)#host 172.25.1.33 255.255.255.0
Router1(dhcp-config)#client-identifier 0100.0103.85e9.87
Router1(dhcp-config)#default-router 172.25.1.1
Router1(dhcp-config)#domain-name oreilly.com
Router1(dhcp-config)#dns-server 172.25.1.1
Router1(dhcp-config)#end
Router1#
While this method of assigning static IP addresses is useful
for sites with a few required static addresses, it doesn't scale well when you
need to assign a large number of them. Building a new DHCP pool per static
address not only consumes NVRAM space, but also clutters the router
configuration file.
Beginning with IOS Version 12.3(11)T, Cisco supports the
ability to assign static IP address via text files. To begin, you must first
create the static mapping text file on your TFTP server. There is no limit to
the number of static entries you can add to the file; however, the file must
follow a certain format. The following is an example text file:
Freebsd% cat /tftpboot/dhcp.static
*time* Aug 17 2006 03:52 PM
*version* 2
!IP address Type Hardware address Lease expiration
10.1.1.16 /24 id 0100.104b.33da.74 Infinite
10.1.1.17 /24 id 0100.0dbc.eff6.38 Infinite
10.1.1.18 /24 id 0100.0a5e.4001.27 Infinite
10.1.1.19 /24 id 0100.0331.327e.41 Infinite
10.1.1.20 /24 id 0100.0d60.b21a.4c Infinite
*end*
Freebsd%
The file must contain the following elements:
For more information regarding the elements of this file, see
the Discussion section of Recipe
20.7.
Once you've created the static mapping text file, you can
configure the router to read the file by using the origin file command:
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#ip dhcp pool OREILLY
Router1(dhcp-config)#origin file tftp://172.25.1.1/dhcp.static
Router1(dhcp-config)#end
Router1#
Use the show ip dhcp binding
command to ensure that the static mapping text file loaded correctly:
Router1#show ip dhcp binding
Bindings from all pools not associated with VRF:
IP address Client-ID/ Lease expiration Type
Hardware address/
User name
10.1.1.16/24 0100.104b.33da.74 Infinite Static
10.1.1.17/24 0100.0dbc.eff6.38 Infinite Static
10.1.1.18/24 0100.0a5e.4001.27 Infinite Static
10.1.1.19/24 0100.0331.327e.41 Infinite Static
10.1.1.20/24 0100.0d60.b21a.4c Infinite Static
Router1#
You will notice that the static mapping have been loaded from
the text file and the router is now ready to assign IP addresses based on the
static mapping. If you modify the static mapping text file to add, change, or
remove entries, then you need to disabled the DHCP server and start it again by
removing the DHCP service. By doing so, the router will TFTP the new static
mapping file:
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#no service dhcp
Router1(config)#service dhcp
Router1(config)#end
Router1#