WAF在反向代理-牵引模式下引流后出现业务不通的排错案例分析

问题描述

故障背景:新增一台WAF,旁挂在H3C核心交换机上。WAF部署模式为反向代理-牵引模式。通过策略路由引流的方式将内网服务器访问互联网的流量引到WAF上,将外网回来的流量引到WAF上来实现对服务器站点的保护。(如下图所示)
故障现象:在H3C核心交换机上配置针对服务器网段业务双向的策略路由,在将其引流到WAF后,出现无法访问的问题。
waf1.png

过程分析

H3C核心交换机添加策略路由后出现了无法访问外网的问题,进行排查,检查策略路由的配置是否正确,确认配置无误后尝试路由跟踪命令来排查问题。
通过路由跟踪命令发现了下图所示问题
1.外部流量访问服务器
waf2.png

2.服务器访问外部
waf3.png
问题现象:在旁路的WAF和核心交换机之间出现环路,内网服务器发送的数据包匹配核心交换机下联策略路由,核心交换机将数据包转发到旁路WAF上,WAF匹配默认路由把包发回给核心交换机,可是核心交换却又把包发回给旁路设备 ,导致环路。
确认问题后,经过讨论测试确认了故障原因,如下图所示:
waf4.png
原理说明: 交换机由路由表和各种策略生成fib表,首包查fib表生成快速转发表,后续报文优先匹配快速转发表,默认快速转发表由五元组决定 。 快速转发使用5元组(源IP地址、源端口号、目的IP地址、目的端口号、协议号)来标识一条数据流。当一条数据流的第一个报文通过查找路由表转发后,在高速缓存中生成相应的转发信息,该数据流后续报文的转发就可以通过直接查找快速转发表进行转发。这样便大大缩减了IP报文的排队流程,减少报文的转发时间,提高IP报文的转发速率。快速转发能处理已经分片的IP报文,但不支持对IP报文的再分片。

解决办法

关闭快速转发负载分担功能,将会根据入接口的不同对五元组标识的数据流再次做出区分,即将入接口作为区分数据流的另一特征标识。
在配置了策略路由的H3C核心交换机上关闭快速转发负载分担功能。
相关命令:undo ip fast-forwarding load-sharing
PS.安全设备在旁挂引流时,注意引流的方向和交换机的默认转发规则。

添加新评论