Linux的ip_conntrack半景
ip_conntrack会为每一个到来的包绑定一个流,如果找不到遵照五元组可以绑定的流,则会认为这是个流头,那么就会根据该包所携带的五元组信息创建一个新的流,整个场景可以由下面的流程图展示出来:
有了一个基本的认识,再遇到问题的时候就可以用知道的知识来解决了,比如《iptables和策略路由实现×××感兴趣流的截获》一文中的问题,要截获一个特定的流,然而由于拓扑复杂,还要支持任意点到任意点的互通,仅仅根据IP层的信息就很难分辨出一个双向的数据流是由哪里发起的,因此就必然要使用ip_conntrack。ip_conntrack有一个match,那就是ctdir,它可以分辨出方向信息,然而它是如何做到的呢?通过上图就可以看出,ip_conntrack保存了一个哈希表,其中的表项内容就是一个五元组,然而两个方向的五元组信息是分开存放的,这就便于根据单独的五元组进行查找,虽然它们分开存放,属于同一个流的双向两个五元组又由同一个nf_conn结构(不同内核版本名字可能不同)统一了起来。如此一来就很容易辨别方向了。流量截获的mangle规则如下图所示:
以下是策略路由规则:
上述的流量截获方法其实就是使用ip_conntrack机制为IP数据报增加了方向的特征,然后你可以很方便的根据方向信息区分不同的流量,最终使用策略路由将数据包导向特定的目的地。
ip_conntrack虽然功能强大,然而却也带来不少争议,幸运的是关于这些争议的不好的方面都是有解决办法的。
转载于:https://blog.51cto.com/dog250/1269001
Linux的ip_conntrack半景相关推荐
- linux ip_conntrack_max,解?Linux NAT ip_conntrack: table full的方法
解?Linux NAT ip_conntrack: table full的方法 发布时间:2007-09-07 00:28:48来源:红联作者:DominSer 原本Linux NAT用得好好的,没想 ...
- 如何扩展Linux的ip_conntrack
Linux中有一个基于Netfilter的连接跟踪机制,即ip_conntrack,每一个conntrack表示的就是一个流,该流里面保存了大量的信息字段,这些字段本地有效,指导着数据包的转发策略,但 ...
- linux mysql主从半同步_centos下安装mysql主从架构(半同步/多实例)
centos下安装mysql主从架构(半同步/多实例) [toc] 简介 本教程会进行mysql一机多实例的安装.mysql主从同步配置.半同步配置 环境 OS: CentOS Linux relea ...
- linux服务器 版本 比例,Linux比例近半 服务器操作系统混战开始
一项为期半年的虚拟化调查表明,企业普遍存在多种服务器操作系统混用的情况:受IT投资环境的影响,IT经理们现在更加重视服务器资源利用率. 据了解,根据不同应用的特点,大多数企业都在数据中心中同时使用了多 ...
- Linux系统mysql半同步复制
接上一博客(主从复制)在同一操作环境下 在主master: mysql -uroot -pQwer+1234df mysql> install plugin rpl_semi_sync_mast ...
- Linux的NAT如何处理ICMP这类带外信息
清远鸡,不好吃. 关于Linux的nf_conntrack的详细细节,我不再赘述,由于我之前写的文章几乎没有编排目录,我也只能通过谷歌baidu搜索几篇相关列如下,以后我也会注意自己文 ...
- Linux Bridge的IP NAT细节探析-填补又一坑的过程
前序 近日温州皮鞋厂老板正在忙着学习Linux Bridge以及诸多虚拟网卡相关的东西,老湿给了一些指导,但最根本的还要靠温州老板自己.就好像有仙灵在聆听心声,我正因为温州老板的缘故一而再再而三地怀念 ...
- linux 增加 ip_conntrack_max 造成 内核内存问题
1.由ip_conntrack引出的Linux内存映射 有很多文章在讨论关于ip_conntrack表爆满之后丢弃数据包的问题,对此研究深入一些的知道Linux有个内核参数ip_conntrack_m ...
- 开发日记-20190615 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
Preface 我从来没有像今天一样对于Linux系统有着半步踏入大门的感觉. 阅读的进度已经到达了17.5章,对于Linux的理解也在逐渐深入,现在我真的感觉,我以前读的书到底都在读些什么,未免也太 ...
- Linux HOOK
0 - 前言 1 - 绪论 2 - 介绍 2.1 - 什么是中断(interrupt)? 2.2 - 中断和异常(exception) 2.3 - 中断向量 2.4 - 什么是IDT? 3 - 异常 ...
最新文章
- 七招制胜ASP.NET应用程序开发
- Qt元对象QMetaObject的indexOfSlot等函数获取类方法注意问题
- select查询语句执行顺序
- 计算机程序设计艺术+第3卷:排序与查找(第二版)pdf
- python3 gui协程_Python3进阶-协程
- Linux下如何查看JDK安装路径
- VC++6.0安装番茄助手Visual Assist X和VC6LineNumberAddin的方法
- 1000套精选微信小程序源码
- php js轮播图片代码,html中用JS实现图片轮播的实例代码
- 信息系统的风险评估过程与评估方法
- ILSVRC2015-VID数据集结构一览图
- 美爆!《自然》公布2018年19张最震撼的科学图片
- 【7gyy】高手分享辨别电脑病毒技巧
- java 基础运算_Java 基础 运算符
- 微信小程序开发者问题集锦
- 总成绩和平均分计算------C语言
- ebay的api的开发技术笔记
- Python0基础(上)——期末不挂科
- DELPHI BULK INSERT
- plsql相同变量高亮显示
热门文章
- paip.AJAX回调函数不起作用的解决
- 《长安十二时辰》带来的启示:行走江湖,数据泄露怎能不防?
- Rust:Programming Rust:所有权
- 新型肺炎数据,可以用Excel绘制成3维地图
- 【扩频通信】基于matlab扩频通信系统仿真【含Matlab源码 968期】
- 【图像处理】基于matlab分形插值算法调换图片【含Matlab源码 197期】
- python爬虫下一页_Python爬虫怎么获取下一页的URL和网页内容?
- 使用nginx负载均衡的webservice wsdl访问不到_Nginx 反向代理、负载均衡图文教程,写得太好了!...
- 优先体验重播matlab_如何为深度Q网络实施优先体验重播
- tplink连接服务器失败_TPLINK无线路由WDS(桥接)设置方法图解教程 距离远增强wifi信号...