概述
本文主要介绍配置DDoS高防后不能实现会话保持的排查思路。
问题描述
业务配置DDoS高防后,域名接入后进行测试,登录后单击任意的菜单,将会退出登录。
问题原因
- 没有开启会话保持。
- 请求经过DDoS高防后,DDoS高防默认会在Cookie中加入一串DDoS高防防攻击用的字段,增长了网站本身的Cookie长度,如果源站服务处理不妥当会出现问题。
http_cookie: aliyungf_tc=AQAAAFvyfRtP/AIATUWYDheCsQtZUPVB; SSID=19mjjcefouv7f8cpbuhp2f9lv2; current_menu=%2F
- 判断用户Session的存储有基于源IP的校验。
DDoS高防或WAF开启会话保持是指开启DDoS高防的LVS到DDoS高防IP的Tengine这一段,对于SLB后端的服务器而言,同一个客户端的请求,SLB看到的客户端IP只有一个,即会话保持的那个Tengine的IP地址。 如果不开启会话保持,则对SLB的后端的服务器而言,同一个请求,看到的会有多个客户端IP(Tengine)。
解决方案
- 开启TCP监听的会话保持。
- 调整监听为HTTP模式,开启会话保持。
- 在配置DDoS高防之前,直接访问源站SLB,且没有开启会话保持,访问是正常的。说明登录会话保持,不是依赖SLB实现的。
- 会话保持的实现方式是使用Session的方式实现的,同时Session全部保存在MemCache中。Session的信息存放在客户端的Cookies中,获取时是通过Session的ID获取,取SSID值,而非依据顺序获取。
- 开启DDoS高防的会话保持。更多信息,请参见配置会话保持。
适用于
- DDoS高防