向netfilter注册了NF_IP_FORWARD钩子函数,自己实现的函数如下, 目的无非就是想得到源IP地址和目的IP地址,编译后报错如下 struct iphdr *hdr = skb->nh.iph;这行dereferencing pointer to incomplete type 想不明白,请问这是怎么回事呀? static unsigned int My_ip_forward( unsigned int hooknum, struct sk_buff ** pskb, ...
by fzy8888cn - C/C++ - 2006-06-08 12:39:55 阅读(1105) 回复(1)
向netfilter注册了NF_IP_FORWARD钩子函数,自己实现的函数如下, 目的无非就是想得到源IP地址和目的IP地址,编译后报错如下 struct iphdr *hdr = skb->nh.iph;这行dereferencing pointer to incomplete type 想不明白,请问这是怎么回事呀? static unsigned int My_ip_forward( unsigned int hooknum, struct sk_buff ** pskb, const struct net_device *in, const struct net_device *out, int (*...
netfilter是一种内核中用于扩展各种网络服务的结构化底层框架。netfilter的设计思想是生成一个模块结构使之能够比较容易的扩展。新的特性加入到内核中并不需要从新启动内核。这样,可以通过简单的构造一个内核模块来实现网络新特性的扩展。给底层的网络特性扩展带来了极大的便利,使更多从事网络底层研发的开发人员能够集中精力实现新的网络特性。 netfilter有4大特性: 1. 每一个协议定义"hooks"(钩子),IPv4定义了5个钩子...
搜索了一下内核源码的/net/ipv4/netfilter目录,包含ipt_do_table的文件如下: [root@cs8 netfilter]# grep ipt_do_table `find .` |grep -v Binary ./ip_nat_rule.c: ret = ipt_do_table(pskb, hooknum, in, out, &nat_table, NULL); ./iptable_raw.c: return ipt_do_table(pskb, hook, in, out, &packet_raw, NULL); ./iptable_mangle.c: return ipt_do_table(pskb, hook, in, out, &packet_mangler, NULL); ./iptable_mangle.c...
通俗的说,netfilter的架构就是在整个网络流程的若干位置放置了一些检测点(HOOK ),而在每个检测点上上登记了一些处理函数进行处理(如包过滤,NAT等,甚至可以是 用户自定义的功能)。 IP层的五个HOOK点的位置如下图所示(copy from ) : --->[1]--->[ROUTE]--->[3]--->[4]---> | ^ | | | [ROUTE] v | [2] [5] | ^ | | v | [local process] [1]:NF...
一、Netfiter简介 ---From netfilter.samba.org/what is netfilter 从Linux Kernel 2.4开始,一个新的网络包过滤框架替代了原来的ipchains/ipfwadm系统,那就是netfilter和iptables。作为内核网络协议 堆的一个扩展子集,netfilter可以在内核空间非常高效的进行包过滤,网络地址转换(NAT)和包重组。同时,新的 netfilter/Iptables框架设计采取了更优的软件设计策略,让全世界的网络程序员可以针对各自的应用的开发各种不同的...
netfilter中那个文件是内核和,用户接口的?(我的意思是说.当用户写一个iptables -t mangle 策略时候,内核中那个文件负责读取用户空间发来的策略设置到表里面去的?)
我的程序如下:
#define __KERNEL__
#define MODULE
#include