免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: springwind426
打印 上一主题 下一主题

[网络管理] 发布一个速度匹配的内核模块(hashspeed) [复制链接]

论坛徽章:
0
61 [报告]
发表于 2008-03-08 15:50 |只看该作者
试试把 proc_net 都换成 init_net.proc_net 试试

我是参考xt_hashlimit来修改的,我看2.6.24里面的xt_hashlimit.c里面是用的 init_net.proc_net
而2.6.23的xt_hashlimit.c里面用的是 proc_net

论坛徽章:
0
62 [报告]
发表于 2008-03-09 00:23 |只看该作者
原帖由 springwind426 于 2008-3-8 15:50 发表
试试把 proc_net 都换成 init_net.proc_net 试试

我是参考xt_hashlimit来修改的,我看2.6.24里面的xt_hashlimit.c里面是用的 init_net.proc_net
而2.6.23的xt_hashlimit.c里面用的是 proc_net


结果倒是编译出来了,不过不少警告。。。

make
make -C /lib/modules/2.6.24.3skylove/build M=/data/hashspeed-0.1 modules
make[1]: Entering directory `/data/linux-2.6.24.3'
make[1]: Warning: File `.vmlinux.o.cmd' has modification time 2.4e+04 s in the future
make[2]: Warning: File `include/config/auto.conf' has modification time 2.4e+04 s in the future
  CC [M]  /data/hashspeed-0.1/ipt_hashspeed.o
make[2]: 警告:检测到时钟错误。您的创建可能是不完整的。
  Building modules, stage 2.
make[2]: Warning: File `include/config/auto.conf' has modification time 2.4e+04 s in the future
  MODPOST 1 modules
  CC      /data/hashspeed-0.1/ipt_hashspeed.mod.o
  LD [M]  /data/hashspeed-0.1/ipt_hashspeed.ko
make[2]: 警告:检测到时钟错误。您的创建可能是不完整的。
make[1]: 警告:检测到时钟错误。您的创建可能是不完整的。
make[1]: Leaving directory `/data/linux-2.6.24.3'
cc -O2 -Wall -DIPTABLES_VERSION=\"1.4.0\" -I/usr/src/iptables/include -I/lib/modules/2.6.24.3skylove/build/include -fPIC -c libipt_hashspeed.c
libipt_hashspeed.c: 在函数 ‘parse’ 中:
libipt_hashspeed.c:198: 警告:传递参数 4 (属于 ‘string_to_number_ll’)时在不兼容的指针类型间转换
libipt_hashspeed.c: 在函数 ‘print’ 中:
libipt_hashspeed.c:321: 警告:格式 ‘%Lu’ 需要类型 ‘long long unsigned int’,但实参 2 的类型为 ‘u_int64_t’
libipt_hashspeed.c: 在函数 ‘save’ 中:
libipt_hashspeed.c:360: 警告:格式 ‘%Lu’ 需要类型 ‘long long unsigned int’,但实参 2 的类型为 ‘u_int64_t’
cc -shared -o libipt_hashspeed.so libipt_hashspeed.o

论坛徽章:
0
63 [报告]
发表于 2008-03-09 01:03 |只看该作者
虽然有报告警告,不过好象可以用了呢。。。我测试了一下, 在  -t mangle -A POSTROUTING  这样的方式下才能限制,在 -t nat ,或者 FORWARD 指定的时候不行

论坛徽章:
0
64 [报告]
发表于 2008-03-09 01:50 |只看该作者
原帖由 skylove 于 2008-3-9 00:23 发表


结果倒是编译出来了,不过不少警告。。。

make
make -C /lib/modules/2.6.24.3skylove/build M=/data/hashspeed-0.1 modules
make[1]: Entering directory `/data/linux-2.6.24.3'
make[1]: Warning: ...

你的是 64 位机吗?

论坛徽章:
0
65 [报告]
发表于 2008-03-09 08:19 |只看该作者
原帖由 platinum 于 2008-3-9 01:50 发表

你的是 64 位机吗?


恩,是的,就是 http://linux.chinaunix.net/bbs/thread-908047-1-1.html 这帖子里提到的机器到货了,这几天正在配置,顺便也想用它把以前的一些计划和实验完成

论坛徽章:
0
66 [报告]
发表于 2008-03-10 11:34 |只看该作者
想问下老大这个限速模块能否实现在一个网段机器中``抽出几台机器不限速的给自己用
该怎么做?
谢谢

论坛徽章:
0
67 [报告]
发表于 2008-03-10 14:18 |只看该作者
能用在2.4内核下吗?

论坛徽章:
0
68 [报告]
发表于 2008-03-10 14:47 |只看该作者
原帖由 wwlovezz 于 2008-3-10 11:34 发表
想问下老大这个限速模块能否实现在一个网段机器中``抽出几台机器不限速的给自己用
该怎么做?
谢谢


完全可以的

只要把允许的规则放在限制速度的规则前面就可以了
比如:

iptables -t forward -o eth1 -s IP -j ACCEPT #不需要限制速度的IP
iptables -t forward -o eth1 ....   #限制速度


这个只是一个速度匹配的内核模块,因此,遵循netfilter的规则控制,只要前面有匹配的规则,那么就不匹配后面的规则。

