Linux 版 (精华区)
发信人: sino (茶水), 信区: Linux
标 题: iptables透明网关的流量统计
发信站: 哈工大紫丁香 (2002年09月27日11:45:24 星期五), 站内信件
iptables透明网关的流量统计
-- sino 、bhfbao
这个程序的功能是:对一个使用iptables作SNAT上网的C类网进行流量统计,
同时根据freeip列表(200204, http://www.nic.edu.cn/RS/ipstat/internalip/),
区分免费和收费的流量。
环境:
Linux 2.4.19, RedHat 7.2
使用方法:
1、
用后面的ipt_LOG.c覆盖kernel2.4.19里面
linux-2.4.19/net/ipv4/netfilter/ipt_LOG.c
重新编译kernel,选上LOG功能。
2、
g++ -O9 -o iptlogd iptlogd.c
生成iptlogd
3、
以192.168.0.为例
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -j LOG --log-prefix "MASQ"
--log-level 7
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
这里的"MASQ"标记已经写到iptlogd.c里面了,需要修改的话,必须更改
iptlogd.c
4、
关掉klogd !! 配置syslogd,使它不处理 DEBUG级别的kernel messages.
5、
运行iptlogd即可
查询时读取/var/run/iptlogd.mmap,数据格式是:
unsigned long long sum[256][2];
^^^ ^
C类网上的主机号 0-免费流量 ; 1-收费
长度是4096B。
这个程序内存开销很小,但是消耗cpu比较多。特别是当你使用百兆网时,
强烈推荐使用 300Mhz 以上的机器 !!!
我测试发现: iptables 在 p150+10Mb ,cpu 约 50%
iptables 在 Celeron333 + 100Mb , 约 10%
iptables + iptlogd 在 Celeron333 + 100 Mb ,cpu 约 35%
以上均是峰值。
一个运行iptlogd v3.2的例子: http://202.118.239.224
这是业余时间的习作,请多提宝贵意见! //bow
Please contact :
sino.bbs@bbs.hit.edu.cn
bhfbao.bbs@bbs.hit.edu.cn
--
... 这一阵歌声传入湖边一个道姑耳中。她在一排柳树下悄立已久,
晚风拂动她杏黄色道袍的下摆,拂动她颈中所插拂尘的万缕柔丝,心
头思潮起伏,当真亦是「芳心只共丝争乱」 ...
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.239.220]
※ 修改:·sino 於 09月27日18:04:43 修改本文·[FROM: 202.118.239.224]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.390毫秒