DHCP协议详细解析

一、DHCP定义

DHCP(动态主机配置协议):是一个应用层的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。

DHCP前身是BOOTP,在Linux的网卡配置中也能看到显示的是BOOTP,DHCP引进一个bootp没有的概念:租约。bootp分配的地址是永久的而dhcp分配的地址是可以有期限的

DHCP分为二个部分:一个服务器端,另一个是客户端(通常为网络中的PC、打印机等终端设备)。

二、DHCP作用及特点

1、DHCP可以自动分配IP、子网掩码、网关、DNS。

2、DHCP客户端使用的端口是68,服务端端口是67,使用的UDP应用层的协议。

3、DHCP一般不为服务器分配IP,因为它们要使用固定IP,所以DHCP一般只为办公环境的主机分配IP

4、DHCP服务器和客户端需要在一个局域网内,在为客户端分配IP的时候需要进行多次广播,但DHCP也可以为其它网段内的主机分配IP,只要连接二个网段中间的路由器能转发DHCP配置请求即可,但这要求路由器配置中继功能。

三、DHCP服务器IP分配三种方式

1、自动分配方式,DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址,

2、动态分配方式,DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。

3、手工分配方式,客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机

第三种是最常见的使用形式,地址的有效使用时间段称为租约期,租约期满之前,客户端必须向服务器请求继续租用。服务器接受请求后才能继续使用,否则无条件放弃。

四、DHCP中继

默认情况下,路由器隔离官博包,不会将接收到的广播包从一个子网发送到另外一个子网。当DHCP服务器和客户端不在同一个子网时,充当客户端默认网关的路由器将广播包发送到DHCP所在的子网,这一功能就称为DHCP中继。

DHCP中继代理,就是在DHCP服务器和客户端之间转发DHCP数据包。当DHCP客户端于服务器端不在同一个子网上,就必须有DHCP中继代理DHCP请求和应答消息,DHCP中继代理的数据的数据转发,与通常路由器转发不同的,通常的路由转发相对来说是透明传输的,设备一般不会修改IP包内容,而DHCP中继代理接收到DHCP消息后,重新生成一个DHCP消息,然后转发出去

DHCP中继主机必须自己具有路由能力,且双方的数据报互传对方。如果不使用中继,也可以在每个网络中安装DHCP服务器,但这样的话,一来设备成本会增加,而且管理上面也比较分散,当然,如果在大型网络中,这样的均衡式架构还是可取的。

 五、DHCP服务工作流程

第一步:搜索阶段

当DHCP客户端第一次登陆网络的时候,计算机发现本机上没有任何IP地址设定,将以广播方式发送DHCP discover发现信息来寻找DHCP服务器,即向255.255.255.255发送特定的广播信号,网络上每一台安装了TCP/IP协议的主机都会接收这个广播信息,但只有DHCP服务器才会做出响应。(dhcp discover)

第二步:提供阶段

在网络中接收到DHCP discover发现信息的DHCP服务器就会做出相应,它从尚未分配的IP地址池中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含分配的IP地址和其它设置的DHCP offer提供信息,因为此时客户端还没有IP,所以返回也是以广播的方式返回的。(dhcp offer)

第三步:选择阶段

DHCP客户端接受到DHCP offer提供信息之后,选择第一个接收到的提供信息,然后以广播的方式回答一个DHCP request请求信息,该信息包含向它所选定的DHCP服务器请求IP地址的内容。(DHCP REQUEST

第四步:确认阶段

当DHCP服务器收到DHCP客户端回答的DHCP request请求信息之后,便向DHCP客户端发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,确认租约,并指定租约时长。告诉DHCP客户端可以使用它提供的IP地址。然后,DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除了DHCP客户机选中的DHCP服务器外,其他的DHCP服务器将收回曾经提供的IP地址。(DHCP ACK)

 以后DHCP客户端每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时,则DHCP服务器给DHCP客户机回答一个DHCP nack否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。


DHCP续租

1、在使用租期过去50%时刻处, 客户端向服务器发送单播DHCP REQUEST报文续延租期。
2、如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。在使用租期过去**87.5%**时刻处,向服务器发送广播DHCP REQUEST报文续延租期。
3、如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。在使用租期到期时,客户端自动放弃使用这个IP地址,并开始新的DHCP过程。
 

猜你喜欢

转载自blog.csdn.net/weixin_60067160/article/details/125910146