由于没有配置长连接导致用户访问SQL数据库不正常

发布时间:  2014-09-20 浏览次数:  189 下载次数:  0
问题描述
组网结构:
如图4-10所示,USG部署于SQL数据库服务器和用户之间,用来保护服务器的安全。
图4-10 由于没有配置长连接导致用户访问SQL数据库不正常组网图


一开始用户可以正常访问SQL数据库,一段时间后,访问会变慢或者出现应用程序报错的现象。
处理过程
通过抓取和分析经过USG的报文,发现用户访问SQL数据库的报文间隔超过600秒。缺省情况下,USG上SQL会话的老化时间为600秒,即建立SQL会话后,如果600秒内没有报文命中该会话,USG会将该会话老化。USG上的会话老化后,用户的应用程序是无法感知到的。当用户再次发送数据时,USG会重新建立会话,用户的体验就是访问的延时很大。如果应用程序对于数据发送延时有要求,就会出现应用程序报错的现象。
这种情况下,需要在USG上配置长连接功能,保证会话在一段相对较长的时间内不被老化。
根因
USG上的会话老化导致SQL访问中断,出现用户访问SQL数据库变慢或使用该数据库服务的应用程序报错的现象。
解决方案
1. 配置ACL,匹配需要长时间保持会话的报文。
长连接在USG上保存的时间较长,如果匹配的长连接较多时会对USG的性能产生一定影响,因此匹配会话时需要尽可能精确。
此处假设用户的源IP地址为192.168.1.100/32。
acl number 3998
rule 0 permit tcp destination-port eq sqlnet
rule 5 permit ip source 192.168.1.100 0
2. 在域间开启长连接功能。
长连接的老化时间缺省值为168小时,可通过命令firewall long-link aging-time aging-time配置。
此处假设用户所在的安全区域为trust,SQL数据库服务器所在的安全区域为untrust。
firewall interzone trust untrust
firewall long-link 3998 outbound

END