• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

DHCP故障处理手册

目 录

第1章 DHCP故障处理... 1

1.1 简介.. 1

1.1.1 DHCP服务器简介.. 3

1.1.2 DHCP中继简介.. 4

1.1.3 DHCP客户端简介.. 4

1.1.4 DHCP Snooping简介.. 5

1.2 常见问题.. 5

1.2.1 DHCP服务器与DHCP客户端在相同物理网段,DHCP客户端无法获取地址.. 5

1.2.2 DHCP客户端无法通过DHCP中继获取地址.. 6

1.2.3 DHCP客户端无法通过DHCP Snooping获取地址.. 9

1.3 其他相关问题.. 9

1.3.1 DHCP客户端没有获取到部分服务器配置的选项.. 9

1.3.2 禁止分配的静态绑定地址,仍然参与地址分配.. 10

1.3.3 释放的IP地址没有放入可分配的IP地址表中.. 10

1.3.4 DHCP服务器的ping探测时间与配置不相符.. 10

1.3.5 DHCP服务器的租约已经过期,但DHCP中继的安全表项仍然存在.. 11

1.3.6 DHCP服务器静态绑定IP地址和客户端MAC失效.. 11

1.3.7 DHCP Snooping无法生成表项.. 12

1.4 故障处理过程.. 12

1.4.1 DHCP服务器与DHCP客户端在相同物理网段故障处理过程.. 12

1.4.2 DHCP客户端通过DHCP中继获取IP地址故障处理过程.. 14

1.4.3 DHCP客户端通过DHCP Snooping获取IP地址故障处理过程.. 16

1.5 典型案例.. 18

1.5.1 PC做为DHCP客户端获取地址时间较长.. 18


第1章 DHCP故障处理

1.1 简介

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)采用客户/服务器通信模式。由客户端先向服务器发送请求配置信息的报文(包括分配的IP地址、子网掩码、缺省网关等参数),服务器根据策略返回携带相应配置信息的报文,以实现IP地址等信息的动态配置。请求报文和回应报文都采用UDP进行封装。

DHCP客户端从DHCP服务器动态获取IP地址,主要通过四个阶段进行,如图1-1所示。

图1-1 IP地址动态获取过程

(1) 发现阶段,即DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送DHCP-DISCOVER报文。

(2) 提供阶段,即DHCP服务器提供IP地址的阶段。DHCP服务器接收到客户端的DHCP-DISCOVER报文后,根据IP地址分配的优先次序选出一个IP地址,与其他参数一起通过DHCP-OFFER报文发送给客户端。

(3) 选择阶段,即DHCP客户端选择IP地址的阶段。如果有多台DHCP服务器向该客户端发来DHCP-OFFER报文,客户端只接受第一个收到的DHCP-OFFER报文,然后以广播方式发送DHCP-REQUEST报文,该报文中包含DHCP服务器在DHCP-OFFER报文中分配的IP地址。

(4) 确认阶段,即DHCP服务器确认IP地址的阶段。DHCP服务器收到DHCP客户端发来的DHCP-REQUEST报文后,只有DHCP客户端选择的服务器会进行如下操作:如果确认将地址分配给该客户端,则返回DHCP-ACK报文;否则返回DHCP-NAK报文,表明地址不能分配给该客户端。

DHCP有如下三种典型组网应用:

(1) DHCP客户端和DHCP服务器处于相同的物理网段,DHCP客户端可以与DHCP服务器直接通信。一般包含一台DHCP服务器和多台客户端,如图1-2所示。

图1-2 DHCP典型应用一

(2) DHCP客户端和DHCP服务器处于不同的物理网段,客户端通过DHCP中继与服务器通信,获取IP地址及其他配置信息,如图1-3所示。

图1-3 DHCP典型应用二

(3) DHCP客户端和DHCP服务器处于相同的物理网段,DHCP客户端与DHCP服务器通过DHCP Snooping通信。如图1-4所示。

图1-4 DHCP典型应用三

1.1.1 DHCP服务器简介

1. DHCP地址池

DHCP服务器通过配置地址池提供可分配的IP地址资源。

DHCP服务器按照如下优先次序为客户端选择IP地址:

l DHCP服务器中与客户端MAC地址或客户端ID静态绑定的IP地址。