论坛徽章:
0
69 [报告]
发表于 2008-03-12 09:39 |只看该作者
我用2.6.24 iptables1.4编译出错类。。。。。
Makefile:24: You need to install iptables sources and maybe set IPTABLES_SRC
make -C /lib/modules/2.6.24.3/build M=/usr/src/hashspeed-0.1 modules
make[1]: Entering directory `/usr/src/linux-2.6.24.3'
  CC [M]  /usr/src/hashspeed-0.1/ipt_hashspeed.o
/usr/src/hashspeed-0.1/ipt_hashspeed.c: ÔÚº¯Êý ¡®ipt_hashspeed_init¡¯ ÖУº
/usr/src/hashspeed-0.1/ipt_hashspeed.c:751: ´íÎ󣺡®proc_net¡¯ δÉùÃ÷ (Ôڴ˺¯ÊýÄ                  ÚµÚÒ»´ÎʹÓ&Atilde
/usr/src/hashspeed-0.1/ipt_hashspeed.c:751: ´íÎó£º(¼´Ê¹ÔÚÒ»¸öº¯ÊýÄÚ¶à´Î³öÏÖ£¬Ã¿¸                  öδÉùÃ÷µÄ±êʶ·ûÔÚÆä
/usr/src/hashspeed-0.1/ipt_hashspeed.c:751: ´íÎó£ºËùÔڵĺ¯ÊýÄÚÖ»±¨¸æÒ»´Î¡&pound
/usr/src/hashspeed-0.1/ipt_hashspeed.c: ÔÚº¯Êý ¡®ipt_hashspeed_fini¡¯ ÖУº
/usr/src/hashspeed-0.1/ipt_hashspeed.c:773: ´íÎ󣺡®proc_net¡¯ δÉùÃ÷ (Ôڴ˺¯ÊýÄ                  ÚµÚÒ»´ÎʹÓ&Atilde
make[2]: *** [/usr/src/hashspeed-0.1/ipt_hashspeed.o] ´íÎó 1
make[1]: *** [_module_/usr/src/hashspeed-0.1] ´íÎó 2
make[1]: Leaving directory `/usr/src/linux-2.6.24.3'
make: *** [ipt_hashspeed.ko] ´íÎó 2
[root@Ecofe2 hashspeed-0.1]# init 0
[root@Ecofe2 hashspeed-0.1]# ls
ipt_hashspeed.c  libipt_hashspeed.c  README.zh_CN-utf8
ipt_hashspeed.h  Makefile
[root@Ecofe2 hashspeed-0.1]# history -c
[root@Ecofe2 hashspeed-0.1]# make
Makefile:24: You need to install iptables sources and maybe set IPTABLES_SRC
make -C /lib/modules/2.6.24.3/build M=/usr/src/hashspeed-0.1 modules
make[1]: Entering directory `/usr/src/linux-2.6.24.3'
  CC [M]  /usr/src/hashspeed-0.1/ipt_hashspeed.o
/usr/src/hashspeed-0.1/ipt_hashspeed.c: ÔÚº¯Êý ¡®ipt_hashspeed_init¡¯ ÖУº
/usr/src/hashspeed-0.1/ipt_hashspeed.c:751: ´íÎ󣺡®proc_net¡¯ δÉùÃ÷ (Ôڴ˺¯ÊýÄÚµÚÒ»´ÎʹÓ&Atilde
/usr/src/hashspeed-0.1/ipt_hashspeed.c:751: ´íÎó£º(¼´Ê¹ÔÚÒ»¸öº¯ÊýÄÚ¶à´Î³öÏÖ£¬Ã¿¸öδÉùÃ÷µÄ±êʶ·ûÔÚÆä
/usr/src/hashspeed-0.1/ipt_hashspeed.c:751: ´íÎó£ºËùÔڵĺ¯ÊýÄÚÖ»±¨¸æÒ»´Î¡&pound
/usr/src/hashspeed-0.1/ipt_hashspeed.c: ÔÚº¯Êý ¡®ipt_hashspeed_fini¡¯ ÖУº
/usr/src/hashspeed-0.1/ipt_hashspeed.c:773: ´íÎ󣺡®proc_net¡¯ δÉùÃ÷ (Ôڴ˺¯ÊýÄÚµÚÒ»´ÎʹÓ&Atilde
make[2]: *** [/usr/src/hashspeed-0.1/ipt_hashspeed.o] ´íÎó 1
make[1]: *** [_module_/usr/src/hashspeed-0.1] ´íÎó 2
make[1]: Leaving directory `/usr/src/linux-2.6.24.3'
make: *** [ipt_hashspeed.ko] ´íÎó 2

论坛徽章:
0
70 [报告]
发表于 2008-03-12 16:30 |只看该作者
原帖由 wwlovezz 于 2008-3-12 09:39 发表
我用2.6.24 iptables1.4编译出错类。。。。。
Makefile:24: You need to install iptables sources and maybe set IPTABLES_SRC
make -C /lib/modules/2.6.24.3/build M=/usr/src/hashspeed-0.1 modules
mak ...


把 proc_net 都换成 init_net.proc_net 试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP