受同事邀请去帮一中学排查一终端上不了网问题,客户出口用的是某公司上网行为管理AC。我原本想最多半个小时就能搞定,学校的网络很简单,没什么滑头,去了现场后,发现这是一个奇葩问题,着实费了一番力气才定位到问题,现分享给大家。
【问题现象】
一终端无法上网,同网段其它主机上网正常。
【网络拓扑】
电信线路---AC---核心交换机---接入
问题终端 IP:192.168.2.21 网关 ·192.168.2.1
AC地址:10.16.30.10
核心交换机上其他测试地址:192.168.3.1
【排查过程】
1.上网行为管理开启数据拦截直通,设备无任何日志,终端依旧不能上网,排除AC策略拦截,及IP、MAC绑定问题。
数据拦截直通无数据截图
2.问题终端能ping通自己网关,排除物理线路问题;终端配置了正确网关IP,排除因无网关导致无法上网问题。
问题终端IP截图
3.问题终端学习到的网关MAC,与同网段正常上网终端学习的网关MAC一致,排除ARP欺骗问题。
网关MAC截图
4.终端单网卡,排除终端多网卡,多网关,导致路由混乱问题
5. 终端ping AC LAN口地址不通,AC抓包发现数据包没有转发上来,到这里可以完全排除AC问题,需要对核心交换机进行排查,看核心交换机是否正常转发该数据包。
ping不通AC截图
AC上抓包,发现数据包没有上来截图。
6.在核心交换机开启ACL计数,发现问题终端pingAC的数据包,竟然没有发送到核心交换机,ping终端自身网关数据包正常接收。接着问题终端ping核心交换机上同SVI口下的其他网关地址,竟然也不通,数据包也未发送至核心交换机上,由此看来问题还是在终端上。
问题终端上ping核心交换机同SVI口下其它网段网关不通截图
锐捷ACL计数命令,分享给大家,通过ACL计数可以判断数据包是否正常通过交换机接口。
第一步:创建ACL
ip access-list extended test-down-in
10 permit icmp host 192.168.2.21 host 10.16.30.10
100 permit ip any any
ip access-list extended test-down-out
10 permit icmp host 10.16.30.10 host 192.168.2.21
100 permit ip any any
ip access-list extended test-up-in
10 permit icmp host 192.168.2.21 host 10.16.30.10
100 permit ip any any
ip access-list extended test-up-out
10 permit icmp host 10.16.30.10 host 192.168.2.21
100 permit ip any any
第二步:开启ACL计数
ip access-list counter test-up-in
ip access-list counter test-up-out
ip access-list counter test-down-out
ip access-list counter test-down-in
第三步:
上下联口调用ACL:
上联口:
ip access-group test-up-in in
ip access-group test-up-out out
下联口:
ip access-group test-down-in in
ip access-group test-down-out out
清楚计数命令:
某公司#clear counters access-list
7.想起之前遇到过两起云桌面虚拟机中毒导致虚拟机无法正常上网的案例,于是对终端进行杀毒,但是未杀出任何东西,排除终端中毒导致上网异常。
8.问题排查到这里基本已经是到了死胡同了,当前只能对问题终端进行抓包分析了。
在终端ping 192.168.3.1,终端自身抓包发现抓不到任何去往192.168.3.1的icmp包,但是同网段数据包正常。是终端没有产生跨网段访问的数据包,还是数据包被终端自身丢弃了?头有点蒙。。。。
终端ping192.168.3.1,但是抓不到对应的数据包截图
9.查看终端自身路由表,什么鬼?竟然存在一条默认路由指向自己,怪不得同网段可以通信,跨网段就不行了。
存在两条默认路由截图
通过route delete 0.0.0.0 mask 0.0.0.0 192.168.2.21 清除掉该指向自己的默认路由,发现依旧ping不通其他网段。
查看路由表,发现还存在一个,于是对问题终端进行重启,重启后网络恢复正常。
重启后,终端正常上网截图