котопес 0 Опубликовано: 2009-08-07 10:08:45 Share Опубликовано: 2009-08-07 10:08:45 или поделитесь как его можно урезать еще , дома 4 копьютера нужно что-нибудь сделать с исходящим каналом Ссылка на сообщение Поделиться на других сайтах
DarkSpider 36 Опубліковано: 2009-08-07 13:53:29 Share Опубліковано: 2009-08-07 13:53:29 shaper.sh #!/bin/bash local_iface=eth0 inet_iface=eth1 echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t mangle --flush iptables -F iptables -X iptables -t nat -F iptables -t mangle -F iptables -t nat -X iptables -t mangle -X iptables-restore < ./ipz #удаление и очистка tc qdisc del dev $local_iface root tc qdisc del dev $local_iface ingress tc qdisc del dev ifb0 root tc qdisc del dev ifb0 ingress ########################## SHAPING ######################################## #Подгрузка модулей modprobe ifb modprobe sch_htb ifconfig ifb0 up #creating root qdisc #инициализация и заворот на ifb0 tc qdisc add dev $local_iface root handle 1: cbq avpkt 1000 bandwidth 100Mbit tc qdisc add dev ifb0 root handle 5: htb tc qdisc add dev $local_iface ingress tc filter add dev $local_iface parent ffff: protocol ip u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0 tc class add dev eth0 parent 1: classid 1:6 cbq rate 100Mbit allot 1500 bounded isolated OnConnect #!/bin/bash local_iface=eth0 inet_iface=eth1 # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 #Selected dirs to connect #DIRS=$5 #========= LIMIT ===================== usersconf="/var/stargazer/users/$LOGIN/conf" usersstat="/var/stargazer/users/$LOGIN/stat" anlim_key="anlim_" logfile="/var/log/stargazer-test" if [ ! -e "$usersconf" ]; then echo "ERROR: User file '$usersconf' not found" >> $logfile exit fi TariffName=`cat "$usersconf" | grep "Tariff=" | cut -d"=" -f2` # limit if [ "_${TariffName#$anlim_key}" != "_${TariffName}" ]; then # limit_value=${TariffName:${#anlim_key}:4} # find key to Kbit fi #========= END of LIMIT =============== ##################### mark set from ip adresses########################### mark=`echo $IP | cut -d"." -f4` mark2=3"$mark" echo "$mark" > /var/stargazer/users/$LOGIN/shaper_mark echo "$mark2" > /var/stargazer/users/$LOGIN/shaper_mark2 ################### IPTABLES ######################################### iptables -t nat -I PREROUTING -p tcp -m tcp --dport 20000 -j DNAT --to $IP:20000 #for torrent iptables -t mangle -I FORWARD -d $IP -j MARK --set-mark $mark iptables -t mangle -I FORWARD -s $IP -j MARK --set-mark $mark2 iptables -t nat -A POSTROUTING -s $IP -d 0/0 -o $inet_iface -j SNAT --to-source xx.xx.xx.xx (внеш IP) ######################### SHAPER ##################################### #режем внутрь при помощи CBQ и по меткам tc class add dev $local_iface parent 1: classid 1:$mark cbq rate "$limit_value"Kbit allot 3500 prio 3 bounded isolated tc filter add dev $local_iface parent 1: protocol ip prio 2 handle $mark fw classid 1:$mark #режем внеш HTB , но по IP tc class add dev ifb0 parent 5: classid 5:$mark htb rate "$limit_value"Kbit ceil "$limit_value"Kbit tc filter add dev ifb0 parent 5: protocol ip prio 5 handle 800::$mark2 u32 match ip src $IP flowid 5:$mark OnDisconnect #!/bin/bash local_iface=eth0 inet_iface=eth1 # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 #Selected dirs to connect #DIRS=$5 #========= LIMIT ===================== usersconf="/var/stargazer/users/$LOGIN/conf" usersstat="/var/stargazer/users/$LOGIN/stat" anlim_key="anlim_" logfile="/var/log/stargazer-test" if [ ! -e "$usersconf" ]; then echo "ERROR: User file '$usersconf' not found" >> $logfile exit fi TariffName=`cat "$usersconf" | grep "Tariff=" | cut -d"=" -f2` # limit if [ "_${TariffName#$anlim_key}" != "_${TariffName}" ]; then # limit_value=${TariffName:${#anlim_key}:4} # find key to Kbit fi #========= END of LIMIT =============== ##################### mark set from ip adresses###################### mark="/var/stargazer/users/$LOGIN/shaper_mark" mark2="/var/stargazer/users/$LOGIN/shaper_mark2" ###################IPTABLES###################################### iptables -t nat -D PREROUTING -p tcp -m tcp --dport 20000 -j DNAT --to $IP:20000 #for torrent while [ $? == 0 ] do iptables -t nat -D PREROUTING -p tcp -m tcp --dport 20000 -j DNAT --to $IP:20000 #for torrent done iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark while [ $? == 0 ] do iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark done iptables -t mangle -D FORWARD -s $IP -j MARK --set-mark $mark2 while [ $? == 0 ] do iptables -t mangle -D FORWARD -s $IP -j MARK --set-mark $mark2 done iptables -t nat -D POSTROUTING -s $IP -d 0/0 -o $inet_iface -j SNAT --to-source xx.xx.xx (внеш IP) while [ $? == 0 ] do iptables -t nat -D POSTROUTING -s $IP -d 0/0 -o $inet_iface -j SNAT --to-source xx.xx.xx (внеш IP) done ##################SHAPER######################################### #IN tc filter del dev $local_iface parent 1: protocol ip prio 2 handle $mark fw classid 1:$mark tc class del dev $local_iface parent 1: classid 1:$mark cbq rate "$limit_value"Kbit allot 3500 prio 3 bounded isolated #OUT tc filter del dev ifb0 parent 5: protocol ip prio 5 handle 800::$mark2 u32 match ip src $IP flowid 5:$mark tc class del dev ifb0 parent 5: classid 5:$mark htb rate "$limit_value"Kbit ceil "$limit_value"Kbit К сожалению так и не смог заставить работать метки на исходящий канал Ссылка на сообщение Поделиться на других сайтах
cradm 0 Опубліковано: 2009-08-14 08:03:26 Share Опубліковано: 2009-08-14 08:03:26 скажите, у меня довольно старая версия СТГ, 2.0.16.7.6 Releasw Candidate-3 подойдет ли этот скрипт шейпера для меня или нет? на данный момент я использую для резки - обычный шейпер входящего траффика Ссылка на сообщение Поделиться на других сайтах
Prime 51 Опубліковано: 2009-08-14 09:10:19 Share Опубліковано: 2009-08-14 09:10:19 скажите, у меня довольно старая версия СТГ, 2.0.16.7.6 Releasw Candidate-3 подойдет ли этот скрипт шейпера для меня или нет? на данный момент я использую для резки - обычный шейпер входящего траффика у тебя внешние скрипты, они к СТГ не имеют отношения. разве что файлы конфига, но переменные остались те же Ссылка на сообщение Поделиться на других сайтах
cradm 0 Опубліковано: 2009-08-20 09:38:49 Share Опубліковано: 2009-08-20 09:38:49 обьясните дураку, куда вписывать ip пользователя и его скорость в этих скриптах??? Ссылка на сообщение Поделиться на других сайтах
DarkSpider 36 Опубліковано: 2009-08-20 10:15:28 Share Опубліковано: 2009-08-20 10:15:28 Даже и не знаю , что ответить. Вы используете скрипты даже не зная что в них ? # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 #Selected dirs to connect #DIRS=$5 Описание внутренних переменных. Читаем внимательно доки по СТГ и читаем описание утилиты tc из пакета iproute2. Ссылка на сообщение Поделиться на других сайтах
cradm 0 Опубліковано: 2009-08-20 12:44:50 Share Опубліковано: 2009-08-20 12:44:50 ребята, я в этом не шарю. можете сказать, как мне урезать всех пользователей СТГ скорость до 128? дайте кто-нибудь аську или джаббер или скайп срочно выручите, кто-нибудь!!! Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2009-08-21 13:58:20 Share Опубліковано: 2009-08-21 13:58:20 http://ipfw.ism.kiev.ua/dummynet.html Ссылка на сообщение Поделиться на других сайтах
DarkSpider 36 Опубліковано: 2009-08-22 07:22:37 Share Опубліковано: 2009-08-22 07:22:37 Стучись в скайп - на странице (в подписи). Ссылка на сообщение Поделиться на других сайтах
cradm 0 Опубліковано: 2009-08-22 11:43:48 Share Опубліковано: 2009-08-22 11:43:48 блин хоть убей не вижу твоего скайпа Ссылка на сообщение Поделиться на других сайтах
DarkSpider 36 Опубліковано: 2009-08-23 20:00:22 Share Опубліковано: 2009-08-23 20:00:22 Отписал в ПМ пару дней назад - видно не настолько уж и срочно надо Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас