海运的博客

OpenWRT编译安装Iptables IPID模块

发布时间:September 15, 2012 // 分类:OpenWrt // 4 Comments

之前有介绍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模块

有 4 条 关于" OpenWRT编译安装Iptables IPID模块 "的评论

  1. Jason

    你好,我按照你的文章编译了,但是是在比较新的3.3的内核上编译的,编译成功后运行提示说iptables: Input/output error. 请问你是在2.6.32的内核上编译的吗?

  2. 海运

    在2.6内核编译的,3未测试。

  3. chinashit

    我尝试改了一下,好像能用了,不知道是不是生效了。
    --- 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;

    }

  4. 陈浩南

    您好,您教程中的 dev.openwrt.org.cn 现在似乎不可用了。请问现在应该在哪里下载 ipid 的 patch 呢?

评论已关闭

分类
最新文章
最近回复
  • 海运: ups不知有没选项可设置此参数,不过你可以在另外一台电脑上安装nut客户端自动关机。
  • kgami: 想请教一下,设置了的电脑自动关机之后,几秒后UPS怎么也跟着关机了,导致另外一台电脑没关机就断...
  • 海运: 写的很详细了啊,/etc/nut/hosts.conf用以nut-cgi连接nut服务器参数,...
  • ryan: 请问下nginx配置好了,怎么和这个nut链接呢?最后可视化管理这块能给个详细一点的教程么?谢谢。
  • 1: /etc/config/fstab配置文件 https://openwrt.org/zh/do...
  • 听雨看雪: 找了好久,终于找到UP主,给出的正确解决方案,太感谢了,困扰大半年的问题,重装了N道PVE系统...
  • zr: 大佬,这个bash-completion是从哪个源搞到的
  • 姚生: 要要下载
  • 阿东: 我在编译树莓派的时候也遇到同样的问题,后来发现是make menuconfig 的时候忘了带环...
  • crowjin: 你确定这能过滤??不是所有请求都返回空地址::?