1、故障现象

   设备无法动态获取IPv4地址或者动态获取的IPv4地址异常


2、故障可能原因

(1)如部分终端无法获取IP地址、或获取IP地址慢,极有可能是网络出现环路或地址池无可分配地址或下方设备Snooping Binding表项占满了。
(2)DHCP地址池、subVLAN未关联到superVLAN以及AM配置不完善,导致分配IP地址失败
(3)地址池地址分配光,导致无法分配IP地址
(4)接口开启1x认证,且认证为纯1x环境,没有配置安全通道。
(5)中间通路或者ACL配置问题导致DHCP报文无法到达18K
(6)下方交换机开启DHCP SNOOPING 开启以及未将上行端口添加信任端口,或Snooping Binding表项占满了
(7)终端问题导致无法发送DHCP 报文或者收到以后不处理
(8)18K上做DHCP 中继,DHCP中继配置错误,或网关地址和DHCP服务器通路问题
(9)18K做dhcp 中继,18K和服务器之间走二层,并且用户VLAN和服务器VLAN不在同一个VLAN下导致18K根据snooping表报文不往客户端发送。
(10)DHCP服务器性能问题,导致无法正常处理或回应报文
(11)dhcp报文被pi层丢弃---查看对应tcpip的cpu使用率

 3 、处理步骤


(1)检查DHCP的配置、supervlan配置、网关接口的配置、AM机制的配置是否正确

         DHCP主要配置如下:

ip dhcp pool bangong

   lease 0 2 0 

   network 10.1.32.0 255.255.240.0   //注意这边掩码是20位

   dns-server 192.168.58.110 

   default-router 10.1.32.254

注意:如果上述DHCP POOL中的掩码为20位的,如果网关接口的IP地址配置的掩码不是20位,那么以网关IP地址掩码网段为准


supervlan主要配置如下:

vlan 2001

 supervlan

 subvlan 200-399          //将subvlan关联到supervlan

 name susheZONE

注意:接入交换机连接的终端的每个接口的VLAN 都是subvlan需要关联在supervlan里面。


          AM机制主要配置如下:

address-manage                                                        //启用address-manage
     match ip 10.1.5.0 255.255.255.0 gi5/3 vlan 1005          //配置基于vlan+port的划分方式
     match ip 192.168.2.0 255.255.255.0 Gi5/3 vlan 1006
     match ip 192.168.3.0 255.255.255.0 Gi5/3 vlan 1007

     match ip loose                                                       //配置am规则为宽松模式,如果没有配置成宽松模式,那么没有匹配AM机制的将无法获取到IP地址

注释:这边特别描述一下匹配AM机制是什么概念,是否匹配AM机制中配置的接口和VLAN,如上 gi5/3 vlan 1005,收到DHCP报文以后,如果明确了是从gi5/3以及是vlan 1005来的,那么算匹配上AM机制了,那么不管是宽松模式还是严格模式,都要求用户获取的IP地址必须是10.1.5.0-10.1.5.255之间的某个IP地址,如果没有匹配到合适的DHCP POOL或者10.1.5.0-10.1.5.255所有的IP地址都被分配光了,不管是宽松模式还是严格模式,都无法获取到IP地址;而没有匹配到AM机制则是说 gi5/3 和 vlan 1005 这两个条目没有都满足的情况,宽松模式下没有匹配AM机制的话会从DHCP POOL去拿其他的地址


 (2)用show 命令查看地址池地址分配光,查看地址是否被分配光了

         收集dhcp基本信息,查看dhcp池是否满
          show ip dhcp pool
          
          说明:地址池利用率这一列有超过80%就说明地址池就存在耗尽可能。
          show ip dhcp server statistics  
          
         说明:重点关注DHCPDELINE字段,这个字段数值过大说明网络中存在很多IP地址冲突。该字段统计的是开机至今的ip地址冲突次数,建议可以10分钟左右刷新一次看地址冲突能否增长较大,有说明存在问题。
          show ip dhcp snooping binding | in H.H.H
         
        说明:关注snooping绑定表项总数,如果snooping有开启情况下,表项总数超过spec支持总数(256000)就可能分配不了IP 体某个终端mac的snooping绑定表项。如果有表项show出来,说明该mac有存在对应的IP地址
       
(3)使用show ip dhcp server agent mac xx.xx.xx来查看终端获取地址报文交互过程。
       


(4)查看是否接口开启1x认证,且其认证环境为纯1x环境,没有配置安全通道。

           若没有配置安全通道,那么将其安全通道配置上。

            expert access-list extended 2700

   10 permit arp any any 
   20 permit udp any any any any eq bootpc 
   30 permit udp any any any any eq bootps 
         security global access-group 2700 

