dummy 8 Опубликовано: 2010-03-22 06:25:39 Share Опубликовано: 2010-03-22 06:25:39 Недавно обнаружил странную проблему: если ведется закачка в 1 поток то шейпер отдает только 2/3 от заказанной скорости. например, если скорость стоит 1,5мбит, то в пользователя качается файл со скоростью 100кБайт/сек если в несколько потоков - то загружается вся полоса может кто сталкивался с таким ?? shaper.init: #!/bin/sh # lan=xx.xx.xx.xx/16 int_iface=eth1 /sbin/tc qdisc del dev $int_iface root handle 1: htb /sbin/tc qdisc add dev $int_iface root handle 1: htb /sbin/tc class add dev $int_iface parent 1: classid 1:1 htb rate 100mbit ceil 100mbit burst 200k # Internet mark=2 speedkb=20 speedceil=20 /sbin/tc class add dev $int_iface parent 1:1 classid 1:$mark htb rate "$speedkb"mbit ceil "$speedceil"mbit burst 200k # Counter Strike, Named mark=255 speedkb=20 speedceil=20 /sbin/tc class add dev $int_iface parent 1:1 classid 1:$mark htb rate "$speedkb"mbit ceil "$speedceil"mbit /sbin/tc filter add dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark # Local lan mark=256 speedkb=40 speedceil=60 /sbin/tc class add dev $int_iface parent 1:1 classid 1:$mark htb rate "$speedkb"mbit ceil "$speedceil"mbit /sbin/tc filter add dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark iptables.init: #!/bin/bashall=0.0.0.0/0 #локальная сеть lan=xx.xx.xx.xx/16 #Машина администратора admin=xx.xx.xx.xx #Адреса роутера server0=xx.xx.xx.xx server1=xx.xx.xx.xx # Интерфейс смотрящий на клиентов iface_cli=eth1 # Интерфейс смотрящий во внешний мир iface_world=eth0 ip_world=xx.xx.xx.xx #Порты, на которых работает конфигуратор и авторизатор conf_port=5555 user_port1=5555 user_port2=5555 echo "1" > /proc/sys/net/ipv4/ip_forward # Очищаем правила файрвола iptables -F iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP # Разрешаем всё на локальном интерфейсе iptables -t filter -A INPUT -i lo -j ACCEPT iptables -t filter -A OUTPUT -o lo -j ACCEPT # local services iptables -t filter -A INPUT -i $iface_cli -p tcp --dport 1:1024 -j ACCEPT iptables -t filter -A INPUT -i $iface_cli -p udp --dport 1:1024 -j ACCEPT iptables -t filter -A OUTPUT -o $iface_cli -j ACCEPT # DNS. Замечу, ДНС работает и по TCP и по UDP iptables -t filter -A INPUT -i $iface_cli -p tcp --sport 53 -j ACCEPT iptables -t filter -A OUTPUT -o $iface_cli -p udp --dport 53 -j ACCEPT iptables -t filter -A INPUT -p tcp -s $lan --dport $conf_port -j ACCEPT iptables -t filter -A OUTPUT -p tcp -d $lan --sport $conf_port -j ACCEPT iptables -t filter -A INPUT -p udp -s $lan --sport $user_port2 --dport $user_port1 -j ACCEPT iptables -t filter -A OUTPUT -p udp -d $lan --dport $user_port1 -j ACCEPT #Counter Strike, NAMED iptables -A PREROUTING -t nat -p udp -i eth0 --dport 27015 -j DNAT --to-destination $server1 /sbin/iptables -t mangle -A FORWARD -p udp --dport 27015 -d $lan -s $lan -j MARK --set-mark 255 /sbin/iptables -t mangle -A FORWARD -p udp --sport 27015 -d $lan -s $lan -j MARK --set-mark 255 /sbin/iptables -t mangle -A FORWARD -p udp --dport 53 -d $lan -s $lan -j MARK --set-mark 255 /sbin/iptables -t mangle -A FORWARD -p udp --sport 53 -d $lan -s $lan -j MARK --set-mark 255 /sbin/iptables -t mangle -A FORWARD -p tcp --dport 53 -d $lan -s $lan -j MARK --set-mark 255 /sbin/iptables -t mangle -A FORWARD -p tcp --sport 53 -d $lan -s $lan -j MARK --set-mark 255 #локальный шейпинг /sbin/iptables -t mangle -A FORWARD -d $lan -s $lan -j MARK --set-mark 256 OnConnect: #!/bin/sh# Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 lan=xx.xx.xx.xx/16 int_iface=eth1 out_iface=eth0 /sbin/iptables -t filter -A INPUT -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -s $IP -j ACCEPT /sbin/iptables -t filter -A FORWARD -d $IP -j ACCEPT /sbin/iptables -t filter -A OUTPUT -d $IP -j ACCEPT case $LOGIN in test) speedkb=512;; ...... ...... *) speedkb=128;; esac speedceil=$speedkb mark=$ID /sbin/iptables -t mangle -A FORWARD ! -s $lan -d $IP -j MARK --set-mark $mark /sbin/iptables -t mangle -A OUTPUT -d $IP -p tcp --sport 3127 -j MARK --set-mark $mark /sbin/iptables -t mangle -A OUTPUT -d $IP -p tcp --sport 3128 -j MARK --set-mark $mark /sbin/tc class add dev $int_iface parent 1:2 classid 1:$mark htb rate "$speedkb"kbit ceil "$speedceil"kbit /sbin/tc filter add dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-03-23 09:39:03 Share Опубліковано: 2010-03-23 09:39:03 Откуда качаете? Спидтест хотя бы проходили? Что показывает? Ссылка на сообщение Поделиться на других сайтах
dummy 8 Опубліковано: 2010-03-25 07:06:25 Автор Share Опубліковано: 2010-03-25 07:06:25 Откуда качаете? Спидтест хотя бы проходили? Что показывает? качаю с mirror.yandex.ru спидтест показывает тоже самое - 2/3 скорости Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас