【风险】以下故障排查的命令,若涉及到增删改配置的操作,请评估风险影响且征得客户同意后再操作。若您不清楚造成的影响,请不要操作,请联系专业的锐捷售后工程师进行评估后再决定是否操作。
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 logshow interface counters rate
show interface counters summary
terminal no length