USG6650虚墙策略路由造成回包路径不一致问题

发布时间:  2016-04-01 浏览次数:  240 下载次数:  0
问题描述

USG6650(V100R001C30SPC100)、AVE(V100R001C00SPC100)、WAF(V100R001C00SPC200 )
防火墙启用了虚墙并在根墙和虚墙上都做了PBR,想要达到的效果就是需要访问HTTP和HTTPS的业务,都必须从WAF经过,这样可以有效的防止网页被篡改,但是经过配置发现从根墙到虚墙的PBR成功,而反方向的却并没有成功。

处理过程

1、首先从客户内网侧打开网页,从而形成TCP三次握手的报文;
2、2、登录防火墙,进入监控界面,查看TCP报文(可使用过滤功能对特定网段进行过滤,方便查找),发现TCP三次握手报文不完整(由下图并根据tcp的同步编号可知,中间少了一个tcp包),经过比对发现来回路径不一致;

(TCP三次握手过程:
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据;)

3、分析,从根墙侧访问内网的路由是正常的,说明根墙PBR配置无误,错误应该出在虚墙上;
4、进入虚墙查看配置,发现与根墙的配置一致(源区域、源地址池和源端口号);

根因
虚墙上配置的PBR与根墙一致(主要是源区域、源地址池和源目的端口号),导致匹配虚墙的PBR规则时,匹配不上,就不走PBR而走其他路由。
解决方案

将虚墙的PBR配置中源区域、源地址池和源端口号与目的区域、目的地址池和目的端口号交换(原来的配置为:源区域是untrust该为trust,源地址池为外网地址改为客户内网地址,源端口号为任意改为8080和80)

配置完成后在防火墙上抓包验证配置:

TCP三次握手过程完整,问题解决。

建议与总结
由于该项目中运用了虚墙,故逻辑拓扑比较复杂,所以在配置时一定要搞清楚数据流的走向,哪个是源,哪个是目的!

END