原理简介:
知识点
dhcp简介:俗称动态主机配置协议,是一个工作在应用层的局域网网络协议,传输数据时通过不可靠的udp传输协议,用在大型网络局域网络环境中,使得网络环境中的主机能动态获得IP地址、gateway、DNS服务器地址等信息
软件名:
dhcp 服务软件包
服务名:
dhcpd(dhcp服务名)dhcpcrelay(dhcp中继服务名)
端口号:
UDP67:接收客户端dhcp请求端口
UDP68:作为服务器源端口,向客户端回复数据包
配置文件
dhcpd /etc/dhcp/dhcpd.cpnf 主配置文件
/etc/sysconfig/dhcrelay 中继配置文件
租约过程
1客户端IP请求:当一台DHCP客户机启动时,会将自己的IP地址配置成0.0.0.0,由于使用0.0.0.0不能进行正常通信,所以客户机使用0.0.0.0作为源地址,使用255.255.255.255作为目标地址,使用UDP67端口作为目的端口来广播请求IP地址信息。广播包DHCP包含了客户机的MAC地址和计算机名,以便使DHCP服务器能确定是那个客户机发送的请求,只有服务器才有UDP67端口,就会接收到此数据包
2服务器响应请求:当DHCP服务器接收到客户机请求IP地址信息时,他就在自己的IP地址池查找到有合法的IP地址提供给客户机。如果有,DHCP服务器将此IP地址做上标记,加入到DHCP OFFER消息中,然后DHCP服务器广播中包含着DHCP客户机的MAC地址,DHCP服务器提供的IP地址;子网掩码;默认网关(路由);租约的期限;DHCP服务器的IP地址-MAC。因为DHCP客户机还没有IP地址,所以DHCP服务器使用自己的IP地址作为源地址,使用255.255.255.255作为目标地址,使用UDP68端口作为端口来广播DHCP OFFER信息,向此发送discover请求的客户机将会接受此offer包包
3 DHCP客户机选择IP:DHCP客户机从接收到第一个DHCP OFFER消息中选择IP地址,发出IP地址服务器将该地址保留,这样该地址就不能提供给另一个客户机,客户机将DHCP REQUEST消息广播到所有的DHCP服务器,表明他接受提供的内容,DHCP REQUEST消息包括为该客户机提供IP配置的服务器的IP。DHCP服务器查看服务器标识字段,以确定他自己是否被选择为指定的客户机提供的IP地址,如果DHCP OFFER被拒绝,则DHCP服务器会取消提供并保留其IP地址以作用于下一个IP租约请求。再客户机选择IP的过程中,虽然客户机选择了IP地址,还没有配置IP地址,而且一个网络中可能有几个DHCP服务器,所以客户机仍然使用0.0.0.0的地址作为源地址,255.255.255.255作为目标地址,使用UDP67端口作为目的端口来广播DHCP REQUEST消息
4 DHCP服务器确认租约:
服务器确认租约 DHCP ACK
服务器接收到DHCP REQUEST消息后,以DHCPACK的形式向客户机广播成功的确认,该消息包含有IP地址的有效租约和其他可能配置的信息。虽然服务器确认了客户机的租约请求,但是客户机还没有收到服务器DHCPACK的消息,所以服务器仍然使用自己的IP地址作为源地址,使用255.255.255.255作为目标地址,使用UDP68端口为源端口来广播DHCP ACK消息,当客户机收到DHCP ACK消息时,他就配置了IP地址
服务器拒绝租约:DHCP NAK
如果DHCP REQUEST不成功,例如客户机试图租约先前的IP地址,但该IP地址不可用,或者因为客户机迁移到其他子网,该IP地址无效时,DHCP服务器将广播否定确认消息DHCP NAK。当客户机接收到不成功的确认时,他将重新开始DHCP的过程
默认租约时间和最大租约时间
默认租约作用:定义默认IP 租约时间,以秒为单位的租约时间。
50%:续约。(续不上继续用)
87.5%:再次续约。(续不上找别人)
DHCP工作站除了在开机的时候发出 DHCPrequest 请求之外,在租约期限一半的时候也会发出 DHCPrequest ,如果此时得不到 DHCP服务器的确认的话,工作站还可以继续使用该IP;当租约期过了87.5%时,如果客户机仍然无法与当初的DHCP服务器联系上,它将与其它 DHCP服务器通信。如果网络上再没有任何DHCP协议服务器在运行时,该客户机必须停止使用该IP地址,并从发送一个Dhcpdiscover数据包开 始,再一次重复整个过程。
最大租约:作用:定义客户端IP租约时间的最大值,当客户端超过租约时间,却尚未更新IP 时,最长可以使用该IP 的时间;
例:
比如,机器在开机获得IP地址后,然后关机了。这时,当时间过了default-lease-time 600秒后,没有机器向DHCP续约,DHCP会保留7200秒,保留此IP地址不用于分配给其它机器。 当超过7200秒后,将不再保留此IP地址给此机器。
续租过程
DHCP客户机会在租期过去50%的时候,直接想起提供IP地址的DHCP服务器发送DHCP REQUEST消息包。如果客户机接收到该服务器回应的DHCP ACK消息包,客户机将会更新的TCP/IP参数,更新自己的配置,IP租用更新完成。如果没有收到该服务器的回复,则客户机继续使用现有的IP地址,因为当前租期还有50%
如果在租期过去50%的时候还没有更新,则DHCP客户机将在租期过去87.5%的时候再次向为其提供的DHCP服务器练习。如果还不成功,到租约100%的时候,DHCP客户机必须放弃这个IP地址,重新申请。如果此时无DHCP服务器可用,DHCP客户机会使用168.254.0.0/16中随记的一个地址,并每隔五分钟在进行尝试
过程梳理
为了便于理解,我们把DHCP客户机比做餐馆里的客人,DHCP服务器工作原理当中,服务器比做服务员(一个餐馆里也可以有多个服务员),IP地址比做客户需要的食物。那么可以这样描述整个过程:一个非常饥饿的客人走进餐馆,问:“有没有服务员啊?”(DHCP discover),多个服务员同时回答:“有,我这有汉堡”“有,我这有鸡翅”(DHCP offer)。客人说:“我要一份汉堡”(DHCP request,这个客人饿的不行,第一次听到的食物就直接选定了),端着汉堡的服务员回应了一声:“来啦”(DHCP ack),并把食物端到客人面前,供其享用(将网卡和IP地址绑定)。客人下次来的时候,就直接找上次那个服务员点自己喜欢的汉堡了(DHCP request),如果还有汉堡,服务员会再次确认并上菜(DHCP ack),而如果已经卖完了,服务员则会告诉客人:“不好意思,已经卖完了”(DHCP nack)。当然,服务员隔一段时间会来收拾一次桌子,除非客人特别说明这菜还要继续吃的,服务员会将剩菜(已分配的IP)端走。
实验
基本IP分配实验
实验前准备:
iptables -L 防火墙
getenforce selinux状态
hostname -I 查看IP
关闭虚拟网络编辑器DHCP功能
yum -y install dhcp
cd /etc/dhcpcat dhcpd.conf
意思是你去看一下 /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example这个模板来覆盖我
cp -a /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
systemctl enable dhcpd 设置开机自启动
vim /etc/dhcp/dhcpd.conf
配置文件下的内容参数
相关参数
subnet 可分配的IP网段范围作用域
netmask 子网掩码
range:可分配给客户端的IP范围
host 通过host指定某个客户端使用特定的IP
租约:客户端可以使用IP的时间
具体操作
subnet 192.168.1.0 指定1.0网段的会被分配(需要和本本机网卡网段相同,分配其他网段的IP需要再装一块网卡)(必须填写)
netmask 255.255.255.0 子网掩码(必须填写)
range 192.168.1.20 192.168.1.30 指定地址池范围(必须填写)
option routers 192.168.1.2 为客户端指定默认网关为1.2
option domain-name lijiahao 为客户端指定默认的域名
option domain-name-serves 192.168.1.10 为客户端指定DNS服务器地址
option broadcast-address 192.168.1.255 广播地址
default-lease-time 600 默认租赁期限(必须填写)
max-lease-time 7200 最大租赁期限(必须填写)
由此可知:最低限制配置:地址池、网段、掩码、租期:
客户端增加一块网卡,配IP地址(centos7: vi /etc/sysconfig/network-scripts/ifcfg/ens33)
注释掉IP
注释掉dns
注释掉网关
启动协议改成dhcp
ifdown 客户端网卡; ifup客户端网卡 查看客户端的IP、网段、 dns服务器地址、dhcp
查看服务器的日志文件tail /var/log/message
在服务端查看租赁的IP
route -n 查看路由网关
cat /var/lib/dhcpd/dhcpd.leases 查看租赁(服务端)
cat /etc/resolve.conf查看DNS服务器(客户端)
cat /etc/resolve.conf查看DNS服务器(客户端)
地址保留实验(继续)
服务端增加绑定配置信息
客户端查看服务端网卡配置
重启服务端服务
重启客户端网卡:ifdown ens33;ifup ens33
超级作用域实验
介绍:DHCP服务器可以为单个物理网络上的客户端提供多个作用域租约地址(可以分配其他网段的IP)
为dhcp服务器增加一个子接口,子接口为对应外网段主机的网段,就可以实现匹配,sysctl -p开启
实验流程
实验环境
三台虚拟机同一网络模式,一个DHCP服务器,两个客户机
DHCP中继
思路
配置设备
DHCP服务器使用192.168.1.13网卡,网关192.168.1.2,net模式
DHCP中继器
网卡1:使用网卡192.168.1.2,net模式
网卡2:使用网卡192.168.10.10,用于分配192.168.10.0/24网段,网卡使用vmnet1仅主机模式
网卡2:使用网卡192.168.2010,用于分配192.168.20.0/24网段,网卡使用vmnet2仅主机模式
客户机1
加入一块vmnet1网卡,分配时寻找中继器网卡一
客户机2
加入一块vmnet2网卡,分配时寻找中继器网卡二
配置网卡信息
DHCP服务器网卡信息(全信息)
中继器网卡信息(7行)
中继器有三块网卡,根据ifconfig来配置新网卡信息
网卡1
网卡2
网卡3
检查
客户机(5行)
客户机1
客户机2
客户机不需要IP和子网掩码,只需要将开启协议修改成dhcp即可
服务配置
dhcp服务器
dchp服务器下载服务 yum -y install dhcp
使用“:r 文件路径方式导入example”
修改部分
开启DHCP服务 systemctl start dhcpd
中继器
下载dhcp yum -y install dhcp
查看内核转发配置
sysctl -a | grep ip_forward
开启ip转发写入到内核配置文件中
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p 检查是否开启
开启转发服务
dhcrealy 192.168.1.13
测试
重启客户端网卡 ifdown ens33 ; ifup ens33
即可看到被新配置了IP
发布者:LJH,转发请注明出处:https://www.ljh.cool/5748.html