Настройка шейпера HTB на офисном маршрутизаторе на базе Linux при помощи htb.init

Автор: | 07.07.2011

Решил написать небольшое HOWTO по настройке шейпера HTB на маршрутизаторе (роутере) на базе Linux при помощи скрипта htb.init. Задача следующая: есть офисная сеть, есть подключение к сети Интернет на определённой скорости, в рассмотренном случае это 20 мегабит вход и 5 мегабит исход, скорость нужно поделить равнозначно между офисными компьютерами, но в случае когда канал не загружен — дать возможность работать на максимальной скорости. В данном HOWTO шейпиться будет не только входящий, но и исходящий трафик, причём подключение к Интернет производится по PPP, что накладывает некоторые нюансы на настройку.

Настройка приведена на примере дистрибутива CentOS (RHEL, Fedora), для Debian (Ubuntu) будут тоже приведены пояснения, так как некоторые системные утилиты отличаются.

Для начала нужно загрузить и настроить сам скрипт построения правил шейпера, даю пример не на оригинальный скрипт, а на модифицированный мной (исправлено несколько ошибок, добавлено удаление кэша при перезапуске шейпера, т. к. бывает в кэше остаются записи, которых уже нет в конфигурационных файлах, версия 0.8.4):

cd /usr/local/sbin
wget http://ras.pl.ua/pub/linux/htb.init
mv -f ./htb.init ./htb
chmod 755 ./htb
ln -sf /usr/local/sbin/htb /etc/init.d/htb

Скрипт загружен, сделан запускаемым, симлинк помещён куда нужно, теперь нужно включить его в автозагрузку, для CentOS (RHEL, Fedora):

chkconfig htb on

То же для Debian (Ubuntu):

update-rc.d htb start 20 0 1 2 3 4 5 .

Далее нужно создать каталоги для файлов конфигурации шейпера:

mkdir /etc/sysconfig
mkdir /etc/sysconfig/htb

Теперь можно приступить непосредственно к настройке. Правила шейпера строятся на основе файлов, которые нужно создавать в каталоге /etc/sysconfig/htb, отсюда их будет читать htb.init и строить правила для утилиты tc. Напомню, что канал у нас 20/5 мегабит, примерно 10 компьютеров в сети, исходя из этого ниже будут приведены файлы конфигурации с пояснением что они описывают.

Файл описания интерфейса, eth0 — интерфейс смотрящий в локальную сеть офиса. Адресация 192.168.0.1/24, маршрутизатор имеет IP 192.168.0.1, следующие за ним — компьютеры офиса. Указывается класс, которым будет шейпиться трафик, не попавший ни под одно правило шейпера.

/etc/sysconfig/htb/eth0

DEFAULT=9

Далее файл описания корневого класса интерфейса, указывается физическая скорость интерфейса, в данном случае это 100 мегабит.

/etc/sysconfig/htb/eth0-2.root

RATE=100Mbit

Вначале необходимо нарезать скорость для трафика, исходящего с самого роутера, например если на нём установлен файл-сервер, можно дать скорость большую чем в Интернет, причём эта скорость не повлияет на скорость работы в сети Интернет. 100 — 20 мегабит, ну и 10 можно оставить на служебные пакеты и т. п., чтобы не образовалась планка (полная загрузка интерфейса), и работа оставалась комфортной, получается 70 мегабит. Скорость с файл-сервера можно тоже равномерно поделить между участниками сети, но в данном примере это опускается.

/etc/sysconfig/htb/eth0-2:4.from_router_to_network

RATE=70Mbit
PRIO=4
LEAF=sfq
RULE=192.168.0.0/24,

Теперь очередь описания класса трафика из сети Интернет. Один мегабит останется для трафика не попавшего в правила, 19 мегабит остаётся описывается. Тут приоритет указан больше чем в локальном трафике с роутера, чем он больше, тем обрабатывается позже.

/etc/sysconfig/htb/eth0-2:5.to_network

RATE=19Mbit
PRIO=5

Теперь непосредственно сами правила для компьютеров сети. Максимальная скорость на один компьютер 19 мегабит, гарантированная — один мегабит. Таких файлов нужно создать по кличеству компьютеров в сети, последнее число — это 1000 + последний октет IP-адреса. И в самом файле в RULE указан IP-адрес компьютера. Входящий трафик на сам роутер не шейпится, это можно сделать, но метод в данном примере не рассматривается.

