之前有介绍Openwrt下IPID模块的使用及自己编译的Openwrt IPID固件下载,本次记录下编译过程。
Openwrt源码根目录下编辑:
include/netfilter.mk
在ipopt软件包下添加:
$(eval $(call nf_add,IPT_IPOPT,CONFIG_NETFILTER_XT_TARGET_IPID, $(P_XT)xt_IPID))
编辑:
package/iptables/Makefile
在HL下添加:
- IPID
编辑:
package/kernel/modules/netfilter.mk
在TTL下添加:
- IPID
下载dev.openwrt.org.cn提供的IPID源码patch:
#https://www.haiyun.me
wget -P package/iptables/patches/ https://dev.openwrt.org.cn/export/553/trunk/package/iptables/patches/006-iptable-ipid.patch
wget -P target/linux/generic-2.6/patches-2.6.32/ https://dev.openwrt.org.cn/export/553/trunk/target/linux/generic/patches-2.6.32/995-netfilter_linux-ipid.patch
修改iptable-ipid.patch第二行为:
+++ b/extensions/libxt_IPID.c
然后编译Openwrt固件,选择IPOPT软件包即可。
标签:iptables, openwrt, ipid, openwrt编译添加ipid模块
你好,我按照你的文章编译了,但是是在比较新的3.3的内核上编译的,编译成功后运行提示说iptables: Input/output error. 请问你是在2.6.32的内核上编译的吗?
在2.6内核编译的,3未测试。
我尝试改了一下,好像能用了,不知道是不是生效了。
--- old/build_dir/linux-ar71xx_generic/linux-3.3.8/net/netfilter/xt_IPID.c 2014-10-20 21:47:16.000000000 +0800
+++ new/build_dir/linux-ar71xx_generic/linux-3.3.8/net/netfilter/xt_IPID.c 2014-10-20 21:44:57.000000000 +0800
@@ -3,6 +3,7 @@
*/
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include
#include
#include
@@ -29,7 +30,7 @@
}
static unsigned int
-ipid_tg(struct sk_buff *skb, const struct xt_target_param *par)
+ipid_tg(struct sk_buff *skb, const struct xt_action_param *par)
{
struct iphdr *iph;
@@ -41,9 +42,7 @@
return NF_DROP;
iph = ip_hdr(skb);
-
id=get_id(par->out->name);
-
switch(info->mode){
case IP_IPID_PACE:
new_ipid[id] += info->ipid;
@@ -60,14 +59,14 @@
}
-static bool ipid_tg_check(const struct xt_tgchk_param *par)
+static int ipid_tg_check(const struct xt_tgchk_param *par)
{
if(strcmp(par->table, "mangle") != 0 ){
- printk(KERN_WARNING "IPID: can only be called from \'mangle\' table, not \'%s\'.\n", par->table);
- return false;
+ pr_info("IPID: can only be called from \'mangle\' table, not \'%s\'.\n", par->table);
+ return -EINVAL;
}
- return true;
+ return 0;
}
您好,您教程中的 dev.openwrt.org.cn 现在似乎不可用了。请问现在应该在哪里下载 ipid 的 patch 呢?