l DHCP服务器记录的曾经分配给客户端的IP地址。

l 客户端发送的DHCP-DISCOVER报文中Option 50字段指定的IP地址。

l 选择合适的地址池,从中顺序查找可供分配的IP地址,最先找到的IP地址。

l 如果未找到可用的IP地址,则依次查询租约过期、曾经发生过冲突的IP地址,如果找到则进行分配,否则将不予处理。

2. DHCP地址池的选择

DHCP服务器选择地址池原则:

l 客户端与服务器在同一物理网段时,DHCP服务器根据接收DHCP请求报文接口的IP地址,选择包含该IP地址的地址范围最小的地址池。

l 客户端与服务器不在同一物理网段,客户端通过DHCP中继获取IP地址时,DHCP服务器根据DHCP请求报文中giaddr字段指定的IP地址,选择包含该IP地址的地址范围最小的地址池。

l 如果该地址池中没有可供分配的IP地址,则服务器无法为客户端分配地址。因此配置地址池网段时应该与报文接收接口的IP地址或者giaddr字段指定的IP地址一致,否则当DHCP服务器单播发送回应报文时可能由于没有路由导致发送失败。

1.1.2 DHCP中继简介

1. DHCP中继转发DHCP报文过程

DHCP中继完成DHCP报文的转发,如图1-5所示。DHCP中继发送给DHCP服务器和DHCP客户端的报文的源IP地址都是接收到DHCP客户端请求报文接口的IP地址。

图1-5 DHCP中继转发过程

2. DHCP中继支持Option 82

Option 82记录了DHCP客户端的位置信息。如果DHCP中继配置Option 82功能,则当DHCP中继接收到DHCP请求报文后,将根据报文中是否包含Option 82以及用户配置的处理策略及填充格式对报文进行相应的处理,并将处理后的报文转发给DHCP服务器。如果DHCP中继收到的响应报文中带有Option 82,则会将Option 82删除后再转发给DHCP客户端。

管理员可以利用该选项定位DHCP客户端,实现对客户端的安全和计费等控制。

1.1.3 DHCP客户端简介

DHCP客户端在配置ip address dhcp-alloc后不会立即发送DHCP-DISCOVER报文,而是在1~10秒内随机发送。如果没有收到DHCP服务器的回应报文,DHCP客户端继续发送请求报文,直到收到DHCP服务器的回应。

DHCP客户端在收到DHCP-ACK后会通过发送免费ARP来检测DHCP服务器分配的IP地址是否已经被其他客户端使用。如果该IP地址已经被使用,则DHCP客户端发送DHCP-DECLINE报文,然后重新申请。如果DHCP客户端的其他接口配置了与DHCP服务器分配的IP地址在相同网段的IP地址,则DHCP客户端获取IP地址失败且不再重新申请。

1.1.4 DHCP Snooping简介

DHCP Snooping是DHCP的一种安全特性,在网络中如果有私自架设的DHCP服务器,则可能导致用户得到错误的IP地址。为了使用户能通过合法的DHCP服务器获取IP地址,DHCP Snooping安全机制允许将端口设置为信任端口和不信任端口:

l 信任端口是与合法的DHCP服务器直接或间接连接的端口。信任端口对接收到的DHCP报文正常转发,从而保证了DHCP客户端获取正确的IP地址。

l 不信任端口是不与合法的DHCP服务器连接的端口。如果从不信任端口接收到DHCP服务器的响应报文则会丢弃,从而防止了DHCP客户端获得错误的IP地址。

DHCP Snooping还有一个重要的功能,就是嗅探用户的地址申请过程,获取用户IP地址+MAC地址+PORT+VLAN的绑定。

本文主要关注由于配置引起的DHCP相关问题,以及某些容易理解错误的问题。

1.2 常见问题

1.2.1 DHCP服务器与DHCP客户端在相同物理网段,DHCP客户端无法获取地址

1. 问题描述

如图1-2所示,DHCP客户端无法通过DHCP获取IP地址。

2. 问题定位

在用户视图下打开DHCP服务器的debug开关:debugging dhcp server all,根据具体debug信息进行定位。

debug信息

可能的故障原因

没有收到报文的debug信息

(1) (2)

Failed to get available ip from interface ip-address mask ip-address.

(3) (6)

DHCPServer: Lease is exhausted!