/etc/sysconfig/htb/eth0-2:5:1002

CEIL=19Mbit
RATE=1Mbit
PRIO=5
LEAF=sfq
RULE=192.168.0.2

Тот трафик, который не попал в предыдущие правила — шейпится на скорости 1 мегабит.

/etc/sysconfig/htb/eth0-2:9.default

RATE=1Mbit
PRIO=5
LEAF=sfq

Теперь исходящий трафик. В принципе то же самое, интерфейс ppp0, скорость 5 мегабит, трафику не попавшему под правила даётся 128 килобит (последний файл), остальным от 512 килобит до 5 мегабит. Трафик с роутера также будет шейпиться.

/etc/sysconfig/htb/ppp0

DEFAULT=9

/etc/sysconfig/htb/ppp0-2.root

RATE=100Mbit

/etc/sysconfig/htb/ppp0-2:5.from_network

RATE=5Mbit
PRIO=5

Так как исходящий трафик у нас натится (SNAT, MASQUERADE) в один внешний IP-адрес, не получится строить правила на основе IP-адресов. Поэтому будут использованы метки, которые будут ставиться фаерволом (iptables), об этом ниже. Таких правил нужно создать по количеству компьютеров в сети, опять же последняя цифра это 1000 + последний октет IP-адреса, метка (MARK) имеет такое же значение.

/etc/sysconfig/htb/ppp0-2:5:1001

CEIL=5Mbit
RATE=512Kbit
PRIO=5
LEAF=sfq
MARK=1001

/etc/sysconfig/htb/ppp0-2:9.default

RATE=128Kbit
PRIO=5
LEAF=sfq

Теперь о метках. В iptables нужно пометить исходящий трафик, делается это следующим правилом в таблице mangle:

-A PREROUTING -s 192.168.0.1 -j MARK --set-mark 1001

Для каждого компьютера — своё правило. В CentOS (RHEL, Fedora) правила фаерволла обычно находятся в файле /etc/sysconfig/iptables, после правки нужно применить изменения командой:

/etc/init.d/iptables restart

В Debian (Ubuntu) можно сделать так. Снять текущую конфигурацию в файл:

iptables-save > /etc/sysconfig/iptables

Поправить и применить:

iptables-restore < /etc/sysconfig/iptables

Данные команды работают и в CentOS (RHEL, Fedora), если нужны. Далее. Настройка окончена, теперь нужно проверить правильность нашей конфигурации:

/etc/init.d/htb compile

Если ошибок нет — будет видно что же построил скрипт htb.init для системы на основе файлов конфигурации. Теперь можно запустить шейпер:

/etc/init.d/htb start

Остался один нюанс. Соединение с Интернет в данном примере производится по PPP, в случае если используется непосредственное подключение — дальше можно не читать. Но интерфейс PPP (ppp0) может падать (переподключение, пропадание связи), при падении интерфейса, все правила шейпера на нём будут сброшены. Следующий скрипт будет проверять наличие PPP-интерфейса и наличие на нём правил, если правил не будет, он перезапустит htb.init.

/usr/local/sbin/htb_check

#!/bin/bash

#################################################################################
#
# Проверка наличия правил шейпера на интерфейсе, перезапуск htb.init при
# необходимости
#
#################################################################################

# Проверяемый интерфейс
DEVICE='ppp0'

# Проверка наличия интерфейса
TEST_PPP=`/sbin/ip link show dev $DEVICE 2> /dev/null`
if [ "$TEST_PPP" != "" ] ; then
  # Проверка наличия правил шейпера на интерфейсе
  TEST_HTB=`/sbin/tc class show dev $DEVICE`
  if [ "$TEST_HTB" == "" ] ; then
    # Если правил шейпера на интерфейсе нет - перезапуск htb.init
    /etc/init.d/htb restart
  fi
fi

Файл нужно сделать запускаемым:

chmod 755 /usr/local/sbin/htb_check

Запускаться он будет по cron, каждую минуту, для этого в файле /etc/crontab добавляются следующие строки:

# Проверка наличия правил шейпера на интерфейсе, перезапуск htb.init при
# необходимости
* * * * * root /usr/local/sbin/htb_check > /dev/null

На этом всё, надеюсь кому-то данное HOWTO пригодится, предложения, пожелания и замечания готов обсудить в комментариях к статье.

