一、什么是DHCP
dhcp是動態(tài)主機配置協(xié)議,使用udp協(xié)議,主要使用udp67和udp 68號端口
二、DHCP分配過程中是什么
1.client端會發(fā)送dhcp discover廣播包
2.dhcp服務(wù)器會回應(yīng)dhcp offer廣播包
3.client端會發(fā)送dhcp request廣播包
4.dhcp服務(wù)器發(fā)送dhcp ack廣播包
三、安裝配置配置DHCP
1.查看系統(tǒng)信息
[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程序發(fā)現(xiàn)沒有“Not configured to listen on any interfaces”,只需要配置相應(yīng)的IP到目標(biāo)網(wǎng)卡中便可以解決這個問題。
[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放行?;蛘咧苯訉⒎呕饓﹃P(guān)閉
查看此時客戶端使用wireshark抓到的DHCP數(shù)據(jù)包
