linux imq原理图,编译IMQ模块

1、下载所需软件包:

linux-2.6.25.tar.gz

iptables-1.4.1.tar.bz2

ipset-2.4.9.tar.bz2

netfilter-layer7-v2.21.tar.gz

iptables-1.4.1-imq.diff

linux-2.6.25-imq5.diff

2、拷贝这些文件到 /usr/src/ 目录下,并解压

tar 文件用

$tar -xvf xxx.tar解压

tar.gz文件用

$tar -zxvf xxx.tar.gz解压

如果有tar.bz2文件,用

$bunzip2 xxx.tar.bz2

把文件xxx.tar.bz2变成xxx.tar再用上面的命令解压

3、创建一个软连接

当前目录 /usr/src/

$ln -s linux-2.6.25 linux

4、设置环境变量

当前目录 /usr/src/

$export KERNEL_DIR=/usr/src/linux

$export IPTABLES_DIR=/usr/src/iptables-1.4.1

5、当前目录 /usr/src/

$cd linux

配置内核:

$make menuconfig

保存退出

可以取消一些选项,此处略。

6、进入目录/usr/src/ipset-2.4.9

依次输入:

$make KERNEL_DIR=/usr/src/linux binaries

$make KERNEL_DIR=/usr/src/linux binaries_install

$make KERNEL_DIR=/usr/src/linux patch_kernel

7、打layer7补丁

当前目录/usr/src/linux

输入:

$patch -p1 < ../netfilter-layer7-v2.21/kernel-2.6.25-2.6.28-layer7-2.21.patch

$make menuconfig

进入网络选项把layer7support选上(M),自己查一下:

Core Netfilter Configuration --->

IP: Netfilter Configuration —>

8.打IMQ补丁:

$patch -p1 < ../linux-2.6.25-imq5.diff

$make menuconfig

驱动模块

IMQ (intermediate queueing device) support (IMQ)

Location:

-> Device Drivers

-> Networking support

-> Network device support (NETDEVICES)

-> IMQ (intermediate queueing device) support (IMQ)

选择编译为模块后,有两个参数可以设置:

Number of IMQ devices (IMQ_NUM_DEVS):默认IMQ设备的数量

IMQ behavior (PRE/POSTROUTING):IMQ的处理方法在nat表的勾取位置

默认是BA,也就是:PREROUTING(Before NAT),POSTROUTING(After NAT),可根据实际情况选择。

网络模块配置:

IMQ target support (IP_NF_TARGET_IMQ)

Location:

-> Device Drivers

-> Networking support

-> Networking support (NET)

-> Networking options

-> Network packet filtering (replaces ipchains) (NETFILTER)

-> IP: Netfilter Configuration

另外,IPv6也是可选的:

9、编译内核

$make

$make modules

$make modules_install

$make install

内核编译结束。

10、安装ipset

进入ipset文件夹

$make

$make install

11、安装iptables-1.4.1并 为iptables增加IMQ支持

进入netfilter-layer7-v2.21/iptables-1.4.1.1-for-kernel-2.6.20forward文件夹

将libxt_layer7.c中的

#include 改为:

#include “/usr/src/linux/include/linux/netfilter/xt_layer7.h”

把这两个文件拷贝到iptables-1.4.2/extensions中去。

进入/usr/src/iptables-1.4.1

$patch –p1 < ../iptables-1.4.1-imq.diff

chmod +x extensions/.IMQ-test*

将libip6t_IMQ.c中的:

#include #include 改为:

#include “/usr/src/linux/include/linux/netfilter_ipv6/ip6_tables.h”

#include “/usr/src/linux/include/linux/netfilter_ipv6/ip6t_IMQ.h”

和libipt_IMQ.c中的

#include #include 改为:

#include “/usr/src/linux/include/linux/netfilter_ipv4/ip_tables.h”

#include “/usr/src/linux/include/linux/netfilter_ipv4/ipt_IMQ.h”

然后输入:

$./configure

$make

$make install

$reboot

12.加载IMQ模块

$modprobe imq

$lsmod #查看一下是否加载成功

# ifconfig imq0 up

# ifconfig imq1 up

阅读(1417) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值