Netfilter NF_HOOK执行流程分析一
来源:互联网 发布:土地利用空间优化配置 编辑:程序博客网 时间:2024/05/28 11:49
一 首先看一下netfilter的整体架构
netfilter的具体实现,以NF_IP_PREROUTING为例
二 NF_HOOK的实现原理
int ip_rcv(struct sk_buff *skb, struct net_device *dev, structpacket_type *pt, struct net_device *orig_dev)
{
}
通过NF_HOOK的宏定义可以看到,NF_HOOK主要是调用nf_hook_slow,那么,nf_hook_slow主要做了哪些东西呢?
nf_hook_slow(pf, hook, skb, indev, outdev, okfn, thresh)
{
next_hook:
}
nf_interate 的作用就是递归调用注册的钩子函数,
unsigned int nf_iterate(struct list_head*head,struct sk_buff *skb,unsigned int hook,const struct net_device*indev,
{
repeat:
#ifdef CONFIG_NETFILTER_DEBUG
#endif
}
三 filter NAT mangle链的具体实现
先看一下下面的结构体
struct nf_hook_ops {
};
其实nf_iterate就是递归搜索list 执行hook函数。
使用# iptables –nvL,可以看到有如下的输出,这三个表是怎么注册上去的呢?
static int __init iptable_filter_init(void)
{
}
防火墙分别在(1 << NF_INET_LOCAL_IN) | \(1 << NF_INET_FORWARD) | \ (1<<NF_INET_LOCAL_OUT))注册HOOK函数,并执行iptable_filter_hook函数。
到了这里大体就明白了,NF_HOOK执行相应额HOOK函数,例如在IP_PREROUTING里面执行防火墙注册的HOOK函数,也就是到了iptables_filter_hook,然后遍历FILTER里面的各个table,执行相应的动作。那么table是怎么跟一条规则- Netfilter NF_HOOK执行流程分析一
- Netfilter NF_HOOK执行流程分析 内核kprobe机制中的Jprobe机制 drop_watch hook_inspector
- Netfilter之连接跟踪的执行流程分析
- NF_HOOK
- NF_HOOK conntrack分析[NAT篇]
- 关于Netfilter NF_HOOK宏的outdev参数bug
- scrapy源码分析(一)---------------------总执行流程概览
- WINVNC分析(一)——源码执行流程
- classloader执行流程分析
- struts2执行流程分析
- Hive执行流程分析
- qemu执行流程分析
- cocos2dx 执行流程分析
- SQL执行流程分析
- tp执行流程分析
- struts2执行流程分析
- thinkphp5 执行流程分析
- Netfilter分析
- 兼容性及经验汇总
- sqlserver字符串拆分(split)方法汇总
- qsort用法
- 在vs2010中编译log4cxx-0.10.0详细方法(从下载、编译、解决错误详细介绍)
- The method of type must override a superclass method解决方式
- Netfilter NF_HOOK执行流程分析一
- WPF 窗口边框阴影效果
- html基本结构
- 十大相似图片搜索网站(以图搜图)
- http协议
- 数据结构 之 并查集
- css选择器
- PHP生成word
- url重写