关于防火墙配置长连接的设置

长连接的使用场景
当业务中客户端和服务器长时间无数据交互,空闲时间超过1800秒,会话会因超时被清除。后续客户端没有重新发起连接,直接发送控制报文时导致数据不通。常见于数据库连接。

  1. 重点说明
    以天为单位的会话超时需要开启长效会话比例,否则无效,按协议默认值生效。TCP 1800s,UDP 60s。
    以秒为单位的会话超时配置(最大65535,约18小时),不属于长效会话,可以不开启长效会话比例。
    在服务中定义的超时时间,必须对应策略引用才生效。
    在应用中定义的超时时间,不需要策略引用。
    应用超时时间优先级低于服务。
    命令行show session 或web UI通过策略查看会话超时时间确认是否生效。
    仅对配置完成后新建的会话生效,配置前已存在的会话无效。
  2. 场景解析
    某些业务同一个会话的保持或响应时间比较长,出现以下情况时,会导致业务失败。

业务的连接闲置时间比较长,StoneO会话超时后,客户端和服务器直接连接仍然保持。当请求发起时,客户端不再进行三次握手,如果防火墙开启了syn0检查或响应时间超过三次握手等待时间,相关报文会被丢弃。
客户端发送请求后,服务端响应时间超过应用会话存活期(例如海量数据库查询用时超过1800S),回包经过防火墙时,相关会话已经因超时关闭,从而导致报文被丢弃业务失败。
StoneOS相关会话的生存期需要大于应用的等待和响应时间,如果该时长大于系统预定义生存期,则需要做相关配置。

常见的相关应用:oracle数据库(预定义应用SQLNETv2)、SSL 的UDP数据传输等。

  1. 相关概念
    业务相关概念
    会话闲置时间:只客户端和服务器之间的连接保持时间,只要闲置不超过该时长,客户端和服务器可能会继续使用该连接。

StoneOS相关概念
超时时间:相关会话无任何流量命中时的保持时长,超过该时长会话会关闭。

长效会话:超时时间超过65535秒的会话。

  1. 相关配置
    设置长效会话比例
    以天为单位的会话超时需要开启长效会话比例,否则无效,按协议默认值生效。TCP 1800s,UDP 60s。以秒为单位的会话超时配置(最大65535,约18小时),不属于长效会话,可以不开启长效会话比例。

进入【网络】【全局网络参数】开启 【长效会话】开关,比例通常按推荐10%即可。

关于防火墙配置长连接的设置_第1张图片

CLI 配置:

longlife-sess-percent 10
通过应用定义长连接
如果需要全局对某个常见应用生效,如全网oracle可以对预定义应用进行配置。配置步骤如下

关于防火墙配置长连接的设置_第2张图片

关于防火墙配置长连接的设置_第3张图片

CLI配置:

application SQLNETv2

timeout-day tcp 2

exit
如需对特定的业务生效,如某指定的orcale服务器生效,可以通过自定义应用配置。配置步骤如下,不同版本界面有所区别,逻辑是一致的。

图片

图片
CLI配置:

application oracle-OA

timeout-day tcp 2

exit

signature

application oracle-OA #刚才新建的应用名称

src-addr Any

dst-ip 10.0.0.100/32

protocol tcp dst-port 1521

exit
通过服务定义长连接
大部分主流版本当前WEB UI不支持服务修改超时时间,只能CLI配置;

service “tcp1521”

tcp dst-port 1521 timeout-day 2

exit
服务中定义的连接时长需要策略调用才生效。如流量命中服务为ANY的策略,则超时时间为1800s。

  1. 生效条件
    如下图,因命中预定义应用sqlnetv2生效

关于防火墙配置长连接的设置_第4张图片

如下图,已经命中预定义应用,超时时间仍然是1800,如应用配置没问题,大概率全局没开启长效会话比例。

图片

如超时时间配置单位为秒,不需要开启长效会话即可生效。如下图

图片

当服务和应用中配置的超时时间不一致,以命中策略服务为准,上图会话配置如下;

关于防火墙配置长连接的设置_第5张图片

你可能感兴趣的:(java,网络,服务器)