(3) (6)

Sending Message-Type failed!

(4)

DHCPServer: The number of leases has reached the maximum!

(5)

可能的故障原因包括:

(1) 物理链路不畅通

(2) DHCP未使能

(3) DHCP服务器没有配置地址池

通过display dhcp server tree all查看地址池配置:是否配置了与接收报文的接口IP在相同网段的地址池,或者包含了接收报文接口IP地址的地址池。

(4) DHCP服务器地址池网段配置错误

如果DHCP客户端请求DHCP服务器单播回应,则配置的地址池网段必须与接收接口IP在相同网段,否则回应报文会发送失败。

(5) 租约达到规格

DHCP服务器分配的租约是有规格限制的(各款产品不同,请参考产品规格),如果达到规格,则DHCP服务器不再分配IP地址。可以通过display dhcp server ip-in-use all查看DHCP服务器已经分配的租约是否达到上限。

(6) DHCP服务器没有可分配的地址

查看DHCP服务器是否有可分配的IP地址,依次查看如下表项:

l 通过display dhcp server free-ip查看是否存在可分配的地址(与接收报文接口IP在相同网段的IP地址);

l 通过display dhcp server expired all查看是否存在与接收报文接口在相同网段的IP地址;

l 通过display dhcp server conflict all查看是否存在与接收报文接口在相同网段的冲突IP地址,且冲突时间在1小时之前。

如果没有符合以上条件的IP地址,DHCP服务器无法再分配租约。

3. 问题解决

(1) 重新连接网线;

(2) 在系统视图下配置命令dhcp enable

(3) 配置包含或与接收接口IP地址在相同网段的地址池;

(4) 配置与接口IP地址网段相同的地址池网段;

(5) 通过display dhcp server expired all查看是否存在过期租约,如果有,通过reset dhcp server ip-in-use命令删除过期租约;

(6) 扩大配置的地址池网段。

1.2.2 DHCP客户端无法通过DHCP中继获取地址

1. 问题描述

如图1-3所示,DHCP客户端无法通过DHCP获取IP地址。

2. 问题定位

在DHCP服务器的用户视图下打开debug开关:debugging dhcp server all,在DHCP中继的用户视图下打开debug开关:debugging dhcp relay all根据具体debug信息进行定位。

debug信息

可能的故障原因

DHCP服务器的debug信息中没有收到报文的debug信息

(1) (2) (3) (5)

DHCP中继的debug信息中没有收到报文的debug信息

(1) (2)

DHCP中继有如下debug信息:

The interface does not exist

(3)

DHCP中继有如下debug信息:

Sending packet failed when processing Message-Type packet!

其中Message-Type为DHCP请求报文类型

(4)

DHCP服务器有如下debug信息:

Failed to get available ip from interface ip-address mask ip-address.

(6) (9)

DHCP服务器有如下debug信息:

DHCPServer: Lease is exhausted!

(6) (9)

DHCPServer: The number of leases has reached the maximum!

(8)

DHCP服务器有如下debug信息:

Sending Message-Type failed!

(10)

DHCP中继有如下debug信息:

Sending packet failed when processing Message-Type packet!

其中Message-Type为DHCP响应报文类型

(7)

可能的故障原因包括:

(1) 物理链路不畅通

(2) DHCP未使能

(3) DHCP中继接口没有选择服务器组

在配置了DHCP中继的接口上通过命令display this命令查看,没有dhcp relay server-select的配置信息。

(4) DHCP中继接口配置的server-group中指定的DHCP服务器不存在

(5) DHCP中继接口配置的server-group中指定的DHCP服务器不是与DHCP中继相连的DHCP服务器

(6) DHCP服务器没有配置地址池

通过display dhcp server tree all查看地址池配置:是否配置了与DHCP中继接口IP地址在相同网段的地址池,或者包含了DHCP中继接口IP地址的地址池。

(7) DHCP服务器地址池网段配置错误

如果DHCP客户端请求DHCP服务器单播回应,则配置的地址池网段必须与DHCP中继接口IP网段相同,否则回应报文会发送失败。

(8) DHCP服务器租约达到规格

DHCP服务器分配的租约是有规格限制的(各款产品不同,请参考产品规格),如果达到规格,则DHCP服务器不再分配IP地址。可以通过display dhcp server ip-in-use all查看DHCP服务器已经分配的租约是否达到上限。

