Linux网络之连接跟踪 conntrack

一  Linux网络之连接跟踪 conntrack

k8s 有关conntrack的分析

①  什么是连接跟踪

netfilter连接跟踪 conntrack 详述

思考:连接跟踪模块会对'哪些协议'进行'跟踪'?

'TCP'、UDP、ICMP、DCCP、SCTP、'GRE'

②  为什么需要连接跟踪

'没有'连接跟踪有'很多问题'是不好'解决'的:

  1、conntrack是属于'netfilter'的一部分

  2、netfilter主要'功能'就是对'数据包'的'过滤及更改',没有连接跟踪只能对单个数据包进行过滤

  3、比如之前的'无状态防火墙',有了'连接跟踪'后,则可以把'报文的生命周期延长'了

  4、从第一个包到最后一个包都可以关联到一起,就从对'点'的防护做到了对'线'防护,'有状态'防火墙

  5、有些协议如ftp、sip、tftp等有控制连接和数据连接,两个连接是有'从属关系'的

  备注: 如果需要对'此类流量'进行过滤,没有连接跟踪是'不好搞'的

  6、最主要的就是'NAT方案',可以'解决ipv4地址'不够,内网外网连接问题

  7、如果要'实现NAT',就需要让'内核跟踪会话'

  8、设置了CONFIG_NF_CONNTRACK_IPV4就可以构建ipv4 NAT

  9、连接跟踪的'应用场景':NAT、状态防火墙、四层负载均衡

③  连接跟踪的实现原理

连接跟踪: 有'记忆'的记录'flow'流

④  conntrack中的连接

连接跟踪

⑤  NAT网络地址转换

百度百科 NAT   阿里云 NAT  华为云 NAT

NAT也可以替换'源端口'  --> 'WAF'涉及

NAT还可以'进一步'分类:

SNAT: '源'地址转换    --> '出公网'  --> 家庭'上网'

DNAT: '目的'地址转换  --> '进内网'

Full NAT: 原地址和目的地址'都'转换  --> 'LVS'

⑥  思考

思考:iptables规则会影响tcpdump抓包吗?

  1、答案是'不会'

  2、tcpdump抓包是libpcap实现的,libpcap是用bpf实现的

  3、bpf'位于netfilter前',所以'不会影响抓包'

⑦  conntrack 命令

yum install -y conntrack  

conntrack-tool工具

需求1: 查看连接跟踪表之中 'snat转换' 的'连接'

conntrack -L -n 

注意:连接信息之中会记载'未经转换'的ip信息

需求2: 查看'绝对'开始日期

需要'先执行' echo 1 > /proc/sys/net/netfilter/nf_conntrack_timestamp'启用'该功能

然后 conntrack -L -o ktimestamp

需求3: 如何查看一个'连接'的信息

conntrack -L -s 来源ip地址

根据'来源ip'来进行搜索'显示连接'的信息

conntrack -L '每行'的'输出'含义解读

1、第一列tcp表示'协议名'

2、第二列'6'表示TCP的'协议号'

3、第三列'91'表示这条连接的'TTL' 秒

4、第四列'TIME_WAIT'表示'TCP的状态',这一列是'扩展'信息,并'不是'每种协议都会有

5、然后是src=192.168.0.101 dst=10.10.102.155 sport=58554 dport=8000

它表示该连接的'请求包'的四元组

6、然后是src=10.10.102.155 dst=192.168.0.101 sport=8000

它表示该连接的'回复包'的四元组

7、[ASSURED]表示'该连接'的状态,说明'回复方向的包'已经'收到'过了
​
连接标记'说明':

 UNREPLIED:  表示这个连接还'没有'收到任何'回应'

 ASSURED:    连接上已经有'多个'数据包传输,会被标记为 ASSURED

连接跟踪详解

⑧  内核参数

1、nc 表的'容量'

/proc/sys/net/netfilter/nf_conntrack_max

2、查看当前的'连接表 nc'之中连接的'数量'

/proc/sys/net/netfilter/nf_conntrack_count

3、查看nf_conntrack的'TCP连接记录时间'  --> 86400 --> '24h'

/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established

iptables -A INPUT -m conntrack --ctstate RELATED -j ACCEPT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/213889.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言-内存分配

内存分配 1. 引入 int nums[10] {0}; //对int len 10; int nums[len] {0}; //错是因为系统的内存分配原则导致的2. 概述 在程序运行时,系统为了 更好的管理进程中的内存,所以有了 内存分配机制。 分配原则: 2.1 静态分配 静态分配原…

解决top-k问题--堆排序

目录 TOP-K问题 堆排序 考虑以下情况: 1.在n个数里面找最大的一个数 2.在n个数里面找最大的两个数 3.在n个数中求前k大的数 为什么不用大根堆呢? 代码 时间复杂度 TOP-K问题 即求数据结合中前K个最大的元素或者最小的元素,一般情况下数…

使用Redis构建任务队列

文章目录 第1关:先进先出任务队列第2关:优先级任务队列第3关:定时任务队列 第1关:先进先出任务队列 编程要求 在Begin-End区域编写 add_task(task_name) 函数,实现将任务加入队列的功能,具体参数与要求如下…

论文阅读——Loss odyssey in medical image segmentation

Loss odyssey in medical image segmentation github:https://github.com/JunMa11/SegLossOdyssey 这篇文章回顾了医学图像分割中的20种不同的损失函数,旨在回答:对于医学图像分割任务,我们应该选择哪种损失函数? 首…

