Flopster Опубликовано 23 октября, 2009 · Жалоба кто знает чем можно делать шейпинг акцел пптп? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
martin74 Опубликовано 24 октября, 2009 · Жалоба шейпером акцел пптп PS. А чем шейпинг accel-pptp будет отличаться от шейпинга pptp ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Flopster Опубликовано 24 октября, 2009 · Жалоба я не очень вас понял. ест линк? мне нужно чтоб част юзеров получали скорость не выше 0.5мб, а другие работали в полную. как это делается? спасибо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sdy_moscow Опубликовано 24 октября, 2009 (изменено) · Жалоба курите линукс шейпинг... tc Вот так например.... /sbin/tc qdisc del dev $DEV root 2> /dev/null > /dev/null /sbin/tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null /sbin/tc qdisc add dev $DEV root tbf rate ${shape}kbit burst ${burst}kb latency 70ms minburst 1540 >/dev/null 2>&1 /sbin/tc qdisc add dev $DEV handle ffff: ingress /sbin/tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${shape}kbit burst ${burst}k mtu 12k drop flowid :1 делается в ip-up скрипте.... Изменено 24 октября, 2009 пользователем sdy_moscow Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Flopster Опубликовано 24 октября, 2009 · Жалоба Спасибо! А как можно в ip-up скрипте узнать имя пользователя? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sdy_moscow Опубликовано 24 октября, 2009 (изменено) · Жалоба Спасибо! А как можно в ip-up скрипте узнать имя пользователя? имя пользователя никак.... приходится связывать по ип...Вот например наш полный ип-ап скрипт от ланбилинга, немного допиленный... #!/bin/bash sleep 9 DEV=$1 AIP=$5 LOGMAC=/etc/ppp/log-mac LOG=/var/log/shaper.log MACLOG=/var/log/macshpnm.log ERRLOG=/var/log/errshpnm.log . /etc/billing.conf MYSQL="/usr/bin/mysql -h${rdbhost} -u${rdbuser} -p${rdbpass} ${rdbname}" ################################################################################ ############ ## Getting IP MAC ## ARP="/sbin/arp" PID_DIR="/var/run" ROUTE="/sbin/route" PID=`cat ${PID_DIR}/${DEV}.pid 2>/dev/null`; REAL_IP=$6 IP_MAC=`${ARP} ${REAL_IP} | grep ${REAL_IP} | awk '{print $3}'` echo "$DEV ${AIP} start=`date` pid=${PID} r_ip=${REAL_IP} mac=${IP_MAC}" >> $LOG ################################################################################ ############ ## Check duplicate IP ## #echo "route | grep -F ${AIP} -w | grep -F ${DEV} -v -w | awk '{print \$8}'" >> $LOG # get routes | c ОБЫЙН йр | ВЕЪ ЫМАЪБ | ОЕ ОБЫ ppp | 8-БС ЛПМПОЛБ DUP_INTF=`${ROUTE} -n | grep -F ${AIP} -w | grep G -v | grep -F ${DEV} -v -w | awk '{print $8}'` if test -n "$DUP_INTF" 2>/dev/null then echo " !ERROR: $DEV $AIP DupIP duplicated IP detected" >> $LOG sleep 5 echo "`date` ERROR: DupIP $DEV $AIP r_ip= ${REAL_IP} dupicated IP detected" >> $ERRLOG for cur_val in ${DUP_INTF}; { DUP_PID=`cat ${PID_DIR}/${cur_val}.pid 2>/dev/null`; kill -s INT ${DUP_PID} echo " !$DEV $AIP duplicated IP detected on $cur_val pid=$DUP_PID was killed" >> $LOG sleep 1 #${fwcmd} -t nat -A POSTROUTING -s ${cur_val} -j SNAT -o ${intf_inet} --to-source ${my_ip_nat}; }; echo " !$DEV $AIP session pid=$PID stoped at self" >> $LOG kill -s INT ${PID} exit 0 fi ################################################################################ ############ ## Get vgroup info for shape and log ## # nado dodelat ghjdthre sviazi s SQL.... res="no" qt="select vgroups.tar_id,vgroups.shape,vgroups.login,tarifs.shape,vgroups.max_sessions \ from vgroups,sessionsradius,tarifs where \ inet_ntoa(sessionsradius.assigned_ip)=\"$AIP\" and sessionsradius.vg_id=vgroups.vg_id and tarifs.tar_id=vgroups.tar_id" for (( i=1; i<5; i++)); do q=`echo "$qt" | $MYSQL | tail -n1` if test -n "$q" 2>/dev/null then res="ok" break fi echo " !WAIT: SQL $DEV $AIP wait for update active sessions" >> $LOG sleep 5 done if test $res = "no" 2>/dev/null then echo " !ERROR: SQL $DEV $AIP cannot find in active sessions" >> $LOG echo "`date` ERROR: SQL $DEV $AIP r_ip= ${REAL_IP} cannot find in active sessions" >> $ERRLOG sleep 5 kill -s INT ${PID} exit 0 fi tarid=`echo "$q" | awk '{print $1}'` shape=`echo "$q" | awk '{print $2}'` vglogin=`echo "$q" | awk '{print $3}'` shapet=`echo "$q" | awk '{print $4}'` maxses=`echo "$q" | awk '{print $5}'` ################################################################################ ##### # calculate shape echo " !$DEV $AIP l=${vglogin} r_ip=${REAL_IP} mac=${IP_MAC} tr=${tarid} sh=${shape} sht=${shapet} mss=${maxses}" >> $LOG echo "`date`;${PID};${DEV};${AIP};${vglogin};${REAL_IP};${IP_MAC};" >> $MACLOG if test $shape -eq 0 2>/dev/null then shape=$shapet fi if ! test $shape -ge 0 2>/dev/null then echo " !ERROR: Shp $DEV $AIP ${vglogin} cannot get proper shape rate" >> $LOG echo "`date` ERROR: Shp $DEV $AIP ${vglogin} r_ip=${REAL_IP} get proper shape rate" >> $ERRLOG shape=0 fi ######################### # temporaly speed to 320 kbp/s #shape=320 if test $shape -gt 0 2>/dev/null then burst=`echo $shape/100+2 | bc 2>/dev/null` /sbin/tc qdisc del dev $DEV root 2> /dev/null > /dev/null /sbin/tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null /sbin/tc qdisc add dev $DEV root tbf rate ${shape}kbit burst ${burst}kb latency 70ms minburst 1540 >/dev/null 2>&1 /sbin/tc qdisc add dev $DEV handle ffff: ingress /sbin/tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${shape}kbit burst ${burst}k mtu 12k drop flowid :1 echo " !$DEV $AIP ${vglogin} setting shape rate $shape" >> $LOG fi; ################################################################################ ##### # log on coolector $LOGMAC $vglogin $REAL_IP $IP_MAC exit 0 в . /etc/billing.conf что-то вроде rdbhost=XXX.XXX.XXX.XXX rdbuser=user rdbpass=password rdbname=dbname Изменено 24 октября, 2009 пользователем sdy_moscow Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...