(9) DHCP服务器没有可分配的地址

查看DHCP服务器是否有可分配的IP地址,依次查看如下表项:

l 通过display dhcp server free-ip查看是否存在可分配的地址(与接收报文接口IP在相同网段的IP地址);

l 通过display dhcp server expired all查看是否存在与接收报文接口在相同网段的IP地址;

l 通过display dhcp server conflict all查看是否存在与接收报文接口在相同网段的冲突IP地址,且冲突时间在1小时之前。

如果没有符合以上条件的IP地址,DHCP服务器无法再分配租约。

(10) 通过display ip routing-table查看在DHCP服务器上是否存在到DHCP中继接口IP地址的路由,如果没有,DHCP服务器的回应报文无法发送给DHCP中继。

3. 问题解决

(1) 重新连接网线;

(2) 在系统视图下配置命令dhcp enable

(3) 在DHCP中继接口上通过命令dhcp relay server-select选择接口的服务器组;

(4) 通过系统视图下命令dhcp relay server-group server-group ip ip-address,配置ip-address为存在的DHCP服务器地址;

(5) 通过系统视图下命令dhcp relay server-group server-group ip ip-address,配置ip-address为与DHCP中继相连的服务器;

(6) 配置包含或与接收接口IP地址在相同网段的地址池;

(7) 配置与接口IP地址网段相同的地址池网段;

(8) 通过display dhcp server expired all查看是否存在过期租约,如果有,通过reset dhcp server ip-in-use命令删除过期租约;

(9) 扩大配置的地址池网段;

(10) 配置路由协议或者DHCP服务器到DHCP中继接口的静态路由。

1.2.3 DHCP客户端无法通过DHCP Snooping获取地址

1. 问题描述

如图1-4所示,DHCP客户端无法通过DHCP获取IP地址。

2. 问题定位

检查如下配置是否正确:

(1) 参考“1.2.1 DHCP服务器与DHCP客户端在相同物理网段,DHCP客户端无法获取地址”中问题定位的(1)~(6),检查DHCP服务器配置。

(2) 检查DHCP Snooping与DHCP服务器连接的端口是否配置了dhcp-snooping trust。如果没有配置,DHCP Snooping会丢弃DHCP服务器的回应报文。

3. 问题解决

l 对于(1)中的情况,请参考“1.2.1 DHCP服务器与DHCP客户端在相同物理网段,DHCP客户端无法获取地址”中的问题解决;

l 对于(2),请在DHCP Snooping与DHCP服务器连接的端口上配置dhcp-snooping trust命令。

1.3 其他相关问题

1.3.1 DHCP客户端没有获取到部分服务器配置的选项

1. 问题描述

DHCP服务器地址池中配置了某些选项(比如,配置option 123 ascii abcdef),但DHCP客户端没有获取到。

2. 问题定位

DHCP服务器配置了Option 123,但如果DHCP客户端发送的请求报文中的请求参数列表(Option 50)没有包含Option 123,那么DHCP服务器就不会将配置的Option填充到回应报文中。

1.3.2 禁止分配的静态绑定地址,仍然参与地址分配

1. 问题描述

进行如下配置:

#

dhcp server ip-pool 1

static-bind ip-address 1.1.1.1 mask 255.0.0.0

static-bind mac-address 0001-0001-0001

expired unlimited

#

dhcp server forbidden-ip 1.1.1.1

#

但IP地址1.1.1.1仍然可以分配出去。

2. 问题定位

静态绑定的IP地址优先级高于禁止分配的IP地址,因此,静态绑定的地址可以分配出去。删除静态绑定后,该地址被禁止动态分配。

1.3.3 释放的IP地址没有放入可分配的IP地址表中

1. 问题描述

DHCP服务器收到DHCPRELEASE报文后,不将释放的IP地址放回到free-IP中。

2. 问题定位

DHCP服务器将释放的地址放在了过期租约中。

根据RFC 2131建议的“尽量给同一个主机分配同一个IP地址”原则,DHCP服务器会尽量保存用户的租约记录,只要用户曾经申请使用过地址,DHCP服务器就会记录。当用户申请地址时,DHCP服务器会优先查找租约记录进行分配,保证用户在下次再申请的时候可以申请到相同的IP地址。