(5)检查终端发送的DHCP报文能否正常到达18K。

         可以通过手动配置IP地址ping网关检查通路问题(开启认证的情况下是ping不通的),或者使用debug的方法查看,如确定报文没有达到18K则排查中间网络问题

debug ip dhcp filter mac H.H.H   //一定要敲上该命令

debug ip dhcp server all

根据log搜索一下关键字信息:

%DHCPD-7-DEBUG: recv dhcp packet from 10.8.8.1 mac 0010.184a.ae10 ifx(4296), l2_port(50), vlan(200), vrf(3) inner_vid (0) vni(0), len=300 

---》这条log表明有收到该用户的dhcp请求报文。


%DHCPD-7-DEBUG: send dhcp packet to 10.8.8.1, len=324, ret =324, success!

%DHCPD-7-DEBUG: make ack success, send packet

---》这条log表明有给该用户发送ack报文。


(6)检查下方交换机DHCP SNOOPING 的可信任端口配置是否正确

switch#show ip dhcp snooping    //查看DHCP Snooping


Switch DHCP snooping status                     :   ENABLE

DHCP snooping Verification of hwaddr status     :   DISABLE

DHCP snooping database write-delay time         :   0 seconds

DHCP snooping option 82 status                  :   DISABLE

DHCP snooping Support bootp bind status         :   DISABLE


Interface                       Trusted         Rate limit (pps)

------------------------        -------         ----------------

GigabitEthernet 1/2             YES             unlimited       

Default                                 No              unlimited   

说明:查看相应的上联端口是否有配置了可信任端口,下联端口是否配置限速

N18K#show ip dhcp snooping binding        //通过该命令查看下方开启dhcp snooping的交换机,表项是否已满,如有些交换机仅支持2000条。

Total number of bindings: 1500          //已经绑定1500条


(7)同时在18K上开启debug,并且使用ACL计数方法(条件允许可以抓18K下联端口的报文)以及在PC上抓包,看报文的交互情况

       expert access-list extended exp1
           20 permit udp any host 1111.1111.1111 any any range bootps bootpc (其中1111.1111.1111用用户mac替换)
           90 permit etype-any any any
          100 permit ip any any any any
       int te1/1(出问题的端口)
          expert access-group exp1 in
          exit
       expert access-list counter exp1
       show access-list  --(查看是否统计到报文)
 
      红色所示代码收到10个dhcp报文。
      
     说明:如果PC有发送出去,18K却没有收到,则排查中间网络通路问题;
               如果18K有收到则debug信息中却没有log输出或者没有回应的log,则联系后台处理;
               如果18K有回应,但是PC没有收到回应,则排查中间网络通路问题(ACL、DHCP SNOOPING等)

(8)18K上做DHCP 中继,接入PC的网关IP地址与DHCP服务器之间由于路由不可达或者防火墙问题导致报文交互异常

         在18K上携带源IP地址去ping DHCP服务器看是否可达


(9) 18K做dhcp 中继,18K和服务器之间走二层,并且用户VLAN和服务器VLAN不在同一个VLAN下 导致18K根据snooping表报文不往客户端发送。

具体原理如下:
          1、客户端在VLAN60,wds服务器在VLAN2.
         2、客户端192.168.60.2从vlan60里面发送DHCP-Request报文给wds服务器192.168.0.65。报文经过核心的Snooping,会记录一个临时表项,内包含MAC地址+VLAN60信息。
         3、当wds服务器回应终端DHCP-ACK报文时,由于是从VLAN2收到的回应报文,所以核心上通过MAC+VLAN2去匹配Snooping表找不到临时表项。导致将该报文直接往SVI2发送,导致客户端收不到ACK。 
解决办法: 核心上配置no ip dhcp snooping vlan 2(服务器vlan)解决该问题


(10)抓取PC和N18K交互的报文。抓取N18K和DHCP服务器的报文。



4、故障信息收集

     18K信息收集如下:

           debug ip dhcp filter mac H.H.H   //一定要敲上该命令

           debug ip dhcp server all

          terminal length 0

          show ver detail

          show run

show ip dhcp pool

show ip dhcp server statistics

show arp | include ***

sho mac-address-table | include ***

show ip dhcp snooping binding

show ip dhcp snooping binding | in H.H.H

show ip dhcp server agent mac xx.xx.xx   ( 11.0(1)B3P3版本中支持)

show nfpp dhcp-guard host

show ip dhcp relay-statistics 
show ip dhcp conflict
show log
show interface counters rate
show interface counters summary
terminal no length

  


5、故障总结及注意事项