美文网首页
nf_conntrack丢包解决方案

nf_conntrack丢包解决方案

作者: Sonic_Ma | 来源:发表于2019-06-21 12:03 被阅读0次

nf_conntrack: table full, dropping packet 解决方案

一、概述

​ nf_conntrack一般存放在/proc/net目录下,当防火墙关闭时,这个目录不会出现。防火墙打开后,nf_conntrack出现在/proc/net目录下面。

查看nf_conntrack(nf_conntrack为防火墙记录用户连接的状态连接表)

cat nf_conntrack
ipv4     2 tcp      6 86 TIME_WAIT src=10.16.104.60 dst=10.0.32.107 sport=36226 dport=22 src=10.0.32.107 dst=10.16.104.60 sport=22 dport=36226 [ASSURED] mark=0 zone=0 use=2

二、解决方案

1、关闭防火墙

systemd stop iptables
systemd disable iptables

切记:在防火墙关闭状态下,不要通过iptables指令(比如 iptables -nL)来查看当前状态!因为这样会导致防火墙被启动,而且规则为空。虽然不会有任何拦截效果,但所有连接状态都会被记录,浪费资源且影响性能 并可能导致防火墙主动丢包!

2、内核参数优化

2.1、状态跟踪表

理论最大值 CONNTRACK_MAX = RAMSIZE (in bytes) / 16384 / (ARCH / 32)

以64G的操作系统为例,CONNTRACK_MAX = 6410241024*1024/16384/2 = 2097152

sysctl –w net.netfilter.nf_conntrack_max = 2097152
2.2、哈希表

哈希表大小通常为总表的1/8,最大为1/2。

CONNTRACK_BUCKETS = CONNTRACK_MAX / 8

同样以64G的操作系统,哈希最佳范围是 262144 ~ 1048576 。

运行状态中通过 sysctl net.netfilter.nf_conntrack_buckets 进行查看,通过文件 /sys/module/nf_conntrack/parameters/hashsize 进行设置。

或者新建 /etc/modprobe.d/iptables.conf ,重新加载模块才生效:

options nf_conntrack hashsize = 262144
2.3、完整参数
net.nf_conntrack_max = 1048576
net.netfilter.nf_conntrack_max = 1048576
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_established = 3600

3、使用裸表

添加“不跟踪”标识。如下示例更适合桌面系统或随意性强的服务器。因为它开启了连接的状态机制,方便和外部通信。

修改 /etc/sysconfig/iptables 文件:

#raw表
iptables -A FORWARD -m state --state UNTRACKED -j ACCEPT
iptables -t raw -A PREROUTING -p tcp -m multiport --dport 80,81,82 -j NOTRACK
iptables -t raw -A PREROUTING -p tcp -m multiport --sport 80,81,82 -j NOTRACK

4、删除nf_conntrack模块

对所有连接都关闭跟踪,不跟踪任何连接状态。不过规则就限制比较严谨,进出都需要显式申明。

lsmod | grep nf_conntrack
modprobe -r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state
modprobe -r nf_conntrack

相关文章

  • nf_conntrack丢包解决方案

    nf_conntrack: table full, dropping packet 解决方案 一、概述 ​ n...

  • 'react-scripts' 不是内部或外部命令,也不是可运行

    原因:create-react-app创建项目时有时会丢包 解决方案:重新 npm install或 npm ...

  • Linux运维面试题(简答篇)

    /var/log/messages日志出现kernel:nf_conntrack:tablefull,droppi...

  • 网络丢包原因及解决方案

    网络丢包是我们在使用ping对目站进行询问时,数据包由于各种原因在信道中丢失的现象。ping 使用了ICMP 回送...

  • 系统架构设计笔记(96)—— 丢包处理策略

    丢包的常用处理方法有: 丢包重传和前向纠错。 1 丢包重传 丢包重传又叫后向纠错,也称为自动重传请求(ARQ),A...

  • 丢包

    全城创建文明城市如火如荼,到处可见志愿者闪亮飒爽的身姿,真诚善良的义举。今天在鹅湖公园视线范围内丢了包,真真让人难...

  • volte丢包

    volte丢包分析思路 共享文档 2018-06-27 2页 4.36分 VOLTE丢包专题 1 高丢包定义 Vo...

  • 音视频开发与计算机基础面试实战

    题目1.丢包恢复算法怎么实现的?丢包是由于网络不好导致的,还是确实丢包了,丢包率怎么反馈给发送端的?题目2.回音消...

  • 弱网测试

    弱网环境存在的问题: 弱网环境下,出现丢包、延时软件的处理机制,最常见的问题就是丢包。 1、丢包: 在TCP协议中...

  • 丢包小结

    丢包不可避免,数据包重发必不可少,但依然也看到很多丢包的现象。我们通过数据包的ID来确认反馈的数据,若丢包在ID呢...

网友评论

      本文标题:nf_conntrack丢包解决方案

      本文链接:https://www.haomeiwen.com/subject/plkyqctx.html