1.3.4 DHCP服务器的ping探测时间与配置不相符

1. 问题描述

设置DHCP服务器的ping功能的timeout选项为小于100ms的值时,ICMP发包的间隔时间还是为100ms,达不到timeout选项所设定的值,设置不生效。

2. 问题定位

由于目前DHCP服务器使用的定时器的时间精度为100ms,因此配置的超时时间会根据定时器精度进行调整,向上调整为100ms的整数倍。

例如,配置的时间为50ms,则调整为100ms;配置的时间为230ms,则调整为300ms

1.3.5 DHCP服务器的租约已经过期,但DHCP中继的安全表项仍然存在

1. 问题描述

当DHCP服务器的租约过期时,DHCP中继上的安全表项仍然存在。

2. 问题定位

DHCP中继的安全表项不会立刻删除,老化删除的时间跟配置的老化时间和表项的个数有关。假设现有N条有效安全表项,那么第一条有效安全表项被老化的时间(秒)为:

(1) 缺省(auto状态)情况下

l 如果60/N大于等于0.5,则被老化的时间为:60/N*N*2 + 60/N=120+60/N,即老化探测报文发送的时间间隔是60/N;

l 如果60/N小于0.5,则被老化的时间为:0.5 *N*2 +0.5 =N+0.5,即老化探测报文发送的时间间隔是0.5秒

(2) 非缺省情况下

假设配置的定时器时间超时间隔为T,现有N条有效安全表项,则第一条有效安全表项被老化的时间为T*N*2+T,即老化探测报文发送的时间间隔为T。

1.3.6 DHCP服务器静态绑定IP地址和客户端MAC失效

1. 问题描述

DHCP服务器配置了客户端MAC和IP地址的静态绑定,但客户端获取的IP地址不是静态绑定的IP地址。

2. 问题定位

DHCP服务器的静态绑定配置两种方式:

l IP+MAC方式:适用于在发送请求报文时不携带ClientID选项(Option 61)的客户端;

l IP+ClientID方式:适用于在发送请求报文时携带ClientID选项(Option 61)的客户端。

通过命令display dhcp server ip-in-use ip ip-address查看租约,其中ip-address为客户端获取的IP地址。如果租约中的Client-identifier/Hardware address不是MAC,则说明该客户端需要通过IP+ClientID方式配置静态绑定;否则为设备故障,请联系用服人员。

1.3.7 DHCP Snooping无法生成表项

1. 问题描述

DHCP客户端通DHCP Snooping设备成功获取到IP地址,但是在DHCP Snooping设备上没有相应的表项。

2. 问题定位

在某些设备上配置DHCP Snooping之后,是通过下发ACL将DHCP报文送给CPU处理的。如果系统的ACL资源不足而导致下发ACL失败。虽然为DHCP Snooping的信任端口,但是DHCP报文实际上无法上送CPU,因而无法创建DHCP Snooping表项。

1.4 故障处理过程

1.4.1 DHCP服务器与DHCP客户端在相同物理网段故障处理过程

1. 诊断流程

图1-6 DHCP服务器故障诊断流程图

2. 故障处理步骤

(1) 检查物理连接是否畅通

如图1-2,DHCP服务器通过接口Ethernet1/0与DHCP客户端相连。在客户端为与服务器连接的网卡配置IP地址,该IP地址与服务器端接口Ethernet1/0的IP地址在同一网段,查看是否可以ping通Ethernet1/0的IP地址。如果可以ping通,则说明连接畅通,可以排除物理线路故障。

也可以在服务器端打开DHCP的调试开关,查看是否可以收到客户端的DHCP-DISCOVER报文。

(2) 检查DHCP服务器是否使能

在系统视图中使用display current-configuration命令查看是否使能DHCP。如果没有使能,则配置dhcp enable使能DHCP服务。

(3) 检查DHCP服务器地址池配置

执行命令display dhcp server tree all查看是否有配置全局地址池及地址池的网段。

查看配置的网段和接口Ethernet1/0的IP地址是否在同一个大网段。例如网段的配置是network 1.1.1.1 24,而Ethernet1/0的IP地址为2.2.2.2 ,显然不在同一个网段,那么图1-2直连的组网环境中客户端是无法正常获取IP地址的。