使用 Kettle 完成数据 ETL

文章目录 使用 Kettle 完成数据 ETL数据清洗数据处理 使用 Kettle 完成数据 ETL 现在我们有一份网站的日志数据集,准备使用Kettle进行数据ETL。先将数据集加载到Hadoop集群中,然后对数据进行清洗,最后加载到Hive中。 在本地新建一个数据集文…

解决vscode中html部分无法嵌套注释

不管是React项目还是Vue项目,相信你一定遇到过同样的问题,如果想要注释的结构内部也存在注释,那么编译器会报以下问题 使用 HTML-Comment 这个插件即可解决问题 选中需要注释的区域并根据系统输入快捷键,可以发现就算嵌套了注释…

【论文解读】角色动画的一致可控的图像到视频合成

论文:https://arxiv.org/pdf/2311.17117.pdf 代码:https://github.com/HumanAIGC/AnimateAnyone 图片解释:给定参考图像(每组中最左边的图像)的一致且可控的角色动画结果。我们的方法能够对任意角色进行动画处理&#…

人工智能原理复习--不确定推理

文章目录 上一篇不确定推理概述主观Bayes(贝叶斯)方法可信度方法证据理论下一篇 上一篇 人工智能原理复习–确定性推理 不确定推理概述 常识具有不确定性。 常识往往对环境有极强的依存性。 其中已知事实和知识是构成推理的两个基本要素,不确定性可以理解为在缺…

Makefile初学之谜之隐式规则

刚开始学习Make教程:https://makefiletutorial.vercel.app/#/docs/fancy-rules,里面有个sample: objects foo.o bar.o all.o all: $(objects)# These files compile via implicit rules foo.o: foo.c bar.o: bar.c all.o: all.call.c:echo "int…

python--自动化办公(Word)

python自动化办公之—Word python-docx库 1、安装python-docx库 pip install python-docx2、基本语法 1、打开文档 document Document() 2、加入标题 document.add_heading(总标题,0) document.add_heading(⼀级标题,1) document.add_heading(⼆级标题,2) 3、添加文本 para…

Spring IOC—基于XML配置和管理Bean 万字详解(通俗易懂)

目录 一、前言 二、通过类型来获取Bean 0.总述(重要) : 1.基本介绍 : 2.应用实例 : 三、通过指定构造器为Bean注入属性 1.基本介绍 : 2.应用实例 : 四、通过p命名空间为Bean注入属性 1.基本介绍 : 2.应用实例 : 五、通过ref引用实现Bean的相…

手机也能“敲”代码?

除了PC个人电脑外,很多电子产品也可以实现代码的编辑,比如智能手机。现在主流的手机操作系统只有两种,一种是大部分手机厂商选择的安卓系统,另外一种是苹果公司独创的ios操作系统。而Android系统是基于Linux开发的专属于移动设备的…

【Leetcode题单】(01 数组篇)刷题关键点总结03【数组的改变、移动】

【Leetcode题单】(01 数组篇)刷题关键点总结03【数组的改变、移动】(3题) 数组的改变、移动453. 最小操作次数使数组元素相等 Medium665. 非递减数列 Medium283. 移动零 Easy 大家好,这里是新开的LeetCode刷题系列&…

Java数据结构之《构造哈夫曼树》题目

一、前言: 这是怀化学院的:Java数据结构中的一道难度中等(偏难理解)的一道编程题(此方法为博主自己研究,问题基本解决,若有bug欢迎下方评论提出意见,我会第一时间改进代码,谢谢!) 后面其他编程题…

【蓝桥杯】翻硬币

翻硬币 思路&#xff1a; 其实有点贪心的意思&#xff0c;依次比较&#xff0c;不同就1&#xff0c;然后修改自己的字符串和下一个的字符串&#xff0c;再匹配。 #include<iostream> #include<string> using namespace std;string now,res;int main(void) {cin&g…

MQ - 消息系统

消息系统 1、消息系统的演变 在大型系统中&#xff0c;会需要和很多子系统做交互&#xff0c;也需要消息传递&#xff0c;在诸如此类系统中&#xff0c;你会找到源系统&#xff08;消息发送方&#xff09;和 目的系统&#xff08;消息接收方&#xff09;。为了在这样的消息系…

java高校实验室排课学生考勤系统springboot+vue

随着各高校办学规模的迅速扩大,学科专业的不断拓宽,传统的实验教学和实验室管理方法已经不能适应学校管理的要求,特别是化学实验室的管理,化学实验室仪器药品繁杂多样,管理任务繁重,目前主要使用人工记录方法管理,使用不便,效率低下,而且容易疏漏.时间一长将产生大量的文件和数…

【面试经典150 | 二分查找】搜索二维矩阵

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;二分查找 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结构等…

c# OpenCV 读取、显示和写入图像(二)

读取、显示和写入图像是图像处理和计算机视觉的基础。即使在裁剪、调整大小、旋转或应用不同的滤镜来处理图像时&#xff0c;您也需要先读取图像。因此&#xff0c;掌握这些基本操作非常重要。 imread()读取图像imshow()在窗口中显示图像imwrite()将图像保存到文件目录里 我们…

细说CountDownLatch

CountDownLatch 概念 CountDownLatch可以使一个获多个线程等待其他线程各自执行完毕后再执行。 CountDownLatch 定义了一个计数器&#xff0c;和一个阻塞队列&#xff0c; 当计数器的值递减为0之前&#xff0c;阻塞队列里面的线程处于挂起状态&#xff0c;当计数器递减到0时…