解决内网客户端通过USG5100访问外部财务服务器不成功问题

发布时间:  2014-09-12 浏览次数:  552 下载次数:  0
问题描述
  客户内网客户端通过USG5100访问外部财务服务器不成功,页面可以打得开但无法登陆,每次登陆均会报错。绕过防火墙访问服务器没问题.客户和服务器是采用B/S架构,网络是采用双线路接入方式,配置了默认的负载分担功能。

拓扑如下:

PC---S5700--S67000--S9700--IPS--USG5100-----Internet电信----Server 服务器
                                                                    -----Internet联通

从客户端PC到USG5100 防火墙会经过多台设备,不便于故障的定位。因此把PC直接接到防火墙USG5100上访问服务器,问题依旧。可以初步判断是防火墙上限制了客户端对服务器的访问。




告警信息
客户端打开页面后的报错信息如下:
 

 
查看会话表是有数据流的


[W5150-HSR]display firewall session table verbose destination global  6.2.9.8
15:47:35  2013/09/04
Current Total Sessions : 1
  http  VPN:public --> public
  Zone: trust--> untrust1  TTL: 00:00:10  Left: 00:00:00
  Interface: GigabitEthernet0/0/1  NextHop: 222.221.251.1  MAC: 00-25-9e-d3-be-7b
  <--packets:6 bytes:742   -->packets:6 bytes:1746
  20.10.2.29:1715[22.21.21.11:3712]-->6.2.9.8:80

 
处理过程
基于服务器报错信息,问题原因应该是和NAT和链路路径负载分担功能有关。

查看当前链路负载方式是默认值。

配置如下:

[USG5150]load-balance flow  hash  source-port source-ip  destination-ip destination-port  

而在USG5100的默认价路由情况下,逐流负载分担的时候,默认以源IP,源端口,目的IP,目的端口哈希计算出接口的,因为端口变化较快,导致访问同一个目的IP地址可能从不同的出接口出去,可能服务端有某种检测导致登陆不成功。从上面的抓包信息,可以确定是这种情况。

建议客户把等价路由负载分担方式修改成以源IP地址测试下:

[USG5150]load-balance  flow  hash  source-ip 

测试问题解决,在内网用客户端通过USG5100 可以正常访问并登陆到服务器上操作了、

根因
对防火墙进行了如下的操作

1、配置了会话的长连接,修改了接口的MTU值。
2、 在防火墙配置firewall tcp-mss 1300;
3、 在防火墙配置nat port range 30000 65535;
4、 在防火墙配置基于该客户端的nat server;

操作后问题依旧,通过对比抓取到的正常访问和不正常数据包信息发现服务端返回Unknown source错误信息。怀疑是服务器对NAT场景有限制。

抓包中发现的报错截图如下:

建议与总结

END