пару вопросов по шейперу HTB

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

alternativshik
Сообщения: 154
ОС: Debian Lenny/Sid

пару вопросов по шейперу HTB

Сообщение alternativshik »

На данный момент имею такую картину - есть роутер на Дебиане, на нем PoPToP в качестве ВПН сервера, имеется канал 4 мегабита/512 килобит, при подключении клиента к ВПН весь его трафик направляется на виртуальное устройство imq и шейпится динамически - минимальная гарантированная скорость 1 мегабит(так как 4 клиента), а там в зависимости от загруженности канала - возможно и все 4 мегабита 1 человеку. Но, собственно вопрос, шейпится только скорость входящего трафика, а вот исходящий в 512 килобит никак не обрабатывается, так как данная схема предполагает что канал 4 мегабита в обе стороны, как заставить делить канал 512 кб точно так же??? Вот части скриптов:
rc.firewall

Код: Выделить всё

               # Загрузка необходимых модулей ядра
    $MODPROBE imq
    $MODPROBE ipt_IMQ

    tc qdisc del dev imq0 root
    #Ициализация виртуальных сетевых интерфейсов
    $IP link set dev imq0 up

    #Создаем классы и фильтры для виртуального устройства
    /sbin/tc qdisc add dev imq0 root handle 1: htb default 0 r2q 100
    /sbin/tc class add dev imq0 parent 1: classid 1:2 htb rate 4096kbps ceil 4096kbps


ip-up:

Код: Выделить всё

#!/bin/sh
# Путь к используемым программам
IP=/sbin/ip
TC=/sbin/tc
IPTABLES=/usr/local/sbin/iptables
# Количество пользователей
USERS=4
# Общая скорость интерфейса (kbps)
CEIL=4096
# Гарантируемая скорость каждому пользователю
RATE=$[$CEIL/$USERS]
# IP адрес клиента
IP_ADDRESS=$5

RANGE_ADDRESS=192.168.169.
SUBCLASS=${IP_ADDRESS##$RANGE_ADDRESS}

# Переименование интерфейса из ppp+ в vpn_ppp+

if [ $1 != "ppp0" ]
then
$IP link set dev $1 down
$IP link set dev $1 name vpn_$1
$IP link set dev vpn_$1 up
fi
# Маркировка исходящего трафика
$IPTABLES -t mangle -A TRAFFIC-OUT -o vpn_$1 -j MARK --set-mark $SUBCLASS

# Установка ограничений на исходящий трафик
$TC class add dev imq0 parent 1:2 classid 1:$SUBCLASS htb rate ${RATE}kbps ceil ${CEIL}kbps prio 5
$TC qdisc add dev imq0 parent 1:$SUBCLASS handle $SUBCLASS sfq perturb 10
$TC filter add dev imq0 parent 1:0 protocol ip prio 100 handle $SUBCLASS fw classid 1:$SUBCLASS


ip-down:

Код: Выделить всё

#!/bin/sh
# Путь к используемым программам
IP=/sbin/ip
TC=/sbin/tc
IPTABLES=/usr/local/sbin/iptables
# Количество пользователей
USERS=5
# Общая скорость интерфейса (kbps)
CEIL=4096
# Гарантируемая скорость каждому пользователю
RATE=$[$CEIL/$USERS];
# IP адрес клиента
IP_ADDRESS=$5

RANGE_ADDRESS=192.168.169.
SUBCLASS=${IP_ADDRESS##$RANGE_ADDRESS}

# Удаление ограничений на исходящий трафик
$TC qdisc del dev imq0 parent 1:$SUBCLASS handle $SUBCLASS sfq perturb 10
$TC filter del dev imq0 parent 1:0 protocol ip prio 100 handle $SUBCLASS fw classid 1:$SUBCLASS
$TC class del dev imq0 parent 1:2 classid 1:$SUBCLASS htb rate ${RATE}kbps ceil ${CEIL}kbps prio 5

# Удаление маркировки исходящего трафика
$IPTABLES -t mangle -D TRAFFIC-OUT -o vpn_$1 -j MARK --set-mark $SUBCLASS


Заранее благодарю всех откликнувшихся!
Спасибо сказали: