『漫游』酷论坛>『漫游水世界』>[求助]关于iptables+tc做 ..

[求助]关于iptables+tc做流量限制的问题

Conanzsw@2010-04-06 21:37

以前一直用iptables的连接数来限制,情况不理想而且浪费带宽 所以想换成tc,无奈一窍不通= =

网络情况是eth0外网 eth1内网,且绑定3个ip地址(192.168.0.254和1.254与2.254) 只对下载流量进行限制

#tc设置如下
tc qdisc add dev eth1 root handle 1: htb default 20
tc class add dev eth1 parent 1: classid 1:1 htb rate 1000Mbit
tc class add dev eth1 parent 1:1 classid 1:10 htb rate 256kbit ceil 128kbit prio 1
tc class add dev eth1 parent 1:1 classid 1:30 htb rate 384kbit ceil 512kbit prio 2
tc class add dev eth1 parent 1:1 classid 1:20 htb rate 128kbit ceil 256kbit prio 3
tc class add dev eth1 parent 1:1 classid 1:40 htb rate 512kbit ceil 2048kbit prio 4
tc class add dev eth1 parent 1:1 classid 1:50 htb rate 128kbit ceil 512kbit prio 5
#局域网流量
tc class add dev eth1 parent 1:1 classid 1:60 htb rate 1000Mbit prio 6
tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10
tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 10
tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 10
tc qdisc add dev eth1 parent 1:60 handle 60: sfq perturb 10
tc filter add dev eth1 protocol ip parent 1:0 handle 1 fw flowid 1:10
tc filter add dev eth1 protocol ip parent 1:0 handle 2 fw flowid 1:20
tc filter add dev eth1 protocol ip parent 1:0 handle 3 fw flowid 1:30
tc filter add dev eth1 protocol ip parent 1:0 handle 4 fw flowid 1:40
tc filter add dev eth1 protocol ip parent 1:0 handle 5 fw flowid 1:50
tc filter add dev eth1 protocol ip parent 1:0 handle 6 fw flowid 1:60


#iptables设置如下
#标记特殊程序 比如wow.....:o
iptables -A PREROUTING -t mangle -p tcp -s 192.168.2.249 -m multiport --ports 1119,3724,6113 -j MARK --set-mark 1
iptables -A PREROUTING -t mangle -p tcp -s 192.168.0.0/24 -m multiport --ports 1119,3724,6113 -j MARK --set-mark 1
iptables -A PREROUTING -t mangle -p icmp -j MARK --set-mark 1
iptables -A PREROUTING -t mangle -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 2
#192.168.0.1-192.168.0.254 80端口
iptables -A PREROUTING -t mangle -p tcp -s 192.168.0.0/24 -m multiport --ports 80 -j MARK --set-mark 3
#其余流量
iptables -A PREROUTING -t mangle -s 192.168.0.0/24 -j MARK --set-mark 2
#192.168.1.1-192.168.1.254 80端口
iptables -A PREROUTING -t mangle -p tcp -s 192.168.1.0/24 -m multiport --ports 80 -j MARK --set-mark 4
#其余流量
iptables -A PREROUTING -t mangle -s 192.168.1.0/24 -j MARK --set-mark 5
#局域网流量
iptables -A PREROUTING -t mangle -i ! eth0 -j MARK --set-mark 6
#大于1024的包和没有被mark的
iptables -A PREROUTING -t mangle -p tcp -m length --length 1024: -j MARK --set-mark 4
iptables -A PREROUTING -t mangle -j MARK --set-mark 4



以上设置是否正确(合理)? 应该是有问题的....但是一时找不出所在>_<...........汗
因为跨IP段传输,如192.168.0.1局域网传输文件到192.168.1.1速度不正常(<100k
iptables -A PREROUTING -t mangle -j MARK --set-mark 4
上面那些未符合规则而没有被标注的包,应该根据这条规则被标注到4
问题就在于流量显示有很大一部分流量(包)被标注到了4 是我上面的规则写错了么?错在哪里呢-_-




或者谁能给点这方面有用资料的,丢个链接也成[/han] 麻烦了|||
引用

atkio@2010-04-06 21:39

TC原来不是Turbo C啊
引用

zoeva@2010-04-06 21:40

看到荔枝D,进来踹一脚。。。。。。。。。。
引用

Conanzsw@2010-04-06 21:57

引用
最初由 atkio 发布
TC原来不是Turbo C啊

http://en.wikipedia.org/wiki/Tc

Computers

* tc, command-line utility used configure network traffic control in the Linux kernel.
* .tc, the Internet country code top-level domain (ccTLD) for Turks and Caicos Islands
* TrueCrypt, disk encryption software
* Trusted Computing, a scheme for adding additional controls on what computers may or may not do into hardware or software
* Turbo C, software development program by Borland
[/TX]
排名不分先后.........
引用
最初由 zoeva 发布
看到荔枝D,进来踹一脚。。。。。。。。。。

好歹是求助贴- - 轻点c[/han]
引用

vivitar@2010-04-06 22:03

看完後,整個人暈倒了...
荔枝抱歉了,解決不能...= =
引用

卿卿雅儿@2010-04-06 23:00

虽然我们公司做这东西,但我看完后依然解决不能

不同厂家的路由器、交换机配制方法都不一样
甚至同一个厂家不同档次的设备,配制方法也都完全不同

楼主这个问题不是太明确

如果用linux的PC/服务器装软件限流的话,根据我的经验无论什么软件都不能精确限流
引用

jack34b@2010-04-07 03:59

网络管理。。。这个要学一下。。。
引用

Conanzsw@2010-04-09 14:25

解决了 有些包被重复mark了 配合layer7效果不错

引用
最初由 卿卿雅儿 发布
虽然我们公司做这东西,但我看完后依然解决不能

不同厂家的路由器、交换机配制方法都不一样
甚至同一个厂家不同档次的设备,配制方法也都完全不同

楼主这个问题不是太明确

如果用linux的PC/服务器装软件限流的话,根据我的经验无论什么软件都不能精确限流

我觉得我的问题和传输层相关和链路层无关

笑 如果不能精确限流,那网上那么多服务器还活不活了:o
ps:tc不是软件
引用

56824419@2010-04-09 14:33

以我的经验。。。。。运算能力差的设备要做到精确限流很难。。。。。这个方案是靠CPU算的。。。。。
引用


| TOP