DHCP(Dynamic Host Configuration Protocol,动态主机配置协议 )通常被应用在大型的局域网络环境中,主要作用是集中地管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率
典型组网
DHCP典型组网如图1所示。
图1 DHCP典型组网图
DHCP组网中,包括以下三种角色:
-
DHCP服务器
DHCP服务器负责从地址池中选择IP地址分配至DHCP客户端,还可以为DHCP客户端提供其他网络参数,如默认网关地址、DNS服务器地址和WINS服务器地址。
· DHCP客户端
DHCP客户端发送DHCP请求报文、通过DHCP协议请求获取IP地址等网络参数的设备。例如,IP电话、PC、手机等。
· DHCP中继
DHCP中继负责转发DHCP服务器和DHCP客户端之间的DHCP报文,协助DHCP服务器向DHCP客户端动态分配网络参数的设备。
DHCP客户端广播发送请求报文,如果DHCP客户端和DHCP服务器不在同一个网段,DHCP服务器无法接收来自客户端的请求报文,此时,需要通过DHCP中继来转发DHCP报文。
租期
DHCP服务器给每个分配给客户端的IP地址定义一个使用期限,该使用期限被称为租期。在租期到期前,DHCP客户端如果仍需要使用该IP地址,可以请求延长租期;如果不需要,可以主动释放该IP地址。在没有其他空闲地址可用的情况下,DHCP服务器会把客户端主动释放的IP地址分配给其他客户端。
地址池
地址池指的是DHCP服务器可以为客户端分配的所有IP地址的集合。除IP地址外,地址池内还可以配置租期、子网掩码、默认网关等网络参数。在DHCP服务器为客户端分配IP地址时,这些网络参数也一并分配给客户端。
表1 DHCP地址池状态表
状态 | 说明 |
Used | 表示此IP地址已使用 |
Idle | 表示此IP地址处于空闲状态 |
Static-bind | 表示此IP地址已绑定MAC地址且未使用 |
Static-bind used | 表示此IP地址与MAC地址绑定且已使用 |
Disable | 表示此IP地址无法使用 |
Expired | 表示此IP地址租期已过,处于空闲状态。当地址池中Idle状态的IP地址耗尽时,地址池会自动回收Expired状态的IP地址,然后分配给新用户,无需手动清理。 地址池内保留Expired状态IP地址的分配记录,目的是当用户重新关联请求IP地址时,分配原来使用过的IP地址给用户。 |
Conflict | 表示此IP地址与网络上其他地址冲突。当地址池中Idle状态和Expired状态的地址耗尽时,地址池会自动回收Conflict状态的IP地址,然后分配给新用户,无需手动清理。 以下两种情形会出现Conflict状态 1. DHCP服务器给客户端分配IP地址前会发送Ping探测,如果能Ping通则设置IP地址为Conflict状态,并选择其他IP地址分配给客户端。 2. DHCP客户端获取IP地址成功后,会立即发送免费ARP报文,如果收到响应,则通知DHCP服务器该IP地址冲突,DHCP服务器设置该IP地址为Conflict状态,客户端重新申请IP地址。 |
DHCP报文介绍
DHCP服务器与DHCP客户端之间通过DHCP报文进行通信。DHCP报文是基于UDP协议传输的。DHCP客户端向DHCP服务器发送报文时采用68端口号,DHCP服务器向DHCP客户端发送报文时采用67端口号。目前DHCP定义了如下八种类型报文。
表2 DHCP报文类型说明
报文名称 | 说明 |
DHCP DISCOVER | DHCP客户端首次登录网络时进行DHCP交互过程发送的第一个报文,用来寻找DHCP服务器。 |
DHCP OFFER | DHCP服务器用来响应DHCP DISCOVER报文,此报文携带了各种配置信息。 |
DHCP REQUEST | 此报文用于以下三种用途。 · 客户端初始化后,发送广播的DHCP REQUEST报文来回应服务器的DHCP OFFER报文。 · 客户端重启后,发送广播的DHCP REQUEST报文来确认先前被分配的IP地址等配置信息。 · 当客户端已经和某个IP地址绑定后,发送DHCP REQUEST单播或广播报文来更新IP地址的租约。 |
DHCP ACK | 服务器对客户端的DHCP REQUEST报文的确认响应报文,客户端收到此报文后,才真正获得了IP地址和相关的配置信息。 |
DHCP NAK | 服务器对客户端的DHCP REQUEST报文的拒绝响应报文,例如DHCP服务器收到DHCP REQUEST报文后,没有找到相应的租约记录,则发送DHCP NAK报文作为应答,告知DHCP客户端无法分配合适IP地址。 |
DHCP DECLINE | 当客户端发现服务器分配给它的IP地址发生冲突时会通过发送此报文来通知服务器,并且会重新向服务器申请地址。 |
DHCP RELEASE | 客户端可通过发送此报文主动释放服务器分配给它的IP地址,当服务器收到此报文后,可将这个IP地址分配给其它的客户端。 |
DHCP INFORM | DHCP客户端获取IP地址后,如果需要向DHCP服务器获取更为详细的配置信息(网关地址、DNS服务器地址),则向DHCP服务器发送DHCP INFORM请求报文。 |