netfilter 参考pywj的《netfilter + nf_conntrack + iptables》
2014-05-04 14:28
513 查看
以broadcom 4.12为例
netfilter.h中,
extern struck list_head nf_hooks[NFPROTO_NUMPROTO][NF_MAX_HOOKS];
netfilter.h中,
#define NF_MAX_HOOKS 8
enum
{
NFPROTO_UNSPEC = 0,
NFPROTO_IPV4 = 2,
NFPROTO_ARP = 3,
NFPROTO_BRIDGE = 7,
NFPROTO_IPV6 = 10,
NFPROTO_DECENT = 12,
NFPROTO_NUMPROTO,
};
1: 这个二维数组的每一项代表了一个钩子被调用的点, NF_PROTO代表协议栈, NF_HOOK代表协议栈中的某个路径点。
2: 所有模块都可以通过nf_register_hook() 函数将一个钩子项挂入想被调用点的链表中,(通过protocol和 hook指定一个点)。 这样, 该钩子项就能处理指定protocal 中, 和指定hook点流经的数据包。
3: netfilter在不同协议栈的不同点上(例如arp_rcv(), ip_rcv(), ipv6_rcv(), br_forward()等)放置NF_HOOK函数, 当数据包经过了某个协议栈(NF_PROTO)的某个点(NF_HOOK)时, 该协议栈会通过NF_HOOKS函数调用对应钩子链表(nf_hooks[NF_PROTO][NF_HOOK])中注册的每一个钩子项来处理该数据包。 如上一章《IPv4接受与转发协议栈流程图》中IPv4协议处理该函数调用的HOOK点。
netfilter.h中,
extern struck list_head nf_hooks[NFPROTO_NUMPROTO][NF_MAX_HOOKS];
netfilter.h中,
#define NF_MAX_HOOKS 8
enum
{
NFPROTO_UNSPEC = 0,
NFPROTO_IPV4 = 2,
NFPROTO_ARP = 3,
NFPROTO_BRIDGE = 7,
NFPROTO_IPV6 = 10,
NFPROTO_DECENT = 12,
NFPROTO_NUMPROTO,
};
1: 这个二维数组的每一项代表了一个钩子被调用的点, NF_PROTO代表协议栈, NF_HOOK代表协议栈中的某个路径点。
2: 所有模块都可以通过nf_register_hook() 函数将一个钩子项挂入想被调用点的链表中,(通过protocol和 hook指定一个点)。 这样, 该钩子项就能处理指定protocal 中, 和指定hook点流经的数据包。
3: netfilter在不同协议栈的不同点上(例如arp_rcv(), ip_rcv(), ipv6_rcv(), br_forward()等)放置NF_HOOK函数, 当数据包经过了某个协议栈(NF_PROTO)的某个点(NF_HOOK)时, 该协议栈会通过NF_HOOKS函数调用对应钩子链表(nf_hooks[NF_PROTO][NF_HOOK])中注册的每一个钩子项来处理该数据包。 如上一章《IPv4接受与转发协议栈流程图》中IPv4协议处理该函数调用的HOOK点。
相关文章推荐
- leetcode题目:LRU Cache
- firefox os 模拟器安装及启动(1)
- Mysql无法创建函数解决办法
- WCF Data Service ----实例
- 通过connectify在windows7下创建无线wifi热点(解决Y460失败方法)
- SQL 学习日志02
- 黑马程序员——学习日记16 java IO流 (中)
- Linux Booting Process: A step by step tutorial for understanding Linux boot sequence
- 判断是否重复录入
- 托管c++ (CLI) String^ 到 std::string 的相互转化
- 来广州传智播客学习PHP,不做孬种程序员
- uml类图设计系统详解实例
- php 正则匹配电话号手机号邮箱网址
- 第二章排错的工具:调试器Windbg(上)
- linux系统编程之管道(三):命令管道(FIFO)
- 线性表-链表栈
- UVaOJ 490 - Rotating Sentences
- 选择树--胜者树与失败树
- Android quota
- 横竖屏切换时,禁止activity重新创建,android:configChanges="keyboardHidden|orientation" 不起作用