linux netfilter 分析,Linux Kernel Netfilter Helper 分析
linux netfilter 与helper相关的hook:
点击(此处)折叠或打开
{
.hook = ipv4_conntrack_in,
.owner = THIS_MODULE,
.pf = PF_INET,
.hooknum = NF_IP_PRE_ROUTING,
.priority = NF_IP_PRI_CONNTRACK,
}
{
.hook = ipv4_conntrack_help,
.owner = THIS_MODULE,
.pf = PF_INET,
.hooknum = NF_IP_POST_ROUTING|NF_IP_LOCAL_IN,
.priority = NF_IP_PRI_CONNTRACK_HELPER,
}
第一个数据包到来的流程:
ipv4_conntrack_in --> nf_conntrack_in --> resolve_normal_ct --> nf_ct_get_tuple --> nf_conntrack_find_tuple(1) --> init_conntrack --> nf_ct_find_expection(2) --> nf_ct_helper_find(3) --> nf_ct_helper_ext_add(4)
(1) 查找tuple五元组,因为是第一个连接,所有查找不到
(2) 查找期待连接,因为没有添加过期待连接,所有也查找不到
(3) 查找注册的helper,这里以tftp为例,找到了tftp注册的helper
(4) 将找到的helper添加到ct结果体中
在之后的ipv4_conntrack_help的hook函数中,会执行ct->helper->help函数,这个help函数tftp_help会添加一个exp到全局期待连接表中
当期待的链接的第一个数据包到达的时候,会在(2)中找到,从而将新的连接与之前的链接联系起来。
linux netfilter 分析,Linux Kernel Netfilter Helper 分析相关推荐
- linux Netfilter在网络层的实现详细分析(iptables)
我在之前已经写过两篇关于netfilter的文章: Linux netfilter hook源码分析(基于内核代码版本4.18.0-80)_yg@hunter的博客-CSDN博客 Linux下使用Ne ...
- Linux Kernel Oops异常分析
0.linux内核异常常用分析方法 异常地址是否在0附近,确认是否是空指针解引用问题 异常地址是否在iomem映射区,确认是否是设备访问总线异常问题,如PCI异常导致的地址访问异常 异常地址是否在st ...
- linux oops产生原理,kernel panic , Oops 等cpu异常的分析与定位
一.kernel panic 二.mips异常机制 三.linuxkernel 对mips异常的处理 四.kernel panic 实例分析 Kernel panic 内核代码,相比用户层代码更难以 ...
- Linux内核学习(六):linux kernel的Kconfig分析
Linux内核学习(六):linux kernel的Kconfig分析 前面我们知道了makefile文件,makefile文件会结合配置文件.config来进行操作.这里就再来看看生成内核.conf ...
- linux内核oops错误码说明,Linux Kernel Oops异常分析
0.linux内核异常常用分析方法 异常地址是否在0附近,确认是否是空指针解引用问题 异常地址是否在iomem映射区,确认是否是设备访问总线异常问题,如PCI异常导致的地址访问异常 异常地址是否在st ...
- 分析Linux 0.11中的kernel部分的makefile文件
# # 在UltraEdit下注释 # # # # if you want the ram-disk device, define this to be the # size in blocks. ...
- Linux 内核(Kernel)组成分析
一.Linux内核简介 Linux 内核采用宏内核架构,即 Linux 大部分功能都会在内核中实现,如进程管理.内存管理.设备管理.文件管理以及网络管理等功能,它们是运行在内核空间中(也可以称之为特权 ...
- 【linux驱动分析】之dm9000驱动分析
[linux驱动分析]之dm9000驱动分析(一):dm9000原理及硬件分析 [linux驱动分析]之dm9000驱动分析(一):dm9000原理及硬件分析 [linux驱动分析]之dm9000驱动 ...
- 学习 Linux内核的意义及内核 head_list分析
转自:http://blog.sina.com.cn/s/blog_6dd71c3c0101mgpf.html 1.分析linux内核的重要性 操作系统作为最核心的软件,关系到国家的战略安全,在现代的 ...
- 【linux驱动分析】之dm9000驱动分析(三):sk_buff结构分析
[linux驱动分析]之dm9000驱动分析(一):dm9000原理及硬件分析 [linux驱动分析]之dm9000驱动分析(二):定义在板文件里的资源和设备以及几个宏 [linux驱动分析]之dm9 ...
最新文章
- bzoj 4871: [Shoi2017]摧毁“树状图”
- sql 自动递增 在java_java基础 之 操作符
- C#中的DateTime:本周,本月,今年,本周
- Linux系统安全与应用(二)——安全机制、安全控制、弱口令检测JR、网络扫描NMAP和控制台命令Netstat
- 关于:以前的某个程序安装已在安装计算机上创建挂起的文件操作 解决办法
- 小白初涉,先试试水。涉及Python,C语言基础,机器学习等
- web.config中配置数据库连接的两种方式
- winform 获取当前项目所在的路径
- CSDN发布博文时出错的截图
- linux工具apt、yum和dnf运用
- 华为笔记本没有网线口_笔记本电脑没有网线接口的怎么办?
- ASUS AC88U 路由器开机自启方法
- linux环境下写的C,一元二次方程示例
- 【unity 保卫星城】--- 开发笔记08(UI轮盘)
- 微信小程序017音乐播放器系统 php java
- 离散数学 —— 集合论(集合的传递性与自反性、幂集、交集、并集、相对补集、绝对补集、对称差或异或、序偶或序对、集合的规模或基数)
- java aes 工具类_Java中的AES加解密工具类:AESUtils
- 帮助你快速懂得心算十进制转二进制。(理解就会)
- 求一份很早的MUD文字游戏,海洋2或者海洋3的代码
- 计算机教案动作按钮,自定义动画及动作设置》教学设计
热门文章
- OpenAI高调站队Pytorch,怎样学Pyorch?
- MATLAB_排列组合_组合生成程序
- Windows10和Ubuntu双系统下用windows引导Ubuntu
- day24 java的集合(1)collection
- HTML统计用户浏览页面时间,如何使用JS代码计算用户浏览页面的时间呢?
- python绘图颜色深浅代表数值_画图理解Python的深浅拷贝
- 商务搜索引擎_网络营销外包——网络营销外包公司如何做好电子商务网站优化?...
- java对接支付宝微信银联_JavaWEB后端支付银联,支付宝,微信对接
- mysql快速导入导出数据库_mysql快速导出与导入
- bat 自动输入密码_三轴自动焊接,三轴搬运机械手示教系统简易说明,分秒学会...