结合网络与服务器来讲一下什么是DHCP

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

对DHCP的基本的解释:dhcp协议是一个应用层网络协议,使用UDP协议工作, 通常被应用在大型的局域网络环境中,他出现的原因是由于在大型的网络当中对ip地址的需求是比较大的,如果不对这么多的ip地址进行合理的规划和管理,这样对ip地址就极有可能造成很大的浪费,所以dhcp主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率(因为可以动态分配IP)。

能够提供DHCP服务的设备需要的条件:
1.拥有真实的物理网卡,或者连接广播的真实物理网卡
2.该接口或者该物理网卡必须有一个合理的ip地址
在这里插入图片描述DHCP的工作过程
Discovery
数据包构造完成后,就可以发出了。以太网是广播发送,同一个子网络的每台计算机都收到了这个包。因为接收方的 MAC 地址是 FF-FF-FF-FF-FF-FF,看不出是发给谁的,所以每台收到这个包的计算机,还必须分析这个包的 IP 地址,才能确定是不是发过自己的。
Offer
当看到发出方 IP 地址是0.0.0.0,接收方是 255.255.255.255,于是 DHCP 服务器知道"这个包是发过我的",而其他计算机就可以丢弃这个包。接下来,DHCP 服务器读出这个包的数据内容,分配好 IP 地址,发送回去一个"DHCP 响应"数据包。这个响应包的结构也是类似的,以太网标头的 MAC 地址是双方的网卡地址,IP 标头的 IP 地址是 DHCP 服务器的 IP 地址(发出方)和 255.255.255.255(接收方),UDP 标头的端口是 67(发出方)和 68(接收方),分配给请求端的 IP 地址和本网络的具体参数则包含在 Data 部分。
Request
新加入的计算机收到这个响应包,于是就知道了自己的 IP 地址、子网掩码、网关地址、DNS 服务器等等参数。然后回应服务器
ACK 
服务器确认刚刚分配的这个IP还有效(因为IP分配使动态的,所以需要确认有效性,以有效利用IP资源)

以上也就是dhcp在大众意义上最重要的四个报文;

对于DHCP数据包的一些补充
DHCP NAK:如果dhcp服务器收到了request报文后,没有发现有享用的租约记录或者由于某些原因无法正常ip分配,则发送nak报文作为回应,告诉用户无法分配给合适的ip地址。
DHCP RELEASE:当用户不再需要使用分配ip地址时,就会主动向dhcp服务器端发送release报文,告知服务器用户不再幸需要分配IP,dhcp服务器就会释放被绑定的租约记录,这样这个ip就能被分配给下一个请求租约的mac
DHCP DECLINE:dhcp客户端收到dhcp服务器回应的ack报文后,通过地址冲突检测发现服务器分配的地址冲突,或者由于其他原因导致不能使用,则发送decline报文,通知服务器所分配的ip地址不可用。我们在手工配置静态ip或者dhcp分配中随时会遇到“检测到ip冲突”的提示就是因为客户端利用arp机制在当前内网中确认当前指定的ip是否已经被占用。
DHCP INFORM:dhcp客户端如果需要知道关于ip更为详细的配置信息,会发送inform报文向服务器进行请求,服务器收到后,将根据租约进行查找,找到相应的配置信息后发送ack报文回应dhcp客户端。
在最新版的rfc文档中还介绍了其他的几种dhcp报文。感兴趣的可以去查阅一下rfc文档。

DHCP的租期时间问题
在使用租期超过50%时刻处,DHCP Client会以单播形式向DHCP Server发送DHCPRequest报文来续租IP地址。如果DHCP Client成功收到DHCP Server发送的DHCP ACK报文,则按相应时间延长IP地址租期;如果没有收到DHCP Server发送的DHCP ACK报文,则DHCP Client继续使用这个IP地址。
在使用租期超过87.5%时刻处,DHCP Client会以广播形式向DHCP Server发送DHCPRequest报文来续租IP地址。如果DHCP Client成功收到DHCP Server发送的DHCP ACK报文,则按相应时间延长IP地址租期;如果没有收到DHCP Server发送的DHCP ACK报文,则DHCP Client继续使用这个IP地址,直到IP地址使用租期到期时,DHCP Client才会向DHCP Server发送DHCP Release报文来释放这个IP地址,并开始新的IP地址申请过程。
需要说明的是:DHCP客户端可以接收到多个DHCP服务器的DHCPOFFER数据包,然后可能接受任何一个DHCPOFFER数据包,但客户端通常只接受收到的第一个DHCPOFFER数据包。另外,DHCP服务器DHCPOFFER中指定[1] 的地址不一定为最终分配的地址,通常情况下,DHCP服务器会保留该地址直到客户端发出正式请求。
正式请求DHCP服务器分配地址DHCPREQUEST采用广播包,是为了让其它所有发送DHCPOFFER数据包的DHCP服务器也能够接收到该数据包,然后释放已经OFFER(预分配)给客户端的IP地址。
如果发送给DHCP客户端的地址已经被其他DHCP客户端使用,客户端会向服务器发送DHCPDECLINE信息包拒绝接受已经分配的地址信息。
在协商过程中,如果DHCP客户端发送的REQUEST消息中的地址信息不正确,如客户端已经迁移到新的子网或者租约已经过期,DHCP服务器会发送DHCPNAK消息给DHCP客户 端,让客户端重新发起地址请求过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值