目录
一、了解DHCP服务
1.什么是DHCP
1.1DHCP广播
2.使用DHCP的好处
2.1为什么使用DHCP
3.DHCP的模式与分配方式
3.1分配方式
3.2模式
二、DHCP工作原理
1.四次回话
2.重新登录
3.更新租约
4.扩展
三、安装DHCP服务
四、DHCP局部配置并且测试
五、使用DHCP实现不同网段获取地址
5.1问题
5.2分析DHCP
5.3 两种方法可以解决
一、了解DHCP服务
1.什么是DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是由Internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议,是一个应用层协议,使用UDP的67和68端口
DHCP的前身是BOOTP协议(BootstrapProtocol),BOOTP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比BOOTP更加复杂,功能更强大。(如果使用wireshark抓包过滤协议是用bootp而不是dhcp)
1.1DHCP广播
DHCP广播过程是在网络中用于获取IP地址及其他网络配置信息的一种方法。下面是DHCP广播过程的简要描述:
DHCP Discover:
客户端(通常是计算机或其他网络设备)在初始连接到网络时发送一个DHCP Discover广播消息。这个广播消息的目的地址是255.255.255.255,即广播地址,这样可以确保所有连接到同一个网络的DHCP服务器都能收到这个消息
DHCP Discover消息中包含客户端的MAC地址和可能的其他信息,例如支持的DHCP选项和配置参数的最大长度
DHCP Offer:DHCP服务器收到DHCP Discover消息后,如果它有可用的IP地址池和配置信息,会向客户端发送DHCP Offer消息
DHCP Offer消息中包含一个可用的IP地址及其他网络配置信息,比如子网掩码、默认网关、DNS服务器等
服务器将自己的IP地址作为源IP发送Offer,目标IP是广播地址
DHCP Request:客户端收到一个或多个DHCP Offer后,通常会选择其中一个Offer并向发送该Offer的DHCP服务器发送DHCP Request消息,以请求指定的IP地址和配置信息
DHCP Request消息中包含客户端希望使用的IP地址(通常是服务器提供的一个)
DHCP Acknowledge:DHCP服务器收到DHCP Request消息后,会验证请求的IP地址是否仍然可用。如果IP地址可用,服务器会向客户端发送DHCP Acknowledge消息,确认IP地址分配成功
DHCP Acknowledge消息中包含客户端被分配的IP地址及其他网络配置信息
配置应用:客户端收到DHCP Acknowledge消息后,会应用所获取的IP地址及其他配置信息。此时客户端与网络正式连接
DHCP广播过程的关键点:
广播地址:客户端使用广播地址发送DHCP Discover消息,以确保所有可能的DHCP服务器都能接收到请求
选择性:客户端可以收到多个DHCP Offer后进行选择,并向其中一个服务器发送DHCP Request来确认选择
确认:DHCP Acknowledge消息由服务器发送,确认了IP地址分配的最终结果
2.使用DHCP的好处
(1)减少管理员的工作量
(2)避免输入错误的可能
(3)避免 IP 地址冲突
(4)当网络更改IP地址段时,不需要再重新配置每个用户的IP地址
(5)提高了IP地址的利用率
(6)方便客户端的配置
2.1为什么使用DHCP
DHCP服务避免了因手动设置IP地址所产生的错误,同时也避免了把一个IP地址分配给多台工作站所造成的地址冲突。DHCP提供了安全、可靠且简单的TCP/IP网络设置,降低了配置 IP地址的负担
3.DHCP的模式与分配方式
3.1分配方式
自动分配:是当DHCP客户机第一次成功地从DHCP服务器获取到一个IP地址后, 就永久地使用这个IP地址
手动分配:是由DHCP服务器管理员专门指定IP地址
动态分配:是当DHCP客户机第一次从DHCP服务器获取到IP地址后,并非永久地使用该地址,而是在每次使用完后,DHCP客户机就会释放这个IP地址,供其他客户机使用
3.2模式
典型的C/S模式
在网络中架设一台专用的DHCP服务器,负责集中分配各种网络地址参数(主要包括IP地址、子网掩码、广播地址、默认网关地址、DNS 服务器地址);其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与DHCP服务器进行通信,完成自动配置过程DHCP是C/S模式,DHCP服务端和客户端需要保持通信,DHCP基于UDP协议,双方都有可能会主动向对方发起通信,因此双方都需要监听端口
Server端:DHCP Server(运行dhcp服务)
UDP服务:监听端口 67(bootps)
Client端:DHCP Client(运行dhcp程序)
UDP服务:监听端口 68 (bootpc)
二、DHCP工作原理
客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
分为四个步骤:
1.四次回话
客户机请求IP地址
当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址。此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器
服务器响应
当DHCP服务器接收到来自客户机请求IP地址的信息时,它就在自己的IP地址池中查找是否有合法的IP地址提供给客户机。如果有,DHCP服务器就将此IP地址做上标记, 加入到 DHCP Offer的消息中,然后DHCP服务器就广播一则DHCP Offer消息
客户机选择IP地址
DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机。之后DHCP客户机会向服务器发送DHCP Request消息
服务器确定租约
DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息。当客户机收到DHCP ACK消息时,它就配置了IP地址,完成TCP/IP的初始化
DHCP的工作方式有点像你在找房子时的流程:
找房子:当你刚搬到一个新城市时,你需要找一处房子住下来。在网络中,新加入的设备也需要一个IP地址来“住”在网络上
发出广播:你会向周围的房东广播你的需求,告诉他们你正在找房子。在网络中,设备会向周围的DHCP服务器发出广播消息,告诉它们它们需要一个IP地址
收到房源信息:房东们收到你的广播后,如果有空房间,就会回复你,告诉你他们有可用的房源。在网络中,DHCP服务器收到广播后会回复设备,提供可用的IP地址和其他网络设置,比如网关和DNS服务器的地址
确认租房:你从收到的房源中选择一处合适的房子,然后告诉房东你要租这个房子。在网络中,设备选择一个DHCP服务器提供的IP地址,并向该服务器发送请求,确认租用这个IP地址
签订合同:房东确认接受你的请求后,你们就达成了租房协议,你可以搬进新家了。在网络中,DHCP服务器确认设备的请求后,将正式分配IP地址给设备,并提供其他网络配置信息,设备就可以开始使用这个IP地址与网络上的其他设备进行通信了
总体来说,DHCP广播过程就是一个设备在网络上寻找并租用IP地址的自动化过程,它使得设备能够快速、方便地加入并使用网络
2.重新登录
关于重新登录的情况
DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request 请求信息
3.更新租约
当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约
客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约租期达到50%(T1)时,DHCP客户端会自动以单播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCP NAK报文,则重新发送DHCP DISCOVER报文请求新的IP地址
当租期达到87.5%(T2)时,如果仍未收到DHCP服务器的应答,DHCP客户端会自动以广播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCP NAK报文,则重新发送DHCP DISCOVER报文请求新的IP地址
4.扩展
为什么会获得169.254.0.0/16网段的地址
一开始DHCP客户机初始化TCP/IP,通过UDP端口67向网络中发送一个DHCP DISCOVER广播包,请求租用IP地址。任何接收到DHCP DISCOVER广播包并且能够提供IP地址的DHCP服务器,都会通过UDP端口68给客户机回应一个DHCP OFFER广播包,提供一个IP地址。但是DHCP客户机在发出IP租用请求的DHCP DISCOVER广播包后,将花费1秒钟的时间等待DHCP服务器的回应,如果1秒钟没有服务器的回应,它会将这一广播包重新广播四次(以2,4,8和16秒为间隔,加上1~1000毫秒之间随机长度的时间)。四次之后,如果仍未能收到服务器的回应,则运行Windows的DHCP客户机将从169.254.0.0/16这个自动保留的私有IP地址(APIPA)中选用一个IP地址,而运行其他操作系统的DHCP客户机将无法获得IP地址
三、安装DHCP服务
实验配置步骤:
1、yum安装dhcp服务
2、配置dhcp配置文件
3、启动服务
4、查看端口
5、验证服务
安装DHCP服务前的准备
rpm -q dhcp #查看有没有软件包
yum install -y dhcp #下载软件包
rpm -qc dhcp #查看配置文件有哪些
cat /etc/dhcp/dhcpd.conf #查看配置文件
cp -fp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
拷贝模板起名为dhcpd.conf
四、DHCP局部配置并且测试
subnet 网段声明
一台DHCP服务器可以为多个网段提供服务,因此subnet网段声明必须有而且可以有多个。
注意别少了每行结尾的分号!
编辑配置文件
vim /etc/dhcp/dhcpd.conf
subnet 172.16.58.0 netmask 255.255.255.0 {
#default-lease-time 6000;
range 172.16.58.210 172.16.58.220;
option broadcast-address 172.16.58.255;
option routers 172.16.58.200;
option domain-name-servers 114.114.114.114;
}
客户端验证:
ipconfig /release
ipconfig /renewdhcp默认日志记录在/var/log/messages
客户机预留指定的固定ip地址
编辑配置文件
vim /etc/dhcp/dhcpd.conf
添加配置信息然后保存退出
重启服务器
host 主机声明,作用于单个主机
#hardware ethernet 参数:指定对应主机的 MAC 地址
#fixed-address 参数:指定为该主机保留的IP地址
验证方法跟上面一样
ipconfig /release
ipconfig /renewipconfig /all
在服务器端可以通过查看租约文件来了解服务器的 IP 地址分配情况,具体操作如下:
less /var/lib/dhcpd/dhcpd.leases
该租约文件中记录了分配出去的每个IP地址信息(租约记录), 包括IP地址、客户端的MAC 地址、租用的起始时间和结束时间等
该文件初始为空,且无需管理员手工配置,但管理员可以浏览此文件查看DHCP服务器的运行情况
文件包含租期声明,每次一个租期被获取,更新或释放,它的新值就被记录到文件的末尾
客户端需要通过dhclient命令释放获取的IP租约时,可以结合“-r”选项。此时再通过执行ifconfig 命令就看不到分配的IP地址了
dhclient -r ens33
五、使用DHCP实现不同网段获取地址
5.1问题
同网段可以通过广播消息来通信,来可以查找主机,那不同网段呢,不同网段不能广播吧,这个时候是不是可以使用DHCP中继这个服务吧,也就是使用中继的技术,你们之前是不是使用过华为的中继嘛,你配一个路由器或者配一个三层交换,然后呢,可以做个DHCP中继指向DHCP服务器,不就是能完成获取DHCP服务吗,就算不在同一网段我通过中继服务器转发不就可以了吗
5.2分析DHCP
DHCP中继原理
当企业内部网络规模比较大时,通常通过 VLAN 将网络规划为多个不同的子网。但是在该情况下一台DHCP服务器无法为不同网段的客户机同时提供服务,因为DHCP协议使 用广播,而VLAN能隔离广播
5.3 两种方法可以解决
(1)为每个网段安装一台DHCP服务器,但这种方式的弊端是:资源浪费与不利于管理
(2)在连接不同网段的设备上开启DHCP中继功能,将DHCP这种特殊的广播信息在VLAN 之间转发,让其他VLAN的客户机也能从DHCP服务器获取IP地址