局域网中手动配置静态IP地址任务繁琐,而且容易出错

定义

  • 动态主机配置协议
  • 用于为局域网中主机动态分配IP地址及相关信息
  • 采用客户端/服务器模式
  • 服务端端口UDP 67
  • 客户端端口UDP 68

    DHCP报文类型 描述

    1、DHCP Discover

    DHCP客户端请求地址时,并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内以广播方式发送请求报文,这个报文成为Discover报文,目的是发现网络中的DHCP服务器,所有收到Discover报文的DHCP服务器都会发送回应报文,DHCP客户端据此就可以知道网络中存在的DHCP服务器的位置。

    2、DHCP Offer

    DHCP服务器收到Discover报文后,就会在所配置的地址池中查找一个合适的ip地址,加上相应的租约期限和其他配置信息(网关,DNS服务器等),构造一个Offer报文,发送给客户,告知用户本服务器可以为其提供IP地址。(只是告诉client可以提供,是预分配,还需要client通过ARP检测该IP是否重复)

    3、DHCP Request

    DHCP客户端会收到很多Offer,所以必须在这些回应中选择一个。Client通常选择第一个回应Offer报文的服务器作为自己的目标服务器,并回应一个广播Request报文,通告选择的服务器。DHCP客户端成功获取IP地址后,在地址使用租期过去1/2时,会向DHCP服务器发送单播Request报文续延租期,如果没有收到DHCP ACK报文,在租期过去3/4时,发送广播Request报文续延租期。

    4、DHCP ACK

    DHCP服务器收到Request报文后,根据Request报文中携带的用户MAC来查找有没有相应的续约记录,如果有则发送ACK报文作为回应,通知用户可以使用分配的ip地址。

    5、DHCP NAK

    如果 DHCP 服务器收到 Request 请求报文后,没有发现有相应的租约记录或者由于某些原因无法正常分配 IP 地址,则向 DHCP 客户端发送 NAK 应答报文,通知用户无法分配合适的 IP 地址。

    6、DHCP Release

    当用户不在需要使用分配ip地址时,就会向DHCP服务器发送Release报文,告知服务器用户不再需要分配ip地址,DHCP服务器会释放被绑定的租约。

    7、DHCP Decline

    DHCP客户端收到DHCP服务器回应的ACK报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则发送Decline报文,通知服务器所分配的ip地址不可用。

    8、DHCP Inform

    DHCP客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,服务器收到该报文后,将根据租约进行查找,找到相应的配置信息后,发送ACK报文回应DHCP客户端(极少用到)。

    工作原理

    分配IP地址工作流程

  1. 客户端以全网广播形式发起IP地址寻找(Discover)
  2. 服务器以全网广播形式向客户端发送IP地址提供(Offer)
  3. 客户端选择好IP地址后,以全网广播形式向服务器请求选择结果(Request)
  4. 服务器向客户端以全网广播形式发送IP地址确认(ACK)

    特殊情况的处理

    当网络中存在多台DHCP服务器,客户端会优先选择最先到达的IP地址提供

    IP地址租约更新

  • 租期到达50%,客户端如在线,会向服务器单播发起租约更新请求
  • 租期到达87.5%,客户端如在线,会向服务器广播发起租约更新请求

    DHCP中继代理

  • 用于跨网段分配IP地址

  • IP地址请求的相关报文都是广播发送,无法跨越网段,所以需要在中间路由器开启DHCP中继代理功能

相关命令

命令 功能
[h3c]dhcp enable 开启DHCP服务
[h3c]dhcp server ip-pool ‘name’ 创建DHCP地址池
3c-dhcp-pool1]network ‘network’ mask ‘mask’ 配置用于分配的地址范围
[h3c-dhcp-pool1]gateway-list ‘ip address’ 配置用于分配的网关地址
[h3c-dhcp-pool1]dns-list ‘ip address’ 配置用于分配的DNS服务器地址
[h3c-dhcp-pool1]expired …… 配置DHCP租期
[h3c]dhcp server forbidden-ip ‘start ip address’ ‘end ip address’ 配置不参与分配的IP地址
[h3c-GigabitEthernet 0/0]dhcp select relay 接口上开启DHCP中继功能
[h3c-GigabitEthernet 0/0]dhcp relay server-address ‘ip address’ 指定用于中继的DHCP服务器地址
[h3c]display dhcp server statistics 查看DHCP服务器统计信息