Print

某局点LB作七层负载可以打开网页、但不能登录典型案例分析

组网及说明

组网简化如下:

客户端-----LB(代理模式)-----后端服务器


告警信息

不涉及


问题描述

问题描述:

网页可以打开,输入账户名密码后无法登录

关键配置:

#

loadbalance snat-pool zcmh

 ip range start 192.168.63.3 end 192.168.63.3

 arp-nd interface Reth1

#

server-farm ؊²廧_sf

 predictor hash address source

 fail-action reset

 snat-pool zcmh

 probe 10.128.23.2http¼

 probe 10.128.23.3http¼

 success-criteria at-least 1

 real-server zcmh1 port 5200

  success-criteria at-least 1

  probe 10.128.23.2http¼

 real-server zcmh2 port 5200

  success-criteria at-least 1

  probe 10.128.23.3http¼

#

loadbalance class zcmh type generic

 match 2 acl 3000

#

loadbalance action zcmh type generic

 server-farm ؊²廧_sf sticky zcmf

#

loadbalance policy zcmh type generic

 class zcmh action zcmh

#

virtual-server zcmh type http

 port 443

 virtual ip address 192.168.63.3

 lb-policy zcmh

 default server-farm ؊²廧_sf sticky zcmh

 ssl-server-policy ssl

 service enable

 sticky-sync enable

#



过程分析

对于LB设备七层负载的问题,一般建议的方式是在设备上进行抓包,抓包的流量包括:

1. 客户端到虚服务的流量(双向)

2. LB设备到实服务器的流量(双向),如果涉及SNAT,代表SNAT地址池地址到实服务器的流量;如果不涉及SNAT,则是客户端到实服务器的流量。


通过抓包发现2个重要信息:

1. 客户端和虚服务建立的是https连接,LB和后端实服务器建立的是http连接。

2. 前面的报文交互没有问题,问题出现在后端实服务器重定向连接到虚服务IP(该连接类型为http),鉴于终端到虚服务是https,因此重定向访问失败。




解决方法

重新创建http类型的动作,做应答方向的http Location 改写,将http改为https 后测试成功。 








%1-9Header值中正则表达式取出的变量值,最多支持9