一、了解DHCP服务3-1

DHCP (Dynamic HostConfifiguration Protocol,动态主机配置协议)

由Internet工作任务小组设计开发

专门用于为TCP/IP网络中的计算机自动分配TCPIP参数的协议

二、了解DHCP服务3-2

使用DHCP的好处

减少管理员的工作量

避免输入错误的可能

避免IP地址冲突

当更改IP地址段时,不需要重新配置每个用户的IP地址

提高了IP地址的利用率

三、了解DHCP服务3-3

DHCP的分配方式

自动分配:分配到一个IP地址后永久使用

手动分配:由DHCP服务器管理员专门指定IP地址

动态分配:使用完后释放该IP,供其它客户机使用

DHCP是C/S模式,DHCP服务端和客户端需要保持通信,DHCP基于UDP协议,双方都有可能会主

动向对方发起通信,因此双方都需要监听端口。

Server端:DHCP Server(运行dhcp的服务)

UDP服务:监听端口67(bootps)

Client端:DHCP Client(运行dhcp程序)

UDP服务:监听端口68(bootpc)

典型的C/S模式:在网络中假设一台专用的DHCP服务器,负责集中分配各种网络地址参数(主要包

括:IP地址、子网掩码、默认网关、DNS服务器地址、广播地址),其他主机作为DHCP的客户机,将

网卡配置为自动获取,即可与DHCP服务器进行一个通讯,完成自动配置的一个过程。

四、DHCP的租约过程

客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程

分为四个步骤:

1)客户机请求P地址

当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址

此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器

2)服务器响应

DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中查找是否有合法的IP地

址提供给客户机。

如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offffer的消息中,然后广播一则DHCP

Offffer消息。

3)客户机选择IP地址

DHCP客户机从接收到的第一个DHCP Offffer消息中提取IP地址,发出IP地址的DHCP服务器将该地

址保留,这样该地址就不能再分配给另一个DHCP客户机。(

4)服务器确定租约

DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该

消息包含有IP地址的有效租约和其他可配置的信息

当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化

5)重新登录

DHCP客户机每次重新登录网络时,不需要再发送DHCPDiscover信息,而是直接发送包含前一次

所分配的IP地址的DHCP Request请求信息

6)更新租约

当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约

客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约

五、使用DHCP动态配置主机地址

DHCP服务

为大量客户机自动分配地址,提供集中管理

减轻管理和维护成本、提高网络配置效率

可分配的地址信息主要包括

网卡的IP地址、子网掩码

对应的网络地址、广播地址默认网关地址

DNS服务器地址

六、安装DHCP服务器

DHCP服务器软件

CentOS光盘中的dhcp4.2.5-47.el7.centos.x86_64.rpm

DHCP软件包的主要文件

主配置文件:/etc/dhcpd.conf

执行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay

七、主配置文件

1)dhcpd.conf的内容构成

2)全局设置,作用于整个DHCP服务器

ddns-update-style none;

default-lease-time 21600;

max-lease-time 43200;

option domain-name "domain.org";

option domain-name-servers 202.106.0.20;

3)host主机声明,作用于单个主机

hardware ethernet参数:指定对应主机的MAC地址

fifixed-address参数:指定为该主机保留的IP地址

八、启动DHCP服务

1)启动DHCP服务查看租约文件/var/lib/dhcpd/dhcpd.lease

2)两种使用方式

九、DHCP中继原理

当企业的内部网络规模较大时,通常被划分为多个不同的子网,网络内配置了VLAN,VLAN能隔离广

播,而DHCP协议使用广播

DHCP服务器在VLAN 100中,就只有VLAN 100内的客户机能从在此获取IP地址

如果VLAN 2或VLAN 3的客户机也需要通过这台DHCP服务器来获取IP地址,应该怎么办?

两种解决办法

为每个网段安装一台DHCP服务器,但这种方式存在资源上的浪费,而且不利于集中管理

在连接不同网段的设备上开启DHCP中继功能,将DHCP这种特殊的广播信息在VLAN之间转发,让

其他VLAN的客户机也能从DHCP服务器获得IP地址DHCP中继的配置命令

ip helper-address DHCPsrv-lPAddress

DHCPsrv-lPAddress为DHCP服务器的IP地址

在三层交换机上配置DHCP中继转发,是在不包含DHCP服务器的VLAN上配置实现的

SW-3L(confifig )#interface vlan 2

SW-3L(confifig-if)#ip address 192.168.2.1255.255.255.0

SW-3L(confifig-if)#ip helper-address 192.168.100.100

SW-3L(confifig-if)#no shutdown

在三层交换机上配置DHCP中继转发,是在不包含DHCP服务器的VLAN上配置实现的

SW-3L(confifig)#interface vlan 100

SW-3L(confifig-if)#ip address 192.168.100.1 255.255.255.0

SW-3L(confifig-if)#no shutdown

配置DHCP服务器

ls l grep dhcp

rpm -qa | grep dhcp #查看是否有这个包

yum install -y dhcp

cd /etc/dhcp/

ls

less dhcpd. conf.example

cd /usr/share/doc/dhcp-4.2.5/

ls

less dhcpd.conf.example

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

vim /etc/dhcp/dhcpd.conf

#设置全局配置参数

default-lease-time 21600; #默认租约为6小时,单位为秒

max-lease-tim e 43200; #最大租约为12小时,单位为秒

option domain-name "benet.com" ; #指定默认域名

option domain-name-servers 202.106.0.20,202.106.148.1; #指定DNS服务器地址

218.2.135.1(南京地区的DNS号)

ddns-update-style none; #禁用DNS动态更新

第一个为dhcp的安装包,第二个为依赖包*代表所有,查看 */下所有内容

查看dhcp包所在位置

全局模式subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)

subnet 192.168.80.0 netmask 255.255.255.0 { #声明要分配的网段地址

range 192.168.80.10 192.168.80.20; #设置地址池

option routers 192.168.80.254; #指定默认网关地址

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.100 192.168.1.200;

option routers 192.168.1.254;

}

subnet 192.168.2.0 netmask 255.255.255.0 {

range 192.168.2.20 192.168.2.30;

option routers 192.168.2.254;

}

subnet 192.168.2.0 netmask 255.255.255.0{

range 192.168.2.20 192.168.2.30;

option routers 192.168.2.254;

}

#host主机声明(给单机分配固定的IP地址)

host hostname { #指定需要分配固定IP地址的客户机名称

hardware ethernet 00:c0:c3:22:46:81; #指定该主机的MAc地址

fifixed-address 192.168.4.100; #指定保留给该主机的IP地址

}

#后面内容可都删除

systemctl start dhcpd

systemctl stop fifirewalld

setenforce 0

netstat -anpu/ grep ":67"

#如果DHCP服务启动失败,可以查看日志文件

tail -f /var/ log/messages假设我们需要将日志记录在/var/log/目录下,我们先touch一个dhcp.log文件。

1).创建dhcp.log文件

#touch /var/log/dhcp.log

#chmod 640 /var/log/dhcp.log

2) .修改/etc/dhcpd.conf配置文件,然后保存并退出删。(注意不同Linux发行版配置文件路径有所

不同)

log-facility local4;

3).在/etc/rsyslog.conf文件中添加

Local4.* /var/ log/dhcp. log