动态主机配置协议DHCP(Dynamic Host Configuration Protocol)集中用户的网络管理协议IP动态管理和配置地址。
DHCP其前身是1993年10月的标准协议BOOTP协议。DHCP协议由RFC 2131采用客户端/服务器通信模式定义(DHCP Client)向服务器(DHCP Server)提出配置申请,DHCP Server动态分配网络上的每个设备IP域名服务器(DNS)地址等相关配置参数可与其他相关配置IP网络通信。
在IP在网络中,每个连接Internet所有设备都需要分配唯一的设备IP地址。DHCP网络管理员可以从中心监控和分配IP地址。当计算机移动到网络的其他位置时,它可以自动收到新的IP地址。DHCP实现自动分配IP地址不仅减少了设备配置和部署的时间,而且减少了配置错误的可能性。另外DHCP服务器可以管理多个网段的配置信息。当某个网段的配置发生变化时,管理员只需更新DHCP服务器上的相关配置可以实现集中管理。
总体来看,DHCP以下优点:
准确的IP配置:IP处理地址配置参数必须准确 192.168.XXX.XXX输入时容易出错。此外,印刷错误通常很难解决,使用DHCP服务器可以最大限度地降低这种风险。减少IP地址冲突:每个连接设备必须有一个IP地址。然而,每个地址只能使用一次,重复的地址会导致一两个设备之间的冲突。这种情况可能发生在手动分配地址时,特别是在有大量只定期连接的端点(如移动设备)时。DHCP确保每个地址只使用一次。IP地址管理自动化:如果没有DHCP,网络管理员需要手动分配和取消地址。跟踪哪个设备有什么地址可能是徒劳的,因为很难理解设备何时需要访问和离开网络。DHCP允许自动化和集中化,因此网络专业人员可以从一个位置管理所有位置。高效变更管理:DHCP更改地址的使用,范围或端点变得非常简单。例如,组织可能希望这样做IP从一个范围到另一个范围另一个范围。DHCP服务器配置新信息,将信息传输到新的端点。同样,如果网络设备升级更换,则不需要网络配置。DHCP怎样工作?DHCP协议采用UDP作为传输协议,DHCP客户端发送请求消息DHCP服务器68号端口,DHCP服务器回应响应信息DHCP客户端67号端口。
只有跟DHCP客户端在同一网段DHCP只有服务器才能收到DHCP客户端广播DHCP DISCOVER报文。当DHCP客户端与DHCP当服务器不在同一网段时,必须部署DHCP中继来转发DHCP客户端和DHCP服务器之间DHCP报文。在DHCP从客户端的角度来看,DHCP中继就像DHCP服务器;在DHCP在服务器看来,DHCP中继就像DHCP客户端。
无中继场景DHCP客户端首次接入网络的工作原理
如下图所示,未部署DHCP在中继场景下,第一次访问网络DHCP客户端与DHCP服务器的报文交互过程称为DHCP四步交互。
无中继场景DHCP客户端首次访问网络的报纸交互示意图
第一步:发现阶段
第一次接入网络DHCP客户端不知道DHCP服务器的IP地址,为了学习DHCP服务器的IP地址,DHCP客户端通过广播发送DHCP DISCOVER报文(目的IP地址为255.255.255.255)给同一网段的所有设备(包括DHCP服务器或中继)。DHCP DISCOVER客户端携带在报文中的报文中。MAC地址(chaddr字段)、要求的参数列表选项(Option55),广播标志位(flags字段)等信息。
第二步:提供阶段
与DHCP位于同一网段的客户端DHCP接收服务器DHCP DISCOVER报文,DHCP服务器选择后续接收DHCP DISCOVER报文接口的IP地址位于同一网段的地址池中,并从中选择可用的地址池IP地址,然后通过DHCP OFFER报文发送给DHCP客户端。
通常,DHCP在服务器的地址池中指定IP如果DHCP客户端发送DHCP DISCOVER该报纸携带预期租赁期限,服务器将客户端要求的预期租赁期限与指定租赁期限进行比较,并选择短期租赁期限分配给客户端。
DHCP服务器在地址池中分配给客户IP地址顺序如下:
DHCP配置在服务器上的客户端MAC静态绑定地址IP地址。DHCP服务器在地址池中分配给客户IP地址顺序如下:DHCP配置在服务器上的客户端MAC静态绑定地址IP地址。客户端发送DHCP DISCOVER报文中Option50(请求IP指定地址。查找地址池查找地址池Expired”状态的IP地址,即已分配给客户的超过租期的地址IP地址。在地址池中随机搜索Idle”状态的IP地址。如果没有找到可供分配的IP地址,地址池自动回收超过租期(Expired状态)和冲突状态(Conflict”状态)的IP地址。如果在回收后找到可用的IP分配地址;否则,DHCP客户端等待响应超时后再发送DHCP DISCOVER报文来申请IP地址。
设备支持在地址池中排除一些不能通过的设备DHCP分配机制IP地址。比如客户端所在的网段已经手工配置了地址192.168.1.100/24的DNS服务器,DHCP服务器上配置的网段为192.168.1.1922.168.1.100的IP排除地址,不能通过DHCP分配这个地址,否则会造成地址冲突。为防止分配IP网络中其他客户端的地址和地址IP地址冲突,DHCP发送服务器DHCP OFFER报文前,通过发送源地址DHCP服务器IP预分配地址和目的地址IP地址的ICMP ECHO REQUEST报文分配IP地址冲突探测。如果您在指定时间内未收到响应报告,则表示网络中没有客户端使用此报告IP地址可分配给客户端;如果您在指定时间内收到响应报告,则表示该报告已在网络中使用IP地址的客户端将地址列为冲突地址,然后等待重新接收DHCP DISCOVER报文结束后,根据前面介绍的选择IP重新选择可用的地址优先顺序IP地址。此阶段DHCP服务器分配给客户端IP地址不一定是最终确定的IP地址,因为DHCP OFFER如果在16秒后没有收到客户端的响应,该地址可以继续分配给其他客户端。客户端可以通过以下选择阶段和确认阶段最终确定IP地址。第三步:选择阶段如果有多个DHCP服务器向DHCP客户端回应DHCP OFFER报文,则DHCP客户端一般只收到第一个收到的DHCP OFFER然后通过广播发送报文DHCP REQUEST报文,本报包含客户想要选择的客户端DHCP服务器标识符(即Option54)和客户端IP地址(即Option填充接收DHCP OFFER报文中yiaddr字段的IP地址)。DHCP客户端广播发送DHCP REQUEST报文通知全部DHCP它将选择服务器DHCP提供服务器IP地址,其他DHCP服务器可以重新分配给客户端IP地址分配给其他客户端。第四步:确认阶段当DHCP服务器收到DHCP客户端发送DHCP REQUEST报文后,DHCP服务器回应DHCP ACK报文,表示DHCP REQUEST报文中的请求IP地址(Option50填充)分配给客户端。DHCP客户端收到DHCP ACK免费发送报纸和广播ARP探测本网段是否有其他终端使用服务器分配IP如果地址在指定时间内未收到回应,则表示客户可以使用该地址。如果收到回应,则表示其他终端使用该地址,客户端将向服务器发送DHCP DECLINE向服务器申请报文并重新要求IP同时,服务器将该地址列为冲突地址。如果收到回应,则表示其他终端使用该地址,客户端将向服务器发送DHCP DECLINE向服务器申请报文并重新要求IP同时,服务器将该地址列为冲突地址。当服务器没有空闲地址时,选择冲突地址进行分配,以减少分配的地址冲突。当DHCP服务器收到DHCP客户端发送DHCP REQUEST报文后,如果DHCP由于某些原因(如协商错误或发送)REQUEST服务器太慢,无法将地址分配给其他客户端DHCP REQUEST报文中Option50填充的IP地址,则发送DHCP NAK报文作为回应,通知DHCP客户无法分配此IP地址。DHCP客户端需要重新发送DHCP DISCOVER申请新的IP地址。
当有中继场景时DHCP客户端首次接入网络的工作原理
有DHCP在中继场景中,第一次接入网络DHCP客户端和DHCP工作原理及服务器无中继场景DHCP客户端首次接入网络的工作原理
相同。主要差异是DHCP中继在DHCP服务器和DHCP转发到客户端之间DHCP保证报文DHCP服务器和DHCP客户端可以正常交互。主要差异是DHCP中继在DHCP服务器和DHCP转发到客户端之间DHCP保证报文DHCP服务器和DHCP客户端可以正常交互。以下仅适用于DHCP介绍中继的工作原理。部署如下图所示DHCP在中继场景下,第一次访问网络DHCP客户端与DHCP服务器的报文交互过程。
当有中继场景时DHCP客户端首次访问网络的报纸交互示意图
检查DHCP报文中的hops如果字段大于16,则丢弃DHCP报文;否则,将hops字段加1(表示一次DHCP继续以下操作。检查DHCP报文中的giaddr字段。检查DHCP报文中的giaddr字段。假如是0,将giaddr接收设置为字段DHCP DISCOVER报文的接口IP地址。若不是0,则不修改字段,继续以下操作。将DHCP报文的目的IP地址改为DHCP服务器或下一跳中继IP通过路由转发,将源地址改为中继连接客户端的接口地址DHCP发送报文单DHCP服务器或下一跳中继。
如果DHCP客户端与DHCP服务器之间有很多DHCP接收中继,接收后续中继DHCP DISCOVER报文的处理流程与上述相同。第二步:提供阶段DHCP接收服务器DHCP DISCOVER报文后,选择和报文giaddr字段为同一网段的地址池,并为客户分配IP地址等参数,然后向giaddr字段标识的DHCP中继单播发送DHCP OFFER报文。DHCP中继收到DHCP OFFER报文后,将进行以下处理:检查报文中的内容giaddr字段,如果不是接口地址,则丢弃报纸;否则,继续以下操作。DHCP中继检查报纸广播标志位。如果广播标志是1,它将是1DHCP OFFER报文广播发送给DHCP客户端;否则会DHCP OFFER发送报文单DHCP客户端。
第三步:选择阶段中继从客户端接收中继。DHCP REQUEST报纸的处理过程与无中继场景的选择阶段相同。第四步:确认阶段接收服务器的中继接收到服务器DHCP ACK报纸的处理过程与无中继场景下的确认阶段相同。
DHCP客户端重用曾经使用过的地址的工作原理
DHCP当客户端不是第一次访问网络时,可以重用曾经使用过的地址。如下图所示,DHCP客户端与DHCP服务器交互DHCP以重新获取以前使用的报纸IP网络参数,如地址,称为两步交互。
DHCP客户端重用曾经使用过的客户端重用IP地址的报文交互过程