Centos 搭建dhcp服务器

一、什么是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放行。或者直接将放火墙关闭


查看此时客户端使用wireshark抓到的DHCP数据包


Centos 搭建dhcp服务器_第1张图片

你可能感兴趣的:(Centos 搭建dhcp服务器)