如果上面的检查都没有问题,请继续下面的步骤3。

(4) 检查地址池内是否有可用IP

执行命令display dhcp server free-ip检查地址池内是否存在可用的IP地址。

如果没有可用的IP地址,执行命令display dhcp server expired all查看是否有过期的IP地址,且IP地址与接口地址在同一网段。

如果不存在过期IP地址,执行命令display dhcp server conflict all,查看是否有冲突的IP地址,如果有的话,查看其冲突时间是否已经超过1小时,只有冲突IP在发生冲突1小时以后才可以重新分配使用。

执行完上面的步骤,如果发现地址池中的可用IP地址、过期IP地址和冲突的IP地址都不存在,就说明地址池中IP地址已经用尽。否则,请继续步骤4.

(5) 检查地址池的租约是否达到规格

执行命令display dhcp server ip-in-use all,查看租约是否已经达到规格,如果已经达到规格,DHCP服务器无法再分配租约。

1.4.2 DHCP客户端通过DHCP中继获取IP地址故障处理过程

1. 诊断流程

图1-7 DHCP中继组网故障诊断流程图

2. 故障处理步骤

(1) 检查物理连接是否通畅

如图1-3所示,分别检查DHCP服务器与DHCP中继之间的物理链接和DHCP中继与DHCP客户端之间的物理链接是否通畅。

(2) 检查DHCP中继和DHCP服务器是否使能

在系统视图中使用display current-configuration命令查看是否使能DHCP。

如果没有使能,通过命令dhcp enable使能DHCP服务。

(3) 检查DHCP中继的配置

查看是否指定服务器地址,即检查Ethernet1/1接口上是否配置dhcp select relaydhcp relay server-select通过命令display dhcp relay server-group查看server-group中是否包含了DHCP服务器的IP地址10.1.1.1。

(4) 检查DHCP服务器的配置

执行display dhcp server tree all 查看是否有配置全局地址池及地址池分配的网段。

查看地址池分配的网段和接口Ethernet1/0的IP地址网段相同,或者包含了接口的IP地址网段(建议配置与接口网段相同的地址池可分配网段,确保当DHCP客户端请求单播回应时DHCP中继可以成功发送报文)。在这个例子中检查是否配置为network 10.10.1.0 mask 255.255.255.0

(5) 检查地址池内是否有可用IP

执行命令display dhcp server free-ip检查地址池内是否存在可用的IP地址。

如果不存在可用的IP地址,执行命令display dhcp server expired pool查看是否存在过期IP地址。

如果不存在过期IP地址,执行命令display dhcp server conflict all,查看是否有冲突的IP地址,如果有的话,查看其冲突时间是否已经超过1小时,只有冲突IP在发生冲突1小时以后才可以重新分配使用。

执行完上面的步骤,如果发现地址池中的可用IP地址、过期IP地址和冲突的IP地址都不存在,就说明地址池中IP地址已经用尽。否则请继续步骤4.

(6) 检查地址池的租约是否达到规格

执行命令display dhcp server ip-in-use all,查看租约是否已经达到规格,如果已经达到规格,DHCP服务器无法再分配租约。

(7) 检查中继和服务器间是否存在路由

从DHCP服务器上ping 10.10.1.1查看是否可以ping通。

如果不能ping通,DHCP服务器上执行命令display ip routing-table,查看是否有到对端的路由表项,如果没有,在服务器上执行命令ip route-static 10.10.1.1 24 10.1.1.2

如果还是不能ping通,请检查物理线路是否正常。

1.4.3 DHCP客户端通过DHCP Snooping获取IP地址故障处理过程

1. 诊断流程

图1-8 DHCP Snooping组网故障诊断流程图

2. 故障处理步骤

(1) 检查物理连接是否畅通

如图1-4,DHCP服务器通过Ethernet1/0与DHCP客户端相连。在客户端为与服务器连接的网卡上配置IP地址,该IP地址与服务器端接口Ethernet1/0的IP地址在同一网段,查看是否可以ping通Ethernet1/0的IP地址。如果可以ping通,则说明连接畅通,可以排除物理线路故障。

也可以在服务器端打开DHCP的调试开关,查看是否可以收到客户端的DHCP-DISCOVER报文。

(2) 检查DHCP服务器是否使能

在系统视图中使用display current-configuration命令查看是否使能DHCP。

