The Dynamic Host Configuration Protocol (DHCP) is a network configuration protocol for hosts on Internet Protocol (IP) networks. Computers that are connected to IP networks must be configured before they can communicate with other hosts. The most essential information needed is an IP address, and a default route and routing prefix. DHCP eliminates the manual task by a network administrator. It also provides a central database of devices that are connected to the network and eliminates duplicate resource assignments.
In addition to IP addresses, DHCP also provides other configuration information, particularly the IP addresses of local Domain Name Server (DNS), network boot servers, or other service hosts. Let's see how to install and configure dhcp server in a centos 5 or redhat el5 system.
Here we will set the dhcp server for the network 192.168.137.0/24
Network 192.168.137.0/24
Client's ip range 192.168.137.150 - 192.168.137.250
Gateway 192.168.137.1
Bcast 192.168.137.255
DNS servers 8.8.8.8 and 8.8.4.4
The package name is dhcp. We will install usign yum.
/etc/dhcpd.conf - is the main configuration file
/var/lib/dhcpd - Lease directory
/var/lib/dhcpd/dhcpd.leases - IPV4 Leases
The default dhcp configuration file will be a reference to the sample file.
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
#[root@server ~]#
We will copy the sample file and edit it.
Check the service and start it.
Now from the client machine we can set the network settings on the eth0 device to dhcp and restart the network.
DHCP works in DORA format
Client sends DHCPDISCOVER (D)
Server sends DHCPOFFER (O)
Client sends DHCPREQUEST (R)
Server sends DHCPACK (A)
Now on taling the /var/log/messages on dhcp server we can see that all this happens while we restart the network on client
Feb 27 22:50:09 server dhcpd: DHCPDISCOVER from 00:0c:29:8d:16:93 via eth0
Feb 27 22:50:10 server dhcpd: DHCPOFFER on 192.168.137.250 to 00:0c:29:8d:16:93 via eth0
Feb 27 22:50:10 server dhcpd: DHCPREQUEST for 192.168.137.250 (192.168.137.100) from 00:0c:29:8d:16:93 via eth0
Feb 27 22:50:10 server dhcpd: DHCPACK on 192.168.137.250 to 00:0c:29:8d:16:93 via eth0
The lease file at the server side is stored at
[root@server ~]# cat /var/lib/dhcpd/dhcpd.leases
# All times in this file are in UTC (GMT), not your local timezone. This is
# not a bug, so please don't ask about it. There is no portable way to
# store leases in the local timezone, so please don't request this as a
# feature. If this is inconvenient or confusing to you, we sincerely
# apologize. Seriously, though - don't ask.
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-V3.0.5-RedHat
lease 192.168.137.250 {
starts 1 2012/02/27 17:04:49;
ends 1 2012/02/27 23:04:49;
binding state active;
next binding state free;
hardware ethernet 00:0c:29:8d:16:93;
}
[root@server ~]#
If you want you can make a separate log file for dhcp
add this line
log-facility local8;
so makes the dhcpd.conf
In client machine. It gets the ip 192.168.137.250 which is in the range we specified.
And also the nameserver details
[root@server ~]#
In addition to IP addresses, DHCP also provides other configuration information, particularly the IP addresses of local Domain Name Server (DNS), network boot servers, or other service hosts. Let's see how to install and configure dhcp server in a centos 5 or redhat el5 system.
Here we will set the dhcp server for the network 192.168.137.0/24
Network 192.168.137.0/24
Client's ip range 192.168.137.150 - 192.168.137.250
Gateway 192.168.137.1
Bcast 192.168.137.255
DNS servers 8.8.8.8 and 8.8.4.4
The package name is dhcp. We will install usign yum.
Code:
[root@server ~]# yum install dhcp [root@server ~]# rpm -q dhcp dhcp-3.0.5-13.el5 [root@server ~]#
/var/lib/dhcpd - Lease directory
/var/lib/dhcpd/dhcpd.leases - IPV4 Leases
The default dhcp configuration file will be a reference to the sample file.
Code:
[root@server ~]# cat /etc/dhcpd.conf
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
#[root@server ~]#
We will copy the sample file and edit it.
Code:
root@server ~]# cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcpd.conf root@server ~]# cat /etc/dhcpd.conf ddns-update-style interim; ignore client-updates; subnet 192.168.137.0 netmask 255.255.255.0 { option routers 192.168.137.1; option subnet-mask 255.255.255.0; option domain-name "lap.work"; option domain-name-servers 8.8.8.8, 8.8.4.4; range dynamic-bootp 192.168.137.150 192.168.137.250; default-lease-time 21600; max-lease-time 43200; } [root@server ~]#
Code:
[root@server ~]# /etc/init.d/dhcpd status dhcpd is stopped [root@server ~]# /etc/init.d/dhcpd start Starting dhcpd: [ OK ] [root@server ~]# chkconfig dhcpd on
DHCP works in DORA format
Client sends DHCPDISCOVER (D)
Server sends DHCPOFFER (O)
Client sends DHCPREQUEST (R)
Server sends DHCPACK (A)
Now on taling the /var/log/messages on dhcp server we can see that all this happens while we restart the network on client
Code:
[root@server ~]# tail -f /var/log/messages
Feb 27 22:50:10 server dhcpd: DHCPOFFER on 192.168.137.250 to 00:0c:29:8d:16:93 via eth0
Feb 27 22:50:10 server dhcpd: DHCPREQUEST for 192.168.137.250 (192.168.137.100) from 00:0c:29:8d:16:93 via eth0
Feb 27 22:50:10 server dhcpd: DHCPACK on 192.168.137.250 to 00:0c:29:8d:16:93 via eth0
The lease file at the server side is stored at
[root@server ~]# cat /var/lib/dhcpd/dhcpd.leases
# All times in this file are in UTC (GMT), not your local timezone. This is
# not a bug, so please don't ask about it. There is no portable way to
# store leases in the local timezone, so please don't request this as a
# feature. If this is inconvenient or confusing to you, we sincerely
# apologize. Seriously, though - don't ask.
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-V3.0.5-RedHat
lease 192.168.137.250 {
starts 1 2012/02/27 17:04:49;
ends 1 2012/02/27 23:04:49;
binding state active;
next binding state free;
hardware ethernet 00:0c:29:8d:16:93;
}
[root@server ~]#
If you want you can make a separate log file for dhcp
add this line
log-facility local8;
so makes the dhcpd.conf
Code:
root@server ~]# cat /etc/dhcpd.conf ddns-update-style interim; ignore client-updates; subnet 192.168.137.0 netmask 255.255.255.0 { option routers 192.168.137.1; option subnet-mask 255.255.255.0; option domain-name "lap.work"; option domain-name-servers 8.8.8.8, 8.8.4.4; range dynamic-bootp 192.168.137.150 192.168.137.250; default-lease-time 21600; max-lease-time 43200; log-facility local8; } [root@server ~]# Restart the dhcpd service touch the file /var/log/dhcpd.log and in /etc/syslog.conf add the line local8.* /var/log/dhcpd.log and restart syslog servce
Code:
[root@server ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:8D:16:93 inet addr:192.168.137.250 Bcast:192.168.137.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe8d:1693/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:361 errors:0 dropped:0 overruns:0 frame:0 TX packets:544 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:39256 (38.3 KiB) TX bytes:130376 (127.3 KiB) Interrupt:75 Base address:0x2000
Code:
[root@server ~]# cat /etc/resolv.conf ; generated by /sbin/dhclient-script search lap.work nameserver 8.8.8.8 nameserver 8.8.4.4 [root@server ~]# The lease file at the client is [root@server ~]# cat /var/lib/dhclient/dhclient-eth0.leases lease { interface "eth0"; fixed-address 192.168.137.250; option subnet-mask 255.255.255.0; option routers 192.168.137.1; option dhcp-lease-time 21600; option dhcp-message-type 5; option domain-name-servers 8.8.8.8,8.8.4.4; option dhcp-server-identifier 192.168.137.100; option domain-name "lap.work"; renew 1 2012/2/27 19:37:49; rebind 1 2012/2/27 22:34:52; expire 1 2012/2/27 23:19:52; }