—
本帖被 sakuraahn 执行锁定操作(2012-07-07)
—
以前一直用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] 麻烦了|||