Iptables模块reload问题(解决iptables服务重启导致TCP长连接断开)

Iptables模块reload问题(解决iptables服务重启导致TCP长连接断开)


    在最近的Linux内核里,默认情况下,Iptables重启动的时候,iptables模块会被卸载(unload),然后加载重启。

    这种配置下 iptables如果重启,对于那些tcp发起端window scale option有效的的连接会产生以下影响:

     1,重启后 window size会不能被正确识别;

     2,已经建立的tcp会话状态会从ESTABLISHED → INVALID 导致会话中断;

 

 以上问题对于有重传机制的应用或许问题不大,但是如果一个应用不支持重传,当底层tcp会话中断后 就会发生异常问题。

  如果应用环境中,这种类型会话偏多,而且iptabls的配置又因为安全问题要经常变动,就有必要探讨是否配置强制iptable模块在重启时不被unlod。

 

以下描述整个配置的修改过程:

1 确认配置情况

① window scale option 的配置确认
# cat /proc/sys/net/ipv4/tcp_window_scaling
1
↑ window scale option有效
0:无效
② iptables的配置
# grep UNLOAD /etc/sysconfig/iptables-config
IPTABLES_MODULES_UNLOAD="yes"
↑ iptables模块在重启是会被unload
"no" :不会被unload

2 修改配置

① 系统环境
$ uname -a
Linux test01 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux

② 配置修改成重启iptables
# /etc/init.d/iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: nat filter [ OK ]
Unloading iptables modules: [ OK ] ← 被卸载了
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_n[ OK ] ← 重新加载
③ 修改配置
# vi /etc/sysconfig/iptables-config
IPTABLES_MODULES_UNLOAD="no"

④ 配置后重启iptables的结果如下:
# /etc/init.d/iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: nat filter [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_n[ OK ] ← 模块加载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值