周一的时候一上班接到公司同事告知连接服务器巨慢。我打开防火墙查看日志发现session数量占据超过90%,可能过多的并发session造成了防火墙的拥堵。于是我看是查找问题根源来解决。

首先我用图形界面登录防火墙发现不能使用命令行模式控制,于是我configure--update----save to file导出防火墙的配置发现
set interface ethernet0/2 manage web,然后加了一条语句:set interface ethernet0/2 manage telnet重新导入防火墙配置,现在可以telnet防火墙为所欲为了,哈哈。

进入防火墙就好办了,由于我们的服务器网段是100.100开头的,于是我

get session | i 100.100

发现100.100.0.44的服务器session最多,怎么清除它(session)呢,于是我telnet 防火墙,运行命令

clear session src-ip 100.100.0.44

发现这台服务器的并发session达到了9万多,这还得了,我发现我们的防火墙配置文件(刚才导出的txt文档)中

set ipsec access-session maximum 90000

这条语句告诉我们的访问session最大值,怪不得所有服务器会挂掉,防火墙的session已满。于是我加大防火墙的安全访问session最大值

set ipsec access-session maximum 540000,马上我们的防火墙负载降下来了。当然这只是权宜之计,要找出罪魁祸首才是解决问题的根源所在。刚才查出是0.44那台服务器的问题,经过以上处理可以登录服务器了,经过netstat ps等命令的查看我发现是这台服务器运行的tomcat有问题,关掉tomcat服务后发现一切正常了,找开发人员慢慢解决吧。

怎么分析出罪魁祸首呢,有一款叫NSSA的软件可以分析session记录,下载地址是http://performanceclassifieds.net/NSSA.zip。当然得导出session记录,于是我在一台服务器centos 6.5系统上安装tftp服务,为了多快好省我yum install -y tftp* , 注意配置文件是

 vi /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftp -c #注意必须加-c这个参数,

创建的意思
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4

注意了这个-s就是源文件存放路径。于是我在防火墙上运行命令

get session > tftp 100.100.0.45 20120821.nss,成功把session记录导入到

45上,NSSA这个软件是个压缩文件解压缩后找到nssa.exe就是主程序然后Load

20120821.nss文件点击auto analyze就可以查看到了。

总结一下,解决这个问题需要掌握的知识点:

1.juniper防火墙的设置命令

clear session src-ip 100.100.0.44

get session > tftp 100.100.0.45 20120821.nss

get session | 100.100.0.44

set ipsec access-session maximum 540000

2.安装NSSA软件。网址上面有。

3、在centos系统上安装tftp服务

yum -y install tftp*

vi /etc/xinetd.d/tftp

disable = no (把yes改为no)

server_args             = -s /tftp -c

service xinetd restart

注意tftp用的是udp 69端口在监听。

4.注意你的硬件防火墙最大的安全session并发是多少,不要超过,否则防火墙很可能会挂掉。