RHCE-DHCP

概念:动态主机配置协议是一个局域网的网络协议,通过客户端发送广播数据包给整个物理网段内的所有主机。若局域网中有DHCP服务器时,才会响应客户端的IP参数要求。也就是动态分配地址

协议:UDP

端口:67–server 68–client

条件:一个真实物理网卡,一个合理的IP地址

建立原理:

1、首先,客户端向DHCP服务器发送一个DHCPdiscover的报文(广播发送,可以理解为海投简历)
2、服务器端对客户端回应DHCPoffer (单播回应,可以理解为企业提供offer)
3、客户端向服务器发送DHCPrequest(广播发送,可以理解为告诉那些收到我的简历的企业,我不去你们那里)
4、服务器端向客户端回复一个DHCPack(单播回应,可以理解为企业与求职者的确认关系)

地址分配方式:自动分配,动态分配,手动分配

总结:

(1)客户端:利用广播数据包发送搜索DHCP服务器
若客户端网络设置使用DHCP协议取得IP,则当客户端开机或者是重新启动网卡时,客户端主机会发送出查找DHCP服务器的UDP数据包(discover)给所有物理网段内的计算机。因为客户端还不知道自己属于哪一个网络,所以该数据包的来源地址会为0.0.0.0,而目的地址则为255.255.255.255。一般主机接收到这个数据包之后会直接丢弃,若局域网内有DHCP服务器,则会开始后续行为。
(2)服务器端:提供客户端网络相关的租约以供选择。(DHCP Offer)
DHCP服务器在监听到客户端发出的dhcp discover广播后,会针对这个客户端的硬件地址( MAC)与本身的设置数据进行下列工作:
到服务器的日志文件中查找该用户之前是否曾经租用过某个IP,若有且该IP目前无人使用,则提供此IP给客户端。
若配置文件针对该MAC地址提供特定的固定IP时,则提供该固定的IP给客户端。
若不符合上述两个条件,则随机选取当前没有被使用的IP参数给客户端,并记录下来。
(3)客户端:决定选择DHCP服务器提供的网络参数租约并向服务器确认。
由于局域网内可能并非仅有一台DHCP服务器,但客户端仅能接收一组网络参数租约,因此客户端只会挑选其中一个DHCP offer(通常是最先抵达的那个)。当决定好使用此服务器的网络参数租约后,客户端便开始使用这组网络参数来配置自己的网络环境。此外,客户端会发送一个dhcp request广播数据包给所有物理网段内的主机,告知已经接受该服务器的租约(此时若有两台以上的DHCP服务器,则这些没有被接受的服务器会收回该IP租约)。同时,客户端还会向网络发送一个ARP封包(免费ARP),查询网络上面有没有其他机器使用该IP地址;如果发现该IP地址已经被占用,客户端则会送出一个DHCPDECLIENT包给DHCP服务器,拒绝接受其DHCP offer,并重新发送DHCP discover信息。
(4)服务器端:记录该次租约行为后并向客户端发送响应数据包信息以确认客户端的使用。
当服务器端收到客户端的确认选择后,服务器会回送确认的dhcp ack响应数据包,并且告知客户端这个网络参数租约的期限,并且开始租约计时。那么该次租约何时会到期而被解约,有以下几种情况:
客户端脱机:关闭网络接口、重新启动、关机等行为,都算是脱机状态,这个时候server端就会将该IP地址收回,并放到server的备用区中,以便日后使用。
客户端租约到期:dhcp server端发放的IP有使用的期限,客户端使用这个IP到达期限规定的时间,而且没有重新提出DHCP的申请时,server端就会将该IP收回,这个时候就会断线。但用户也可以向DHCP服务器再次要求分配IP。
​ 由于目前的DHCP客户端程序大多数会主动依据租约时间去重新申请IP,所以即使有租约期限,也不需要在某个时间点手动去重新申请IP。一般情况下,假设租约时间是T小时,那么客户端程序在0.5T时会主动向DHCP服务器发出重新要求网络参数的数据包。如果这次数据包请求没有成功,那么在0.875T后还会再次发送数据包一次。
正因如此,所以服务器端会启动port67监听客户端请求,而客户端会启动port68主动向服务器请求。

配置与搭建

模板配置文件

/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample

主配置文件

/etc/dhcp/dhcpd.conf

在配置文件中内容的解释

subnet192.168.10.0 netmask 255.255.255.0 {	#声明要分配的网段和子网掩码
range 192.168.10.3 192.168.10.254;			#声明可用IP地址池
option domain-name "xxxx.com";			#设置DNS域
option domain-name-servers 8.8.8.8 ;		#设置DNS服务器地址
option routers 192.168.10.2;				#默认网关的地址
option broadcast-address 192.168.10.255;	#广播地址(可不写)
default-lease-time 600;						#默认租约(s)
max-lease-time 7200;						#最大租约(s)
}

实验环境:两台linux主机S/C(网络模式为仅主机模式,用到的网卡是自定义VM10)

1.关闭linux自带DHCP功能,防火墙,selinux
在这里插入图片描述

2.安装软件

[root@localhost ~]# yum install dhcp-server -y

3、修改主配置文件中的内容;删除或注释掉其他不需要的subnet,配置需要的subnet
在这里插入图片描述

4.重启服务

systemctl restart dhcpd

5.进入linux交互界面dhclient即可获取动态ip

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李昕泽不是程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值