如果没有使能,通过命令dhcp enable使能DHCP服务。

(3) 检查DHCP Snooping的配置

在系统视图中使用display current-configuration命令查看是否使能了DHCP Snooping,接口Ethernet1/1是否配置了dhcp-snooping trust

(4) 检查DHCP服务器的配置

执行命令dhcp enable使能DHCP服务。

执行命令display dhcp server tree all,查看是否有配置全局地址池及地址池的网段。

查看配置的网段和接口Eth1/0的IP地址是否在同一个大网段。例如网段的配置是network 1.1.1.1 24,而Eth1/0的IP地址为2.2.2.2 ,显然不在同一个网段,那么图1-4的组网环境中客户端是无法正常获取IP地址的。

如果上面的检查都没有问题,请继续下面的步骤4。

(5) 检查地址池内是否有可用IP

执行命令display dhcp server free-ip检查地址池内是否存在可用的IP地址。

如果没有可用的IP地址,执行命令display dhcp server expired all查看是否有过期的IP地址,且IP地址与接口在同一网段。

如果不存在过期IP地址,执行命令display dhcp server conflict all,查看是否有冲突的IP地址,如果有的话,查看其冲突时间是否已经超过1小时,只有冲突IP在发生冲突1小时以后才可以重新分配使用。

执行完上面的步骤,如果发现地址池中的可用IP地址、过期IP地址和冲突的IP都不存在,就说明地址池中IP地址已经用尽。否则请继续步骤5.

(6) 检查地址池的租约是否达到规格

执行命令display dhcp server ip-in-use all,查看租约是否已经达到规格,如果已经达到规格,DHCP服务器无法再分配租约。

1.5 典型案例

1.5.1 PC做为DHCP客户端获取地址时间较长

1. 组网环境

图1-9 案例组网图

2. 故障现象

以PC做为DHCP客户端,通过DHCP申请地址,经过1分钟左右才能获取地址。

3. 处理过程

l 检查DHCP服务器配置

DHCP服务器上的配置如下,不存在问题。

#

dhcp server ip-pool 1

network 1.1.0.0 mask 255.255.0.0

#

……

#

interface Ethernet1/0

port link-mode route

ip address 1.1.1.1 255.255.255.0

#

……

#

dhcp enable

#

l 检查DHCP服务器上接口Ethernet1/0的状态

与DHCP客户端相连的接口Ethernet1/0处于up状态。

[server] display ip interface brief Ethernet 1/0

*down: administratively down

(s): spoofing

Interface Physical Protocol IP Address

Ethernet1/0 up up 1.1.1.1

l 检查物理连接是否通畅

在PC上手工配置IP地址1.1.1.2,可以ping通DHCP服务器的IP地址1.1.1.2。

l 通过调试信息进行定位

在用户视图下打开DHCP服务器的调试信息开关debugging dhcp server all

DHCP服务器上打印如下调试信息:

<server> debugging dhcp server all

*May 27 13:02:19:494 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:

DHCPServer: Receive DHCPDISCOVER from 00e0-e100-0201.

*May 27 13:02:19:494 2007 server DHCPS/7/DHCPS_DEBUG_PACKET:

Rx, interface Ethernet1/0

Message type: request

Hardware type: 1, Hardware address length: 6

Hops: 0, Transaction ID: 16777216

Seconds: 0, Broadcast flag: 0

Client IP address: 0.0.0.0 Your IP address: 0.0.0.0

Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0

Client hardware address: 00e0-e100-0201

Server host naame: Not Configured, Boot file name: Not Configured

DHCP message type: DHCP Discover

*May 27 13:02:19:494 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:

DHCPServer: Assign Free Lease from global pool.

……

*May 27 13:02:20:110 2007 server DHCPS/7/DHCPS_DEBUG_PACKET:

Tx, interface Ethernet1/0

Message type: reply

Hardware type: 1, Hardware address length: 6

Hops: 0, Transaction ID: 16777216

Seconds: 0, Broadcast flag: 0

Client IP address: 0.0.0.0 Your IP address: 1.1.0.2

Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0

Client hardware address: 00e0-e100-0201

Server host naame: Not Configured, Boot file name: Not Configured

DHCP message type: DHCP Offer

*May 27 13:02:20:110 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:

