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毫秒