Facebooktwittergoogle_plusredditpinterestlinkedintumblr

Comments

comments

Настройка шейпера HTB на офисном маршрутизаторе на базе Linux при помощи htb.init: 32 комментария

  1. Максим

    Здравствуйте! не могли бы вы подсказать настройки, конфигурация сети такая, eth0 интерфейс смотрящий в мир 1.5 мегабит, eth1=1Gbit шлюзом в локальную сеть 192.168.2.100, eth2=1Gbit шлюзом 192.168.2.99, есть 2 вида пользователей, на eth1 обращаются интернет пользователи без ограничений на ресурсы в 1Mbit, а на шлюз eth2 клиенты онлайн игр в 512Kbit с доступом только по портам игр и не каких страничек, локалка из 30 машин в одной подсети

  2. ras Автор записи

    И что подсказать? Или вы хотите чтобы я вам готовую конфигурацию выложил со всеми настройками? 🙂 Если всю конфигурацию, то не получится, статья довольно подробно всё описывает, правила назначаются с фильтрами кроме как по IP, так и по меткам и портам. Т. е. шейпер можно построить по любому вкусу, даже с QoS. Если вам нужна рабочая конфигурация под ключ, готов зайти по ssh и настроить всё за WebMoney.

  3. Smoky555

    Вопрос есть …
    2-й день бьюсь, и все бестолку …
    поставил FC14, iproute последний, freeradius, rp-pppoe, ppp …
    настроил авторизацию через mysql.
    клиенты логинятся нормально, инет наружу работает, но у всех клиентов входящяя скорость ограничена 128кбит/с.
    По умолчанию были скрипты /etc/sysconfig/cbq. Пытался там настроить входящую скорость — не получилось.
    Скачал по ссылке отсюда htb скрипт.
    Вроде все настроил, всем клиентам в обе стороны 512. отключаю cbq, компилю и запускаю htb — исходящая = 512, входящая скорость также 128 и не меняется.
    Что еще где ограничивает скорость для pppoe клиентов? Где отключить эту настройку?

  4. Smoky555

    немного неверно сказал в предыдущем комментарии …
    У меня постоянное соединение с интрнетом, интерфейс еth1, в сеть смотрит eth0
    У меня для всех пользователей должна быть одинаковая скорость, так что файлы-правила для ppp0 не создавал, для eth0 по умолчанию для все скорость 512кбс
    Когда 1 клиент — 512, когда 2 — скорость у каждого пополам, когда 3 — в 3 раза меньше …
    Подскажите плиз, куда смотреть, уже несколько вариантов перепробовал — скорость либо у всех максимальная, как на внешнем канале (если убрать файл eth1.default), либо пропорциональная количеству подключенных клиентов.

  5. ras Автор записи

    Какая у вас ширина внешнего канала? Сколько указано в корневом классе RATE? И вообще какие скорости у вас прописаны CEIL и RATE в корневом классе и в индивидуальных? Ибо если у вас негарантированная CEIL=512Kbit у всех, и корневой (общий) класс тоже на 512, то всё правильно, скорость должна будет поделиться пропорционально на двух/трёх и т. п., клиентов в зависимости от их количества.

    Посмотрите внимательно мой пример, там в корневом классе прописана максимальная скорость канала, а в клиентских уже прописан этот максимум в негарантированной скорости CEIL, а гарантированная скорость уже пишется в RATE.

  6. Smoky555

    ситуация такова:
    роутер, fc14, 2 интерфейса, eth0 — смотрит в сторону клиентов, IP=172.20.10.1, сеть 172.20.10.0/24
    интерфейс eth1 — выделенный канал в интернет, белый IP

    в каталоге /etc/sysconfig/htb след. файлы:
    eth0:
    DEFAULT=9

    eth0-2.root:
    RATE=100Mbit

    eth0-2:9.default:
    RATE=256Kbit
    PRIO=5
    LEAF=sfq

    eth1:
    DEFAULT=9

    eth1-2.root
    RATE=5Mbit

    eth1-2:9.default:
    RATE=256Kbit
    PRIO=5
    LEAF=sfq

    при подключении клиента динамически создается файл для клиента с ip=172.20.10.72
    eth0-2:5:(1000+последний октет ip-адреса клиента)1072 содержащий:
    CEIL=5Mbit
    RATE=512Kbit
    PRIO=5
    LEAF=sfq
    RULE=172.20.10.72

    и делается
    /etc/sysconfig/htb restart

    При отключении клиента этот файл удаляется.

    Скорость у клиента при этом вместо 512 всего 256.
    Что я еще забыл сделать ?

  7. ras Автор записи

    Складывается впечатление что добавляемое вами правило не применяется, либо RULE в нём не попадает на трафик пользователя, т. к. 256 — это у вас DEFAULT-класс, в который попадает трафик, не попавший в другие правила. Посмотрите реальную ситуацию на интерфейсе:

    tc -s class show dev eth0

    Должен быть во-первых класс для данного правила, во-вторых должны быть пакеты в счётчиках, ну и сброшенные пакеты при превышении лимита скорости.

  8. Smoky555

    класс есть, счетчики пусты:

    > tc -s class show dev eth0
    class htb 1:1010 root leaf 1010: prio 5 rate 512000bit ceil 5000Kbit burst 1600b cburst 1600b
    Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
    rate 0bit 0pps backlog 0b 0p requeues 0
    lended: 0 borrowed: 0 giants: 0
    tokens: 390625 ctokens: 40000

    class htb 1:9 parent 1:2 leaf 9: prio 5 rate 256000bit ceil 256000bit burst 1600b cburst 1600b
    Sent 10920 bytes 174 pkt (dropped 0, overlimits 0 requeues 0)
    rate 2128bit 4pps backlog 0b 0p requeues 0
    lended: 174 borrowed: 0 giants: 0
    tokens: 765641 ctokens: 765641

    class htb 1:2 root rate 100000Kbit ceil 100000Kbit burst 1600b cburst 1600b
    Sent 10920 bytes 174 pkt (dropped 0, overlimits 0 requeues 0)
    rate 2128bit 4pps backlog 0b 0p requeues 0
    lended: 0 borrowed: 0 giants: 0
    tokens: 1969 ctokens: 1969

    > cat /etc/sysconfig/htb/eth0-2:5:1010
    CEIL=5Mbit
    RATE=512Kbit
    LEAF=sfq
    PRIO=5
    RULE=172.20.10.10

  9. ras Автор записи

    И tcpdump -nni eth0 dst host 172.20.10.10 трафик показывает?

    Явно не попадает трафик в правило, поэтому и не шейпит, может интерфейсы или вход/исход путаете?

    RULE=172.20.10.10 — указывает dst host, а вот
    RULE=172.20.10.10, — указывает src host

  10. Smoky555

    хех 🙂
    вот по tcpdump ни на dst, ни на src по адресу 172.20.10.10 ничего не ловится вообще.
    трафик по этому адресу проходит только на интерфейсе ppp0 — динамический интерфейс для клиента

  11. Smoky555

    нда…
    все оказалось намного хуже …
    те цифры скорости что я приводил оказались для исходящего трафика (мерил iperf-ом, он тока до сервера мог достучаться, в обратную — никак)
    так что получается так — исходящая скорость регулируется значение в файле eth1-2:9.default.
    Ну исходящая меня пока не волнует, а вот входящая всегда одинакова и равна 128кбит/с, что бы я не делал …
    пошел вешаться

  12. ras Автор записи

    Схемку нарисуйте лучше на листике, с сетями, адресами, скоростями и прикиньте, что трафик шейпится на исходе!!! Т. е. входящи трафик например, если приходит на eth1, то чтобы шейпить вход — нужно резать его на исходе, т. е. на eth0, где он будет исходящим для сервера.

  13. ras Автор записи

    И кстати, чтобы не путаться — настройте сначала входящую, а исходящую не трогайте вообще, меньше будете путаться.

  14. Виталий

    Вижу вы человек разбирающийся. Настраивал даную схему через tc, весь трафик почему то направлялся в дефолтный класс, что бы я в фильтре не писал. Нашел эту инструкцию, зделал все как на рисунке. Все равно весь трафик идет в дефолтный класс. В чем может быть проблема? Дистрибутив Ubuntu 10.04

  15. ras Автор записи

    Дистрибутив роли не играет, tc — это лишь интерфейс к шейперу ядра, htb.init — это интерфейс к tc, при помощи команды compile можно посмотреть что вы построили им, т. е. /etc/init.d/htb compile. Нужно посмотреть что за фильтры получились, попробовать по ним посмотреть прохождение трафика при помощи tcpdump, не забыт про запятые в RULE. Если указана запятая, значит опущен второй параметр, т. е. адрес назначения, а указан исходящий адрес на интерфейсе, что в tcpdump задаётся как src host. Если нет запятой — то адрес назначения, dst host соответственно.

  16. Виталий

    Переделал наново, в надежде что где то все таки ошибся. Проблема осталась, если не трудно ткните пальцем куда копать)

    compile выводит следующее:

    tc qdisc del dev eth0 root
    tc qdisc add dev eth0 root handle 1 htb default 9

    tc class add dev eth0 parent 1: classid 1:2 htb rate 100Mbit

    tc class add dev eth0 parent 1:2 classid 1:4 htb rate 90Mbit prio 4
    tc qdisc add dev eth0 parent 1:4 handle 4 sfq perturb 10
    tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip src 192.168.0.0/24 classid 1:4

    tc class add dev eth0 parent 1:2 classid 1:5 htb rate 100Kbit prio 5

    tc class add dev eth0 parent 1:5 classid 1:1010 htb rate 50Kbit ceil 100Kbit prio 5
    tc qdisc add dev eth0 parent 1:1010 handle 1010 sfq perturb 10
    tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip dst 10.8.0.10 classid 1:1010

    tc class add dev eth0 parent 1:5 classid 1:1011 htb rate 50Kbit ceil 100Kbit prio 5
    tc qdisc add dev eth0 parent 1:1011 handle 1011 sfq perturb 10
    tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip dst 10.8.0.11 classid 1:1011

    tc class add dev eth0 parent 1:2 classid 1:9 htb rate 20Kbit prio 5
    tc qdisc add dev eth0 parent 1:9 handle 9 sfq perturb 10

  17. Виталий

    Перенастройка всетаки помогла, заодно нашел ошибку в строке
    tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip src 192.168.0.0/24 classid 1:4
    А у меня же сеть 10.8.0.0/16 🙂

    Большое спасибо за статью Александр.

  18. ras Автор записи

    🙂 не за что, значит просто досадная опечатка…

  19. Виталий

    Качает но жестко по RATE, в чем может быть косяк?

    Вот как у меня выглядит пользователь:

    RATE=1Mbit
    CEIL=10Mbit
    PRIO=5
    LEAF=sfq
    RULE=10.8.0.10

    Вывод компиля в прошлом сообщении.

  20. Виталий

    Нет, сначала дает скорость ближе к CEIL, через несколько секунд опускается до RATE, и назад не поднимается(

  21. ras Автор записи

    У вас общая скорость указана в 100 килобит:

    tc class add dev eth0 parent 1:2 classid 1:5 htb rate 100Kbit prio 5

    А дальше вы раздаёте гарантированных 50, негарантированных 100 (КИЛОБИТ). Не знаю зачем вам такие «высокие скорости» :), но у вас описано 3 клиента, хотя 2 уже могут забить общую полосу до планки. А такую полосу забить очень легко. Думаю что так и происходит. И это ещё хорошо что скорость падает только до rate а не ещё ниже.

  22. Виталий

    Я для теста ставил такие скорости, а то небыло на чем потренироватся)

    А когда решил что то серьезное зделать, не поменял общ. скорость, еще раз спасибо)

  23. st0rk

    Добрый день! Подскажите что не так делаю:
    интерфейс в локалку eth0, eth1 к провайдеру, подымается ppp0 для инета.
    Все настроил по мануалу, не шейпит хоть убей

    /sbin/tc qdisc del dev eth0 root
    /sbin/tc qdisc add dev eth0 root handle 1 htb default 9

    /sbin/tc qdisc del dev ppp0 root
    /sbin/tc qdisc add dev ppp0 root handle 1 htb default 9

    /sbin/tc class add dev eth0 parent 1:2 classid 1:4 htb rate 100Mbit prio 4
    /sbin/tc qdisc add dev eth0 parent 1:4 handle 4 sfq perturb 10
    /sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip dst 192.168.0.0/16 classid 1:4

    /sbin/tc class add dev eth0 parent 1:5 classid 1:1002 htb rate 512Kbit ceil 1Mbit prio 5
    /sbin/tc qdisc add dev eth0 parent 1:1002 handle 1002 sfq perturb 10
    /sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip dst 192.168.0.11 classid 1:1002

    /sbin/tc class add dev eth0 parent 1:2 classid 1:9 htb rate 512Kbit prio 5
    /sbin/tc qdisc add dev eth0 parent 1:9 handle 9 sfq perturb 10

    /sbin/tc class add dev ppp0 parent 1:2 classid 1:5 htb rate 5Mbit prio 5

    /sbin/tc class add dev ppp0 parent 1:5 classid 1:1001 htb rate 512Kbit ceil 5Mbit prio 5
    /sbin/tc qdisc add dev ppp0 parent 1:1001 handle 1001 sfq perturb 10
    /sbin/tc filter add dev ppp0 parent 1:0 protocol ip prio 200 handle 1001 fw classid 1:1001

    /sbin/tc class add dev ppp0 parent 1:2 classid 1:9 htb rate 128Kbit prio 5
    /sbin/tc qdisc add dev ppp0 parent 1:9 handle 9 sfq perturb 10

    Пакеты маркировал:
    Chain PREROUTING (policy ACCEPT)
    target prot opt source destination
    MARK all — 192.168.0.11 anywhere MARK xset 0x3e9/0xffffffff

  24. ras Автор записи

    Так не шейпит исход? Дайте вывод iptables-save ту часть, что ставит метки, думаю там проблема.

  25. st0rk

    :POSTROUTING ACCEPT [78714397:34898500393]
    -A PREROUTING -s 192.168.0.11/32 -j MARK —set-xmark 0x3e9/0xffffffff
    COMMIT

    делаю все это на Ubuntu server, kernel 2.6.32-39

  26. ras Автор записи

    Визуально всё правильно. Можно попробовать посмотреть как трафик попадает в какие правила:

    tc -s qdisc show dev eth0
    tc -s qdisc show dev ppp0

    Ещё в данном ядре 2.6.32 меняли в какой-то версии механизм шейпинга, что у нас приводило в занижению входящей скорости и не резании исходящей, может как-то с этим связано. Можете попробовать другую версию ядра, например 2.6.36?

  27. st0rk

    Поставил ядро 2.6.38-16-server
    вот что выдает:
    tc -s qdisc show dev ppp0
    qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
    Sent 4201671 bytes 8616 pkt (dropped 41, overlimits 0 requeues 5)
    backlog 0b 0p requeues 5

    tc -s qdisc show dev eth0
    qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
    Sent 13365370 bytes 14533 pkt (dropped 0, overlimits 0 requeues 0)
    backlog 0b 0p requeues 0

    Но появилась проблемка, незнаю повлиял шейпер или нет — скорость интернета упала до 2мбит и больше не подымается, хотя iperf показывает [ 3] 0.0-10.1 sec 12.9 MBytes 10.8 Mbits/sec
    но у клиентов спидтестом — 1-2мбита и все, и это из 30-50 возможных 🙁
    Стал на кабель, который идет до сервера — на нем максимальная скорость, тоесть теряется где-то в сервере, htb скрипт удалил для теста, и папку /etc/htb тоже — не помогло….

  28. ras Автор записи

    dropped 41 — на ppp0 означает что пакеты в очереди попадают и дропаются, т. е. шейпер работает. А вот настроили вы его скорее всего неправильно. Я вижу одно правило, а не каждому. Это раз. Дальше, вы пишете о 30-50 мегабитах, а рутовый класс выставили в 5, и соответственно ограничения на клиента тоже маленькие поставили, зачем? Статья же не готовое решение на все случаи жизни, а пошаговая инструкция к тому, как настроить правильно шейпер у себя в сети. iperf скорее всего вы запускаете с сервера, и там не режется скорость входа потому что до шейпера на eth0 не доходит дело. А шейпить можно только на исходящем интерфейсе для трафика, кроме одного частного случая полисинга, но здесь он не используется.

    Если хочется выключить шейпер, его нужно не удалять, а стопнуть.

  29. st0rk

    Я стопал htb, не решило проблему. Поставил такую-же ubuntu настроил только ppp и маскарадинг, все равно скорости нет, проблема не в шейпере оказалась 🙁 На centos 6 — скорость максимальная… чудеса да и только!
    Сейчас смотрим в сторону решений от ideco.
    Спасибо огромное за консультацию!

  30. ras Автор записи

    Да, не вопрос, обращайтесь :).

  31. anon

    Спасибо Вам за статью! Очень помогло, ибо документацию из htb.init самостоятельно осилить довольно трудно.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *