实在找不到×××应该发现哪一个版块.于是就先发到这里吧..
本文原理是:PPTPD的×××用户.在×××拨号完成后.服务器使用TC自动将拨号用户与×××服务器之间的连接进行分组限速.当然.在×××用户断开连接后.限速取消... 先是安装PPTPD+MYSQL+RADIUS..这个请大家参考CU高人的文章..说得十分详细.. http://bbs.chinaunix.net/viewthread.php?tid=698651&extra=page%3D2%26amp%3Bfilter%3Ddigest http://bbs.chinaunix.net/viewthread.php?tid=698650&extra=page%3D2%26amp%3Bfilter%3Ddigest http://bbs.chinaunix.net/viewthread.php?tid=698648&extra=page%3D2%26amp%3Bfilter%3Ddigest 现在我们要实现分组给×××用户限制...本例是分5组... 分别是: 100K/S 最高下载速度在12K左右 500K/S 最高下载速度在60K左右 2M/S 最高下载速度在220K左右 5M/S 最高下载速度在600K左右 无限制 当然以上的速度是可以在下文中相应位置调整.. 在安装好PPTPD+MYSQL+RADIUS后... 我们的设计是这样的... 使用不同的内网IP段来实现分组区别.. 比如第一组我们用 192.168.11.X 第二组用. 192.168.12.X . . 这样.是用于我们限速脚本来识别区分... 我们先是要用TC为服务器做一些初始化...就是设置分组限制的具体速度... 本例的脚本是:tc qdisc add dev eth0 root handle 2:0 htb default 1 tc class add dev eth0 parent 2:0 classid 2:1 htb rate 100Mbit burst 15k tc class add dev eth0 parent 2:1 classid 2:10 htb rate 5Mbit burst 15k tc class add dev eth0 parent 2:1 classid 2:20 htb rate 2000kbit ceil 2Mbit burst 15k tc class add dev eth0 parent 2:1 classid 2:30 htb rate 500kbit ceil 500kbit burst 15k tc class add dev eth0 parent 2:1 classid 2:40 htb rate 100kbit ceil 100kbit burst 15k tc qdisc add dev eth0 parent 2:10 handle 10: sfq perturb 10 tc qdisc add dev eth0 parent 2:20 handle 20: sfq perturb 10 tc qdisc add dev eth0 parent 2:30 handle 30: sfq perturb 10 tc qdisc add dev eth0 parent 2:40 handle 40: sfq perturb 10
..
然后我们就需要在PPTPD的拨号脚本上添加智能识别,并添加TC操作的脚本.. file: /etc/ppp/ip-up 在exit 0;前面添加IP_groupa=192.168.11 IP_groupb=192.168.12 IP_groupc=192.168.13 IP_groupd=192.168.14 IP=`expr match "$5" '\(..........\)'` NUM=`expr match "$5" '.*\.\(.*\)'` case "$IP" in "$IP_groupa" ) NUM=100$NUM RUN="tc filter add dev eth0 protocol ip parent 2:0 prio $NUM u32 match ip dst $6/32 flowid 2:10" ;; "$IP_groupb" ) NUM=200$NUM RUN="tc filter add dev eth0 protocol ip parent 2:0 prio $NUM u32 match ip dst $6/32 flowid 2:20" ;; "$IP_groupc" ) NUM=300$NUM RUN="tc filter add dev eth0 protocol ip parent 2:0 prio $NUM u32 match ip dst $6/32 flowid 2:30" ;; "$IP_groupd" ) NUM=400$NUM RUN="tc filter add dev eth0 protocol ip parent 2:0 prio $NUM u32 match ip dst $6/32 flowid 2:40" ;; esac echo [$RUN][$5][$6][pptpd-up] >>/tmp/tc.log $RUN >>/tmp/tc_run.log exit 0
而在ip-down也同样添加以下代码
IP_groupa=192.168.11 IP_groupb=192.168.12 IP_groupc=192.168.13 IP_groupd=192.168.14 IP=`expr match "$5" '\(..........\)'` NUM=`expr match "$5" '.*\.\(.*\)'` case "$IP" in "$IP_groupa" ) NUM=100$NUM run="tc filter del dev eth0 protocol ip parent 2:0 prio $NUM u32 match ip dst $6/32 flowid 2:10" ;; "$IP_groupb" ) NUM=200$NUM run="tc filter del dev eth0 protocol ip parent 2:0 prio $NUM u32 match ip dst $6/32 flowid 2:20" ;; "$IP_groupc" ) NUM=300$NUM run="tc filter del dev eth0 protocol ip parent 2:0 prio $NUM u32 match ip dst $6/32 flowid 2:30" ;; "$IP_groupd" ) NUM=400$NUM run="tc filter del dev eth0 protocol ip parent 2:0 prio $NUM u32 match ip dst $6/32 flowid 2:40" ;; esac echo [$run][$5][$6][pptpd-down] >>/tmp/tc.log $RUN >>/tmp/tc_run.log exit 0
完成...
[67052 at qq.com] 本文只是将我的一些文档.代码共享出来..可能照着安装会有不少问题... 不懂的话...再与我本人联系吧..