说明
防火墙与交换机直连 ping 有问题,每次只通前两个包,有时完全 ping 不通,但正常业务未受影响,通过使用流量统计的方法找到了问题,是中间串了一台深信服的行为管理的原因。
如果事先知道中间有台行为管理,那么排查起来就比较简单了,但是流量统计功能对本次问题或其他相关的问题是一个很好排错手段。
拓扑介绍
公网 ----- 防火墙(HUAWEI USG 6350) ---- 行为管理(SANGFOR) ----- 核心交换机(HUAWEI S5720)
-
防火墙:地址直接配置在接口
-
行为管理:透明部署在中间
-
核心交换机:使用 vlanif 与其防火墙对接
现象描述
- 从核心 ping 防火墙直连口,前两个包能通,后续报文不通,从防火墙 ping 核心现象同样现象
- 上网正常,其他业务也未受影响
排查过程
-
确认核心交换机没有 ACL 限制 ping
-
确认防火墙与核心对接的端口允许 ping
display cu int g0/0/0 interface GigabitEthernet0/0/0 service-manage ping permit # 确认允许 ping
-
确认防火墙安全策略没有阻挡
注意查看 trust —> local 的策略,如果没有放行,可以加一条放行的策略
-
配置核心交换机的流量统计
# 配置流分类 traffic classifier test_c if-match acl 3000 # 配置流行为 traffic behavior test_b statistic enable # 配置流策略 traffic policy test_p match-order config classifier test_c behavior test_b # 与防火墙连接端口调用策略 interface GigabitEthernet0/0/1 traffic-policy test_p inbound
-
配置 USG防火墙的五元组丢包统计
注:防火墙配置不是像核心交换机那样使用流分类、流行做统计,而是使用基于五元组丢包的统计方法
配置如下
# 注意不要和现有的 ACL 冲突 acl 3002 rule permit ip source 10.10.10.254 0 destination 10.10.10.1 0 # 进入诊断模式 diag # 将报文统计功能与 acl 绑定 firewall statistics acl 3002 enable
-
ping 测试
从防火墙 ping 核心交换机的直连口
# 查看报文的统计信息 display firewall statistics acl 2020-05-08 21:52:59.550 +08:00 Protocol(icmp) SourceIp(10.10.10.254) DestinationIp(10.10.10.1) SourcePort(43989) DestinationPort(2048) VpnIndex(public) RcvnFrag RcvFrag Forward DisnFrag DisFrag Obverse(pkts) : 5 0 2 0 0 Reverse(pkts) : 5 0 2 0 0 Discard detail information: ICMP packet detail information: ICMP_ECHO : 5 ICMP_ECHOREPLY : 2 # dis traffic policy statistics all Interface: GigabitEthernet0/0/1 Traffic policy inbound: test_p Rule number: 1 Current status: success Statistics interval: 300 --------------------------------------------------------------------- Board : 0 --------------------------------------------------------------------- Matched | Packets: 2 | Bytes: 204 | Rate(pps): 0 | Rate(bps): 0 --------------------------------------------------------------------- Passed | Packets: 2 | Bytes: 204 | Rate(pps): 0 | Rate(bps): 0 --------------------------------------------------------------------- Dropped | Packets: 0 | Bytes: 0 | Rate(pps): 0 | Rate(bps): 0 --------------------------------------------------------------------- Filter | Packets: 0 | Bytes: 0 --------------------------------------------------------------------- Car | Packets: 0 | Bytes: 0 ---------------------------------------------------------------------
查看防火墙与交换机的报文的统计信息,可以看到防火墙发出了5个包,但是只有2个回复,核心交换机收到了两个包,另外三个未收到,
-
反向测试
将核心交换机的 ACL 的源和目的地址倒换一下,在上连口的 outbound 方向调用策略,然后分别在防火墙和核心交换机查看报文的统计信息
-
小结
通过报文的统计现象可以看到防火墙与核心都发出了前两个 ping 包,但是对端并未收到,实际场景中,可以问下客户中间是否有其他设备。
本次发现中间有深信服的行为管理,进入 web 控制台查看后,发现是由于硬件平台的限制,设备后台有限制同时在线的人数,并且没有配置自动清楚不长时间无流量的用户,所以才导致设备随机锁定较早上线的 IP,出现本次问题。
-
清除排错使用的配置
# 清除核心交换机配置的 ACL 和 流策略、流行为、流分类 int g0/0/1 undo traffic-policy inbound undo traffic-policy outbound traffic policy test_p undo classifier test_c undo traffic policy test_p undo traffic behavior test_b undo traffic classifier test_c # 清除防火墙的配置 diagnose undo firewall statistics undo acl 3002
总结
-
生产环境中,防火墙与核心交换机可能会有行为管理等透明部署的设备,如果排错中遇到一些奇怪的问题,要多问客户中间是否有什么设备
-
流量统计对于网络故障定位非常有帮助,并且配置较简单,是一个很重要的手段