DHCP
工作原理
1.
了解
DHCP
服务
DHCP
是由
Internet
工作 任务小组设计开发的,专门用于为 TCP/IP
网络中的计算机自动分配
TCP/IP
参数的协议。
DHCP
服务避免了因手动设置
IP
地址所产生的错误,同时也避免了把一个
IP
地址分配给多台工作站所造成的地址冲突。DHCP
提供了安全、可靠且简单的
TCP/IP
网络设置,降低了配置 IP
地址的负担。
2 .
使用
DHCP
的好处
减少管理员的工作量。
避免输入错误的可能。
避免
IP
地址冲突。
当网络更改
IP
地址段时,不需要再重新配置每个用户的
IP
地址。
提高了
IP
地址的利用率。
方便客户端的配置。
3 . DHCP
的分配方式
在
DHCP
的工作原理中,
DHCP
服务器提供了三种
IP
地址分配方式:自动分配 、手动分配和动态分配。
自动分配是当
DHCP
客户机第一次成功地从
DHCP
服务器获取到一个
IP
地址后,就永久地使用这个 IP
地址。
手动分配是由
DHCP
服务器管理员专门指定
IP
地址。
动态分配是当
DHCP
客户机第一次从
DHCP
服务器获取到
IP
地址后,并非永久 地使用该地址,而是在每次使用完后,DHCP
客户机就会释放这个
IP
地址,供其 他客户机使用。
4 . DHCP
的租约过程
此过程主要分为以 下四个步骤:
客户端在网络中搜索服务器;
服务器向客户端响应服务;
客户端向服务器发出服务请求;
服务器向客户端提供服务。
(
1
)客户机请求
IP
地址
当一个
DHCP
客户机启动时,客户机还没有
IP
地址,所以客户机要通过
DHCP
获取一个合法的地址。此时 DHCP
客户机以广播方式发送
DHCP Discover
发现信息来寻找DHCP 服务器。
(
2
)服务器响应
当
DHCP
服务器接收到来自客户机请求
IP
地址的信息时,它就在自己的
IP
地址池中 查找是否有合法的 IP
地址提供给客户机。如果有,
DHCP
服务器就将此
IP
地址做上标记,加入到 DHCP Offer
的消息中,然后
DHCP
服务器就广播一则
DHCP Offer
消息。
(
3
)客户机选择
IP
地址
DHCP
客户机从接收到的第一个
DHCP Offer
消息中提取
IP
地址,发出
IP
地址的
DHCP 服务器将该地址保留,这样该地址就不能再分配给另一个 DHCP
客户机。之后
DHCP
客户 机会向服务器发送 DHCP Request
消息。
(
4
)服务器确定租约
DHCP
服务器接收到
DHCP Request
消息后,以
DHCP ACK
消息的形式向客户机广播
成功确认,该消息包含有 IP
地址的有效租约和其他可配置的信息。
(
5
)重新登录
DHCP
客户机每次重新登录网络时,不需要再发送
DHCP Discover
信息,而是直接发 送包含前一次所分配的 IP
地址的
DHCP Request
请求信息。
(
6
)更新租约
当
DHCP
服务器向客户机出租的
IP
地址租期达到
50%
时,就需要更新租约。客户机直 接向提供租约的服务器发送 DHCP Request
包,要求更新现有的地址租约。
使用
DHCP
动态配置主机地址
DHCP
服务可分配的地址信息主要包括:
网卡的
IP
地址、子网掩码;
对应的网络地址、广播地址;
默认网关地址;
DNS
服务器地址
;
配置
DHCP
服务器
1
.安装
DHCP
服务器软件
先执行
“rpm -q dhcp”
命令查看系统中是否已经安装
dhcp
软件包,如果没有安装,则只要挂载 CentOS
系统光盘,安装其中的
dhcp-4.2.5-47.el7.centos.x86_64.rpm
软件包即可
#
mount /dev/cdrom /media/cdrom
#
rpm -ivh /media/cdrom/Packages/dhcp-4.2.5-47.el7.centos.x86_64.rpm
2
.建立主配置文件
dhcpd.conf
#
cat /etc/dhcp/dhcpd.conf
#
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd.conf
文件的配置构成
在主配置文件
dhcpd.conf 中,可以使用声明、参数、选项这三种类型的配置
声明:用来描述
dhcpd
服务器中对网络布局的划分,是网络设置的逻辑范围。较 常见的声明是 subnet
、
host
,其中
subnet
声明用来约束一个网段,
host
声明用来 约束一台特定的主机。
参数:由配置关键字和对应的值组成,总是以
“
;
”(
分号
)
结束,一般位于指定的声 明范围之内,用来设置所在范围的运行特性(如默认租约时间、最大租约时间等)。
选项:由
“option”
引导,后面跟具体的配置关键字和对应的值,也是以
“
;
”
结束,用于指定分配给客户机的各种地址参数。
dhcpd
服务的全局配置
为了使配置文件的结构更加清晰,全局配置通常会放在配置文件
dhcpd.conf
的开头部
分,可以是配置参数,也可以是配置选项。
ddns-update-style
,动态
DNS
更新模式。用来设置与
DHCP
服务相关联的
DNS 数据动态更新模式。在实际的 DHCP
应用中很少用到该参数,将值设为
“none”
即可。
default-lease-time
,默认租约时间。单位为秒,表示客户端可以从
DHCP
服务器 租用某个 IP
地址的默认时间。
max-lease-time
,最大租约时间。单位为秒,表示允许
DHCP
客户端请求的最大 租约时间,当客户端未请求明确的租约时间时,服务器将采用默认租约时间。
option domain-name
,默认搜索区域。为客户机指定解析主机名时的默认搜索域, 该配置选项将体现在客户机的/etc/resolv.conf
配置文件中,如
“search benet.com”
。
option domain-name-servers
,
DNS
服务器地址。为客户机指定解析域名时使用 的 DNS 服务器地址,该配置选项同样将体现在客户机的
/etc/resolv.conf
配置文件中
。需设置多个
DNS
服务器地址时,以逗号进行分隔。
#
vi /etc/dhcp/dhcpd.conf
subnet
网段声明
一台
DHCP
服务器可以为多个网段提供服务,因此
subnet
网段声明必须有而且可以有多个。
#
vi /etc/dhcp/dhcpd.conf
host
主机声明
host
声明用于设置单个主机的网络属性,通常用于为网络打印机或个别服务器分配固定的 IP
地址,这些主机的共同特点是要求每次获取的
IP
地址相同,以确保服务的稳定性。
3
.启动
dhcpd
服务
在启动
dhcpd
服务之前,应确认提供
DHCP
服务器的网络接口具有静态指定的固定
IP地址,并且至少有一个网络接口的 IP
地址与
DHCP
服务器中的一个
subnet
网段相对应,否则将无法正常启动 dhcpd
服务。
#
systemctl start dhcpd
#
netstat -anpu | grep ":67"
使用
DHCP
客户端
当局域网内有可用的
DHCP
服务器时,在
Linux
客户机中可以设置使用
DHCP
的方式获取地址。只需要编辑对应网卡的配置文件,修改或添加“BOOTPROTO=dhcp”
配置行,并重新加载配置文件或者重新启动 network
服务即可。
#
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#
ifdown ens33 ; ifup ens33
在
Linux
客户机中,还可以使用
dhclient
工具来测试
DHCP
服务器。若直接执行
“dhclient” 命令,则 dhclient
将尝试为除回环接口
lo
以外的所有网络接口通过
DHCP
方式申请新的地址,然后自动转入后台继续运行。
#
dhclient -d ens33
#
less /var/lib/dhcpd/dhcpd.leases
#
dhclient -r ens33