动态主机配置协议(DHCP)
一、动态主机配置协议(DHCP)
用人工对主机进行IP地址等协议配置很不方便,而且容易出错。因此,应当采用自动协议配置的方法。
动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)又称动态主机组态协定,是 RFC 1541(已被 RFC 2131 取代)定义的标准协议。是一个用于IP网络的网络管理协议,它提供了一种插即用连网(plug-and-play networking)的机制,这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许 地址重用 ,支持 移动用户加入网络 ,支持在用地址续租。
DHCP位于OSI模型的应用层,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,使用UDP协议工作。
主要有两个用途:
- 用于内部网或网络服务供应商的服务器对用户客户端动态分配 IP 地址和配置信息。
- 用于内部网管理员对所有电脑作中央管理
二、DHCP的工作原理
1. DHCP的工作原理
需要地址的主机在启动时就向 DHCP服务器广播发送发现报文(DHCPDISCOVER),这时该主机就成为DHCP客户。本地网络上所有主机都能收到此广播报文,但只有 DHCP服务器才回答此广播报文。DHCP服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的正地址池中取一个地址分配给该计算机。DHCP服务器的回答报文称为提供报文(DHCPOFFER)。
2. DHCP 中继代理(Relay Agent)
但是在每一个网络上都设置一个DHCP服务器是不合理的,因为这样会使DHCP服务器的数量太多。因此现在是使每一个网络至少有一个DHCP 中继代理(Relay Agent) (通常是一台路由器),它配置了DHCP服务器的IP地址信息。当 DHCP 中继代理收到主机 A 以广播形式发送的发现报文后,就以单播方式向 DHCP服务器转发此报文,并等待其回答。收到 DHCP服务器回答的提供报文后,DHCP中继代理再把此提供报文发回给主机 A。
3. DHCP租用期(Lease Period)
DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间内使用这个分配到的IP地址。DHCP协议称这段时间为租用期(Lease Period),但并没有具体规定租用期应取为多长或至少为多长,这个数值应由DHCP服务器自己决定。例如,一个校园网的DHCP服务器可将租用期设定为1小时。DHCP服务器在给DHCP发送的提供报文的选项中给出租用期的数值。按照RFC 2132的规定,租用期用4字节的二进制数字表示,单位是秒。因此可供选择的租用期范围从1秒到136年。DHCP客户也可在自己发送的报文中(例如,发现报文)提出对租用期的要求。
4. DHCP具体步骤
DHCP 客户端进程监听的是 68 端口号,DHCP 服务端进程监听的是 67 端口号。
DHCP具体步骤如下:
- 客户端首先发起 DHCP 发现报文(DHCP DISCOVER) 的 IP 数据报,由于客户端没有 IP 地址,也不知道 DHCP 服务器的地址,所以使用的是 UDP 广播通信,其使用的广播目的地址是 255.255.255.255(端口 67) 并且使用 0.0.0.0(端口 68) 作为源 IP 地址。
- DHCP 客户端将该 IP 数据报传递给链路层,链路层然后将帧广播到所有的网络中设备。 DHCP 服务器收到 DHCP 发现报文时,用 DHCP 提供报文(DHCP OFFER) 向客户端做出响应。该报文仍然使用 IP 广播地址 255.255.255.255,该报文信息携带服务器提供可租约的 IP 地址、子网掩码、默认网关、DNS 服务器以及 IP 地址租用期。
- 客户端收到一个或多个服务器的 DHCP 提供报文后,从中选择一个服务器,并向选中的服务器发送 DHCP 请求报文(DHCP REQUEST进行响应,回显配置的参数。
- 最后,服务端用 DHCP ACK 报文对 DHCP 请求报文进行响应,应答所要求的参数。 一旦客户端收到 DHCP ACK 后,交互便完成了,并且客户端能够在租用期内使用 DHCP 服务器分配的 IP 地址。