DHCP是什么?
-
Dynamic Host configuration protocol:动态主机配置协议;向主机动态分配IP地址以及其他相关信息
-
采用C/S模式,服务器集中管理,客户端向服务器提出配置申请,服务器根据策略返回响应配置信息
-
DHCP采用UDP封装,服务器侦听的端口号67,客户端侦听端口号68
-
特点: 有即插即用,统一管理,使用效率高(IP地址租期管理),可跨网段实现(dhcp中继)的特点
-
组成: 一般由DHCP服务器,DHCP客户端,DHCP中继组成
DHCP 的工作流程,DHCP 服务器和 DHCP 客户端在同一个广播域的场景
-
(先回答四个报文交互,再回答冲突检测,分开答)
-
有四个阶段,分别为发现阶段,提供阶段,选择阶段和确认阶段
-
发现阶段:客户端寻找服务端阶段;广播方式发送DISCOVER报文
-
提供阶段:服务器提供IP地址阶段;DHCP 服务器收到消息后,会从地址池中取出一个IP 地址,然后先发送一个ARP 解析进行地址的冲突检测,如果没有回应,则以广播形式(有些操作系统则是以单播回应)回应一个Offer报文给客户端,该 Offer 报文携带服务器要为该客户端分配的IP 地址
-
选择阶段:DHCP客户端选择IP地址阶段;如果有多台DHCP服务器向该客户端发offer报文,客户端只接受第一个收到的offer包,然后广播发送REQUEST报文,该报文包含DHCP服务器在offer报文中分配的IP地址
-
确认阶段:DHCP服务器确认IP地址阶段;DHCP 服务器收到REQUEST报文后,最后广播回应(有些操作系统则是以单播回应)一个 ACK报文,确认分配该地址,并将该IP地址从 DHCP 地址池中移除;如果否则返回NAK,表明该地址不能分配
-
-
IP地址拒绝及释放
-
客户端收到ACK报文后会发送免费ARP报文再次进行地址的冲突检测,目的地址为DHCP服务器指定分配的IP地址;
-
如果该地址没有被使用,客户端会使用该地址配置完毕
-
如果探测到被分配使用,客户端发送Decline报文,表明拒绝该地址,重新开始DHCP
-
-
当客户端选择放弃IP地址或租期时,向服务器发送DHCP Release报文
-
-
DHCP 服务器是如何区分不同的 DHCP 客户端
-
客户端向服务端发送请求时,会在数据报的CHADDR字段中填入自己的硬件地址(MAC地址),DHCP 服务器接收到请求后,会记录下该请求对应的 MAC 地址,并在后续为该客户端分配 IP 地址等网络配置信息时,将这些配置与该 MAC 地址绑定。当该客户端再次请求网络配置更新或续租时,DHCP 服务器就可以通过 MAC 地址识别出是哪个客户端。
-
CHADDR 是 Client Hardware Address,即客户端的 MAC 地址
-
-
如果 DHCP 服务器上有多个地址池,是如何判断将哪个地址池的地址分配给客户端?
-
根据接收到 Discover 报文接口的 IP 地址来判断,会从与接收接口IP 地址同一个网段的地址池分配地址
-
-
主机已经拿到了地址,重新拔插后还是原来的地址吗?
-
主要取决于租约状态
-
租期内:重新连接后主机会发送 DHCP Request 报文,请求继续使用原来的 IP 地址。由于在租期内,DHCP 服务器会回应 DHCP ACK 报文,确认主机可以继续使用该 IP 地址
-
租期临近但未超期: 主机会向为其提供 IP 地址的 DHCP 服务器单播 DHCP Request 报文进行续租请求。如果此时服务器正常工作且该 IP 地址未被其他设备占用,服务器会回应 DHCP ACK 报文,批准续租
-
租期超期:若租约期限已过,主机没有成功续租(比如 DHCP 服务器故障等原因),那么在重新拔插网络连接线后,主机需要重新开始 DHCP 流程此时就不一定是原来的 IP 地址了;
-
DHCP Request 为什么还得是广播
-
当网络中存在多个 DHCP 服务器的情况下,通过发送广播报文可以告知网络中的 DHCP 服务器,该客户机使用哪个服务器提供的IP 地址。
-
除了通过 DHCP Request 表明要使用该地址之外,DHCP Request 还有什么作用
-
可以使用 DHCP Request 来执行续租
-
DHCP 服务器如何判断使用广播还是单播回复给客户端
-
主要根据 DHCP Discover 报文中的 bootp flags 字段。
-
如果 DHCP Discover 报文中 bootp fags =1 则服务器通过广播来和客户端交互。如果 bootp flags=0 则服务器通过单播来和客户端交互。
DHCP中继的作用
-
DHCP中继功能:客户端通过DHCP中继与其他子网中DHCP服务器通信获取IP地址
-
优点:优点:多个客户端使用一个DHCP服务器,方便集中管理,节省成本
DHCP 中继的工作原理,DHCP 服务器和 DHCP 客户端不在同一个广播域的场景
-
DHCP 服务器需要跨广播域分配IP地址时,需要在客户端的网关路由器上配置 DHCP 中继,开启中继后工作流程如下工作流程:
-
客户端发送Discover报文:客户端广播发送DHCP Discover报文,会被中继路由器收到(因为不知道服务器的具体地址,所以广播发送)
-
中继路由器转换并发送报文:中继路由器接收到客户端的 DHCP Discover 广播报文后,会将其转换成单播形式,单播发送给DHCP服务器。(在转换后的单播报文中,数据包的源地址是中继路由器去往 DHCP 服务器的出接口 IP 地址,数据包的目标地址则是 DHCP 服务器的 IP 地址)
其中DHCP Discover 包中的 Relay agent IP address(中继代理 IP 地址,也就是 giaddr)字段会被填充为中继路由器收到 DHCP Discover 报文的接口 IP 地址。(它用于告诉 DHCP 服务器客户端是在哪个子网发出的请求,以便 DHCP 服务器判断应该从哪个 DHCP 地址池中选取合适的 IP 地址进行分配。)同时附带上客户端的
-