DhcpServer: Failed to send DHCPOFFER to MAC=> 00e0-e100-0201 .

*May 27 13:02:20:110 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:

DHCPServer: Sending DHCPOFFER failed!

……

*May 27 13:09:54:228 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:

DHCPServer: Receive DHCPDISCOVER from 00e0-e100-0201.

*May 27 13:09:54:228 2007 server DHCPS/7/DHCPS_DEBUG_PACKET:

Rx, interface Ethernet1/0

Message type: request

Hardware type: 1, Hardware address length: 6

Hops: 0, Transaction ID: 266602672

Seconds: 0, Broadcast flag: 1

Client IP address: 0.0.0.0 Your IP address: 0.0.0.0

Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0

Client hardware address: 00e0-e100-0201

Server host naame: Not Configured, Boot file name: Not Configured

DHCP message type: DHCP Discover

*May 27 13:09:54:228 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:

DHCPServer: Assign Free Lease from global pool.

……

*May 27 13:09:54:816 2007 server DHCPS/7/DHCPS_DEBUG_PACKET:

Tx, interface Ethernet1/0

Message type: reply

Hardware type: 1, Hardware address length: 6

Hops: 0, Transaction ID: 266602672

Seconds: 0, Broadcast flag: 1

Client IP address: 0.0.0.0 Your IP address: 1.1.0.2

Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0

Client hardware address: 00e0-e100-0201

Server host naame: Not Configured, Boot file name: Not Configured

DHCP message type: DHCP Offer

*May 27 13:09:54:816 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:

DhcpServer: Send DHCPOFFER to 00e0-e100-0201 Offer IP=> 1.1.0.2.

*May 27 13:09:54:848 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:

DHCPServer: Receive DHCPREQUEST from 00e0-e100-0201.

*May 27 13:09:54:848 2007 server DHCPS/7/DHCPS_DEBUG_PACKET:

Rx, interface Ethernet1/0

Message type: request

Hardware type: 1, Hardware address length: 6

Hops: 0, Transaction ID: 266602672

Seconds: 0, Broadcast flag: 1

Client IP address: 0.0.0.0 Your IP address: 0.0.0.0

Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0

Client hardware address: 0000-5e00-4701

Server host naame: Not Configured, Boot file name: Not Configured

DHCP message type: DHCP Request

*May 27 13:09:54:848 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:

DHCPServer: Acknowledge the DHCPREQUEST message!

*May 27 13:09:54:848 2007 server DHCPS/7/DHCPS_DEBUG_PACKET:

Tx, interface Ethernet1/0

Message type: reply

Hardware type: 1, Hardware address length: 6

Hops: 0, Transaction ID: 266602672

Seconds: 0, Broadcast flag: 0

Client IP address: 0.0.0.0 Your IP address: 1.1.0.2

Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0

Client hardware address: 00e0-e100-0201

Server host naame: Not Configured, Boot file name: Not Configured

DHCP message type: DHCP Ack

*May 27 13:09:54:848 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:

DhcpServer: Send DHCPACK to 00e0-e100-0201 Offer IP=> 1.1.0.2.

*May 27 13:09:54:848 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:

DHCPServer: Requesting security module(s) to add a security entry (1.1.0.4 00e0-e100-0201) succeeded.

从debug信息分析,PC发送了5个DHCP-DISCOVER报文后才申请到了地址。前4个,DHCP服务器都分配了租约,但在发送DHCP-OFFER报文的时候发送失败了,直到PC发送了第5个DHCP-DISCOVER报文后,DHCP服务器才成功分配了租约。比较第5个DHCP-DISCOVER报文与前4个的不同,发现报文的Broadcast flag不一样,前4个为0,即要求DHCP服务器单播发送回应报文,第5个为1,DHCP服务器广播发送回应报文。

DHCP服务器在单播回应报文的时候发送失败,原因是DHCP服务器Ethernet1/0接口配置的IP地址为1.1.1.1/24,没有到1.1.0.0/16网段的路由,导致单播到1.1.0.2失败。

将地址池的可分配网段修改为与接口一致,则可以解决上述问题:

#

dhcp server ip-pool 1

network 1.1.1.0 mask 255.255.255.0

#

Copyright ©2008 杭州华三通信技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

本文档中的信息可能变动,恕不另行通知。

附件下载

联系我们