一、什么是DHCP
dhcp是动态主机配置协议,使用udp协议,主要使用udp67和udp 68号端口
二、DHCP分配过程中是什么
1.client端会发送dhcp discover广播包
2.dhcp服务器会回应dhcp offer广播包
3.client端会发送dhcp request广播包
4.dhcp服务器发送dhcp ack广播包
三、安装配置配置DHCP
1.查看系统信息
[root@mini ~]# rpm -qa dhcp
[root@mini ~]# cat /etc/centos-release
CentOS release 6.9 (Final)
[root@mini ~]# uname -r
2.6.32-696.el6.i686
[root@mini ~]# uname -m
i686
2.安装dhcp软件
[root@mini ~]# yum install -y dhcp
[root@mini ~]# rpm -qa dhcp
dhcp-4.1.1-53.P1.el6.centos.1.i686
[root@mini ~]# rpm -qc dhcp
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/portreserve/dhcpd
/etc/sysconfig/dhcpd
/etc/sysconfig/dhcpd6
/etc/sysconfig/dhcrelay
/etc/sysconfig/dhcrelay6
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
3.配置dhcp
[root@mini ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
查询dhcp sample文件(dhcpd.conf.sample文件为dhcp配置文件模板)
# rpm -ql dhcp
配置完成后的文件
[root@mini ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
# A slightly different configuration for an internal subnet.
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.10 172.16.1.30;
option domain-name-servers mini.localdomain;
option domain-name "mini.localdomain";
option routers 172.16.1.1;
option broadcast-address 172.16.1.1;
default-lease-time 600;
max-lease-time 7200;
}
查看配置是否正确
[root@mini ~]# /etc/init.d/dhcpd configtest
Syntax: OK
DHCP启动失败,并查询到如下报错信息(/var/log/messages)
Nov 6 06:37:24 mini dhcpd: No subnet declaration for eth0 (192.168.28.139).
Nov 6 06:37:24 mini dhcpd: ** Ignoring requests on eth0. If this is not what
Nov 6 06:37:24 mini dhcpd: you want, please write a subnet declaration
Nov 6 06:37:24 mini dhcpd: in your dhcpd.conf file for the network segment
Nov 6 06:37:24 mini dhcpd: to which interface eth0 is attached. **
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd: Not configured to listen on any interfaces!
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd: This version of ISC DHCP is based on the release available
Nov 6 06:37:24 mini dhcpd: on ftp.isc.org. Features have been added and other changes
Nov 6 06:37:24 mini dhcpd: have been made to the base software release in order to make
Nov 6 06:37:24 mini dhcpd: it work better with this distribution.
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd: Please report for this software via the CentOS Bugs Database:
Nov 6 06:37:24 mini dhcpd: http://bugs.centos.org/
Nov 6 06:37:24 mini dhcpd:
Nov 6 06:37:24 mini dhcpd: exiting.
解决办法:
这是因为DHCP程序发现没有“Not configured to listen on any interfaces”,只需要配置相应的IP到目标网卡中便可以解决这个问题。
[root@mini ~]# ifconfig eth1 172.16.1.1/24
[root@mini ~]# /etc/init.d/dhcpd start
Nov 6 06:43:11 mini dhcpd: Internet Systems Consortium DHCP Server 4.1.1-P1
Nov 6 06:43:11 mini dhcpd: Copyright 2004-2010 Internet Systems Consortium.
Nov 6 06:43:11 mini dhcpd: All rights reserved.
Nov 6 06:43:11 mini dhcpd: For info, please visit https://www.isc.org/software/dhcp/
Nov 6 06:43:11 mini dhcpd: Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
Nov 6 06:43:11 mini dhcpd: Wrote 0 leases to leases file.
Nov 6 06:43:11 mini dhcpd: Listening on LPF/eth1/00:0c:29:c5:2b:7e/172.16.1.0/24
Nov 6 06:43:11 mini dhcpd: Sending on LPF/eth1/00:0c:29:c5:2b:7e/172.16.1.0/24
Nov 6 06:43:11 mini dhcpd:
Nov 6 06:43:11 mini dhcpd: No subnet declaration for eth0 (192.168.28.139).
Nov 6 06:43:11 mini dhcpd: ** Ignoring requests on eth0. If this is not what
Nov 6 06:43:11 mini dhcpd: you want, please write a subnet declaration
Nov 6 06:43:11 mini dhcpd: in your dhcpd.conf file for the network segment
Nov 6 06:43:11 mini dhcpd: to which interface eth0 is attached. **
Nov 6 06:43:11 mini dhcpd:
Nov 6 06:43:11 mini dhcpd: Sending on Socket/fallback/fallback-net
查看dhcp分配情况
[root@mini ~]# cat /var/lib/dhcpd/dhcpd.leases
注意:如果Linux开启了防火墙,那么需要对UDP 67和UDP 68放行。或者直接将放火墙关闭