DHCP报文介绍
DHCP报文类型
DHCP服务器与DHCP客户端之间通过DHCP报文进行通信。DHCP报文是基于UDP协议传输的。DHCP客户端向DHCP服务器发送报文时采用68端口号,DHCP服务器向DHCP客户端发送报文时采用67端口号。目前DHCP定义了如下八种类型报文。
DHCP租期和地址池
根据IP地址的使用情况,地址池中的IP地址可以分为多种状态,包括:
-
Used:表示此IP地址已使用。
-
Idle:表示此IP地址处于空闲状态。
-
Static-bind:表示此IP地址已绑定MAC地址且未使用。
-
Static-bind used:表示此IP地址与MAC地址绑定且已使用。
-
Disable:表示此IP地址无法使用。
通过命令dhcp server excluded-ip-address(接口地址池)或excluded-ip-address(全局地址池)排除的IP地址是Disable状态。
-
Expired:表示此IP地址租期已过,处于空闲状态。
地址池中IP地址到期后是Expired状态。地址池内保留Expired状态IP地址的分配记录,目的是当用户重新关联请求IP地址时,分配原来使用过的IP地址给用户,保持用户IP地址的稳定性。
当地址池中Idle状态的IP地址耗尽时,地址池会自动回收Expired状态的IP地址,然后分配给新用户,无需手动清理。
-
Conflict:表示此IP地址与网络上其他地址冲突。
地址池中出现Conflict状态的IP地址,说明提前避免了网络中出现IP地址冲突。以下两种情形会出现Conflict状态IP地址:
- DHCP服务器收到DHCP Discover报文时,给客户端分配IP地址前会发送Ping探测,如果能Ping通则设置IP地址为Conflict状态,并选择其他IP地址分配给客户端。
- DHCP客户端获取IP地址成功后,会立即发送免费ARP报文,如果收到响应,则发送DHCP Decline报文通知DHCP服务器该IP地址冲突,DHCP服务器设置该IP地址为Conflict状态,客户端发送DHCP Discover报文重新申请IP地址。
当地址池中Idle状态和Expired状态的IP地址耗尽时,地址池会自动回收Conflict状态的IP地址,然后分配给新用户,无需手动清理。
某些无线终端在发送DHCP Discover报文申请IP地址阶段,会响应Ping探测,造成地址池误报IP地址冲突,这种情况可以通过关闭地址池Ping探测功能解决:dhcp server ping packet 0(默认为2,设置为0则不再Ping探测)。
维护DHCP
查看DHCP配置信息及报文统计信息
背景信息
通过查看DHCP配置信息和报文统计信息,可以查看设备运行状态、接收和发送DHCP报文的计数,以方便日常维护过程中的问题定位。
操作步骤
- 执行命令display dhcp server statistics,查看设备作为DHCP Server接收和发送DHCP报文的统计信息。
- 执行命令display dhcp relay statistics,查看设备作为DHCP Relay接收和发送DHCP报文的统计信息。
- 执行命令display dhcp client statistics [ interface interface-type interface-number ],查看设备作为DHCP Client接收和发送DHCP报文的统计信息。
- 执行命令display dhcp statistics,查看设备接收和发送DHCP报文的统计信息
清除DHCP报文的统计信息
背景信息
在日常维护进行问题定位需要统计一段时间内DHCP报文的统计信息时,需要先清除DHCP报文的统计信息。清除DHCP报文的统计信息后,以前的统计信息将无法恢复,务必仔细确认。
操作步骤
- 执行命令reset dhcp server statistics,清除设备作为DHCP服务器接收和发送DHCP报文的统计信息。
- 执行命令reset dhcp relay statistics,清除设备作为DHCP中继接收和发送DHCP报文的统计信息。
- 执行命令reset dhcp client statistics [ interface interface-type interface-number ],清除设备作为DHCP客户端接收和发送DHCP报文的统计信息。
- 执行命令reset dhcp statistics,清除设备接收和发送DHCP报文的统计信息。
复位DHCP地址池
背景信息
设备作为DHCP Server,当需要重新为客户端分配IP地址或者想将地址池中地址重新置为空闲状态(处于空闲状态的地址会优先被分配出去)时,可以复位DHCP地址池。
操作步骤
- 执行如下命令,复位设备上已经配置的DHCP地址池:
-
针对接口地址池:
执行命令reset ip pool interface interface-name { start-ip-address [ end-ip-address ] | all | conflict | expired | used }
-
针对全局地址池:
执行命令reset ip pool name ip-pool-name { start-ip-address [ end-ip-address ] | all | conflict | expired | used }
-
- 设备作为DHCP Relay时,执行如下命令,请求DHCP Server释放客户端的IP地址:
配置DHCP Relay请求DHCP Server释放Client的IP地址功能后,DHCP Relay会主动向指定的DHCP Server发送DHCP RELEASE报文,DHCP Server收到该报文后,将会复位指定IP地址至空闲状态。这样,释放的IP地址可以再被分配给其他DHCP Client。
锁定DHCP地址池
背景信息
当DHCP Server在网络搬迁中需要将DHCP Server上的地址池转移到另外一台现网中的DHCP Server设备,为了不影响已经从DHCP Server上申请了IP地址的DHCP Client,可以锁定该DHCP地址池。地址池转移后,新用户上线时会向新的地址池申请IP地址。
操作步骤
- 执行命令system-view,进入系统视图。
- 执行命令ip pool ip-pool-name,进入全局地址池视图。
- 执行命令lock,锁定DHCP地址池。
- 缺省情况下,设备未锁定DHCP地址池。
强制PC释放和更新IP地址
在故障定位等场景中,用户可以强制PC释放或者更新IP地址。以下是几种操作系统上的相关命令。详细的命令介绍请参见操作系统的相关文档。
-
释放IP地址
- 在用户PC机的Windows 7环境下使用ipconfig /release命令来主动释放IP地址;
- 在Windows 98 MS-DOS界面下执行winipcfg /release命令来主动释放IP地址;
- Unix-like环境下执行dhclient –r命令来主动释放IP地址。
-
更新IP地址租约或申请新的IP地址
- 在用户PC机的Windows 7环境下使用ipconfig /renew命令来更新IP地址租约或申请新的IP地址;
- 在Windows 98 MS-DOS界面下执行winipcfg /renew命令来更新IP地址租约或申请新的IP地址;
- Unix-like环境下执行dhclient命令来更新IP地址租约或申请新的IP地址。
此内容来源于华为官方:关于DHCP相关知识链接https://support.huawei.com/enterprise/zh/doc/EDOC1000178148/42ec4017
标签:执行命令,报文,地址,华为,交换机,IP地址,dhcp,DHCP From: https://www.cnblogs.com/niewd/p/18089139