xlreyur 发表于 2014-04-14 01:48

求帮一个TC的问题

最近内部整改,加了一个网段,因为我不是搞PROXY的,因此对TC不是很了解,先前让一个前辈写了个流量控制的脚本,只是用来控制一个网段的,现在加了一块网卡,想再加一个网段,因此想请大家帮帮改下脚本,谢谢了

#!/bin/bash

# WAN interface这个是定义外网
ODEV="eth0"
# LAN interface内网网卡
IDEV="eth1"

# UPLOAD all bandwith KB/S   总下载
Up="3276kbps"
# DOWNLOAD all bandwith   总上传
DOWN="6536kbps"
# default upload speed默认上传
UPLOADrate="200kbps"
# MAX up load speed最大上传
UPLOADceil="300kbps"
# default download speed默认下载
DOWNLOADrate="500kbps"
# MAX download speed   最大下载
DOWNLOADceil="700kbps"

# hosts NOT in control download speed不受控制的计算机的下载速度
outdown="3000kbps"
#hosts NOT in control upload speed    不受控制的计算机的上传速度
outup="300kbps"

# IP rangeIP范围
INET="192.168.100."
# start with开始范围
IPS="11"
# end最后
IPE="250"
# server IP 服务器IP
ServerIP="1"

# clear rules清理根规则
/sbin/tc qdisc del dev $ODEV root 2>/dev/null
/sbin/tc qdisc del dev $IDEV root 2>/dev/null
# set root设置
/sbin/tc qdisc add dev $ODEV root handle 10: htb default 2254
/sbin/tc qdisc add dev $IDEV root handle 10: htb default 2254
# set all bandwith
/sbin/tc class add dev $ODEV parent 10: classid 10:1 htb rate $UP ceil $UP
/sbin/tc class add dev $IDEV parent 10: classid 10:1 htb rate $DOWN ceil $DOWN

# start here
i=$IPS;
while [ $i -le $IPE ]
do
/sbin/tc class add dev $ODEV parent 10:1 classid 10:2$i htb rate $UPLOADrate ceil $UPLOADceil prio 1
/sbin/tc class add dev $IDEV parent 10:1 classid 10:2$i htb rate $DOWNLOADrate ceil $DOWNLOADceil prio 1
/sbin/tc qdisc add dev $ODEV parent 10:2$i handle 40$i: pfifo
/sbin/tc qdisc add dev $IDEV parent 10:2$i handle 40$i: pfifo
/sbin/tc filter add dev $ODEV parent 10: protocol ip prio 40 handle 2$i fw classid 10:2$i
/sbin/tc filter add dev $IDEV parent 10: protocol ip prio 40 handle 2$i fw classid 10:2$i
/sbin/iptables -t mangle -A PREROUTING -s $INET$i -j MARK --set-mark 2$i
/sbin/iptables -t mangle -A POSTROUTING -d $INET$i -j MARK --set-mark 2$i
i=`expr $i + 1`
done

#hosts NOT in control
/sbin/tc class add dev $ODEV parent 10:1 classid 10:2254 htb rate $outup ceil $outup prio 1
/sbin/tc class add dev $IDEV parent 10:1 classid 10:2254 htb rate $outdown ceil $outdown prio 1
/sbin/tc qdisc add dev $ODEV parent 10:2254 handle 40254: pfifo
/sbin/tc qdisc add dev $IDEV parent 10:2254 handle 40254: pfifo
/sbin/tc filter add dev $ODEV parent 10: protocol ip prio 40 handle 2254 fw classid 10:2254
/sbin/tc filter add dev $IDEV parent 10: protocol ip prio 40 handle 2254 fw classid 10:2254


如果现在加一块网卡 eth2 那么这个脚本要如何修改,eth2范围内的IP跟eth1内的网卡上传下载的速度一样即可,如果脚本能稍微改动下就可以实现是最好的。
因为小弟不是学代理方面的,因此对TC这个东西一知半解,搞这个只是个兼职。还希望大家帮帮忙。谢谢。
另外这个脚本在运行的时候会提示有点问题,可是不影响运行,至今都没搞明白是怎么回事。
页: [1]
查看完整版本: 求帮一个TC的问题