Linuxconntrack功能简介与操作
什么是 conntrack
大家在关注Linux性能调优时可能会接触到Linux的连接跟踪,我们先回顾一下相关概念,了解一下它的作用是什么。
连接跟踪(connection tracking,conntrack)是Linux内核中引入的nf_conntrack 模块所实现的功能,同时支持IPv4 和 IPv6,用于跟踪连接的状态,供其它模块或程序功能使用。 Linux为每一个经过网络堆栈的数据包都会记录其状态,生成一个新的连接记录,并将后续的数据包都分配给对应的连接,并更新连接的状态。连接跟踪是许多网络应用的基础。如nat地址转换、有状态防火墙等功能,都依赖连接跟踪功能。
需要注意的是,连接跟踪中所说的"连接"的概念,与 TCP/IP 的"连接"并不完全相同, 在 conntrack 中,一个元组定义的一条数据流(flow)就表示一条连接,类似于 UDP、ICMP 协议在 conntrack 中也都是有连接记录的。
顺便说一下 conntrack 的实现原理,它是通过netfilter的hook机制,在相应点上拦截报文,进行相应的conntrack的建立和处理。
还是实际操作一下 conntrack 吧
首先,先检查系统内核是否已正常加载nf_conntrack:# lsmod | grep nf_conntrack nf_conntrack_ipv6 18935 7 nf_defrag_ipv6 35104 1 nf_conntrack_ipv6 nf_conntrack_ipv4 15053 6 nf_defrag_ipv4 12729 1 nf_conntrack_ipv4 nf_conntrack 139264 6 nf_nat,nf_nat_ipv4,nf_nat_ipv6,xt_conntrack,nf_conntrack_ipv4,nf_conntrack_ipv6 libcrc32c 12644 3 xfs,nf_nat,nf_conntrack
注意,如果关闭了防火墙firewalld,内核不会加载nf_conntrack模块。
安装 conntrack 工具集,便于方便的查看和操作 conntrack:# dnf install -y conntrack-tools
之后就可以通过命令查看系统当前的 conntrack 信息:# conntrack -L tcp 6 299 ESTABLISHED src="/c2021/img/data-img.jpg" data-src=192.168.1.109 dst=192.168.1.182 sport=55527 dport=22 src="/c2021/img/data-img.jpg" data-src=192.168.1.182 dst=192.168.1.109 sport=22 dport=55527 [ASSURED] mark=0 use=1 conntrack v1.4.4 (conntrack-tools): 1 flow entries have been shown.
这里可以看到,我们有一个SSH连接到这台Linux,能识别到的信息包括协议、协议号、session生存时间、session状态、源IP地址、目的IP地址、源端口、目的端口、连接的状态。
从远端ping一下这台机器,这里能看到识别到了ICMP协议及其它元组信息:# conntrack -L tcp 6 431999 ESTABLISHED src="/c2021/img/data-img.jpg" data-src=192.168.1.182 dst=192.168.1.109 sport=22 dport=55527 src="/c2021/img/data-img.jpg" data-src=192.168.1.109 dst=192.168.1.182 sport=55527 dport=22 [ASSURED] mark=0 use=1 icmp 1 29 src="/c2021/img/data-img.jpg" data-src=192.168.1.121 dst=192.168.1.182 type=8 code=0 id=2031 src="/c2021/img/data-img.jpg" data-src=192.168.1.182 dst=192.168.1.121 type=0 code=0 id=2031 mark=0 use=1 conntrack v1.4.4 (conntrack-tools): 2 flow entries have been shown.
当然我们可以查看系统的运行时信息,只是显示格式上的差异,信息是基本一致的:# cat /proc/net/nf_conntrack ipv4 2 tcp 6 431999 ESTABLISHED src="/c2021/img/data-img.jpg" data-src=192.168.1.182 dst=192.168.1.109 sport=22 dport=55527 src="/c2021/img/data-img.jpg" data-src=192.168.1.109 dst=192.168.1.182 sport=55527 dport=22 [ASSURED] mark=0 zone=0 use=2 ipv4 2 icmp 1 29 src="/c2021/img/data-img.jpg" data-src=192.168.1.121 dst=192.168.1.182 type=8 code=0 id=2031 src="/c2021/img/data-img.jpg" data-src=192.168.1.182 dst=192.168.1.121 type=0 code=0 id=2031 mark=0 zone=0 use=2
我们还可以-E参数,实时观察链接层面的变化:# conntrack -E [NEW] icmp 1 30 src="/c2021/img/data-img.jpg" data-src=192.168.1.121 dst=192.168.1.182 type=8 code=0 id=2074 [UNREPLIED] src="/c2021/img/data-img.jpg" data-src=192.168.1.182 dst=192.168.1.121 type=0 code=0 id=2074 [UPDATE] icmp 1 30 src="/c2021/img/data-img.jpg" data-src=192.168.1.121 dst=192.168.1.182 type=8 code=0 id=2074 src="/c2021/img/data-img.jpg" data-src=192.168.1.182 dst=192.168.1.121 type=0 code=0 id=2074 [DESTROY] icmp 1 src="/c2021/img/data-img.jpg" data-src=192.168.1.121 dst=192.168.1.182 type=8 code=0 id=2074 src="/c2021/img/data-img.jpg" data-src=192.168.1.182 dst=192.168.1.121 type=0 code=0 id=2074
事件参考
在某些场景下,如主机的并发连接数过多,达到conntrack最大跟踪数量,会导致链接层面的一些异常,拿云上的一个案例分享:
Linux实例出现间歇性丢包,无法连接实例,在系统日志中重复出现大量类似以下错误信息。kernel: nf_conntrack: table full, dropping packet. kernel: nf_conntrack: table full, dropping packet.
涉及到的内核参数包括:
net.netfilter.nf_conntrack_buckets
net.netfilter.nf_conntrack_max
此场景下,一般建议调大nf_conntrack_max参数值来进行处理,由于系统维护连接比较消耗内存,需要在系统空闲和内存充足的情况下调大nf_conntrack_max参数。
总结
Linux conntrack 功能是诸多应用的基础,在某些性能调优、故障处置场景下需要关注到conntrack,希望本文介绍的一些内容能对大家有所帮助。
马上就要入冬啦!42款值得入大牌围巾干货合集圣诞节元旦春节的临近冬天时髦精女孩儿男孩们围巾快囤起来Gucci古驰的围巾色彩也开始更加丰富,越来越年轻化,双G大logo配上不同颜色,时尚感up!LV路易威登经典的老花Monog
光大乌龙指事件年月日上午点分秒,沪指突然一改波澜不惊的盘面,被一股神秘的力量直线拉升点,期间没有一丝回落,整个过程一气呵成,沪指瞬间暴涨,分钟内成交额约亿元,造就了年来最大的盘中涨幅。当时看盘的
爆笑神回复如果你的性别互换了,你要做的第一件事是什么?喜欢的小伙伴们可以移动您尊贵的手指点击右上角关注哦,每日必更!这是亲弟啊,此弟不可久留笑哭这个限速25码怎么可以解除啊?像这种情况下应该怎么办?在线着急等哈哈哈哈哈哈哈笑死我了偷笑
张兰奋斗不止的一生为事业拼,为弟复仇,65岁为儿孙卖酸辣粉我65周岁了,我天天带货挣钱,我知道他签着高额抚养费,养着一帮你们家的蛀虫,我认了!当大S经纪人嘲讽张兰借热度卖了1万份酸辣粉时,65岁的张兰正在顶着压力和心酸,一天数小时直播卖货
双语世界杯2022卡塔尔世界杯开幕,主题英语知识来啦世界杯的全名叫国际足联世界杯,由国际足球联合会举办,你可能会发现,国际足联的英文缩写并不对应FIFA,这其实是因为国际足联在法国成立,其法语为FdrationInternation
教育家刘道玉面向青少年发出第二个创造宣言来源武汉文明网近日,著名教育家武汉大学原校长刘道玉,在鲐背之年,面向青少年发出第二个创造宣言。刘道玉说,1943年10月,人民教育家陶行知发表了创造宣言,呼吁创造之神,你回来呀!可
专精特新专板将成为区域性股权市场的重要亮点为贯彻高层在提升中小企业竞争力若干措施为专精特新中小企业办实事清单等文件中提出的加强直接融资支持在区域性股权市场推广设立专精特新专板的指示精神,支持专精特新中小企业的发展,近日,证
趁爷爷睡着了,帮他把茶杯洗了一下!结果评论区沸腾了,哈哈哈大家看这样的情况究竟应该怎么修呢所以不要随便开摄像头啊这么可爱的姑娘究竟怎么才能娶回家呢换做是你你干不干呢这究竟是什么神器看着很实用的样子啊你有没有发现这样的发现呢男人和女人对待下
SKSignet将在得州建快速充电桩工厂来源盖世汽车星云盖世汽车讯据外媒报道,SKSignet宣布将在得克萨斯州的普莱诺(Plano)建立一座新的电动汽车充电桩制造厂,每年生产超过1万根电动汽车快速充电桩。SKSigne
OPPOReno9系列发布在即,48个月久用流畅加持,终极大招正式曝光想问下大家是多久换一次新手机呢?以前可能有不少用户是一年一换,但如今随着手机技术的进步,很多手机的性能已经越来越好了,他们觉得手机够用就行没必要年年换新,这就导致人们的换机周期在不
核酸小屋,变身近日,周庄镇首批48套公共服务智慧小屋正式投入运行。这些新落成的智慧小屋,由原来的核酸采样小屋升级而成,进一步深化了公共卫生公共安全政务服务三大板块的服务功能,是周庄镇推进现代化政