Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: [FAQ] Ограничение скорости для клиентов на Ubuntu-Server (htb.init)  (Прочитано 262156 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SAS1024

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Здравствуйте.
У меня следующая ситуация:
есть интернет-сервер с Ubuntu Server 12.04, сервер подключен с помощью одного физического линка к интернету (eth0, X.X.X.X), так же сервер имеет алиас сетевого интерфейса eth0:1 с другим айпишником (Y.Y.Y.Y).

Подскажите пожалуйста, каким образом мне можно резать исходящий трафик (от 100 мбит оставить максимум 80) с айпишника Y.Y.Y.Y ?

Пробовал использовать htb.init, но где-то в нём я видимо ошибаюсь.

Сделал следующий конфиг у htb:
eth0
DEFAULT=30
R2Q=100

eth0-2.root
RATE=100Mbit
CEIL=100Mbit

eth0-2:05.default (вся остальная полоса)
RATE=99Mbit
CEIL=99Mbit
LEAF=sfq

eth0-2:07.dl (трафик с Y.Y.Y.Y)
BURST=50Kb
RATE=80Mbit
CEIL=80Mbit
LEAF=sfq
PRIO=1
RULE=:80,Y.Y.Y.Y

htb compile выдаёт следующее:
(Нажмите, чтобы показать/скрыть)

Подскажите пож-та, где у меня ошибка?
« Последнее редактирование: 09 Мая 2012, 20:25:21 от SAS1024 »

Оффлайн artem.ultra

  • Участник
  • *
  • Сообщений: 226
    • Просмотр профиля
    • Sa-iT
хочу завтра реализовать деление скорости у себя на работе (въезжают к нам партнеры, вот и потребовалось)
мой ifconfig
(Нажмите, чтобы показать/скрыть)
как видно, внутри сети использую вланы, на интерфейсе локальной сети которые является eth1
завтра создам vlan103 в подсети 10.10.10.0/24
соответсвено как таковых ip адресов я знать не буду, цепляю нат на всю их подсеть. резать нужно как входящую так и исходящую (в том числе и по любым портам)
хочу поинтересоваться, или подойдет мне htb.init
вроде как понимаю, что входящую скорость разрезать получится, но как быть с исходящей?
или есть варианты просто отмаркировать вместо ip сразу всю подсеть?
исходящая нужна для торрентов (кто знает чем заниматься будут ;))

Оффлайн Fusariun

  • Новичок
  • *
  • Сообщений: 28
    • Просмотр профиля
отмаркировать сеть варианты есть
iptables -t mangle -A POSTROUTING -i vlan103 -s 10.10.10.0/24 -j MARK --set-mark Y

И у меня трабла с этим связанная - есть задача шейперить исх трафик. Я маркирую его - iptables -L -t mangle выдает в чейне прероутинг правило маркировки. Есть tc класс (htb 1:50) на интерфейсе ррр0, есть fw фильтр по нужному марку tc filter show на ррр0 его видит, но до лиф-дисциплины (сфкю) трфик не доходит. Как облегчалка жизни стоит шореволл

Оффлайн artem.ultra

  • Участник
  • *
  • Сообщений: 226
    • Просмотр профиля
    • Sa-iT
сделал все по ману, все работает.
но при перезапуске выдает:
sudo /etc/init.d/htb restart 
(Нажмите, чтобы показать/скрыть)
vlan102
R2Q=100
DEFAULT=0
vlan102-2.root
RATE=4Mbit
CEIL=4Mbit
vlan102-2:2001
RATE=200Kbit
CEIL=3Mbit
LEAF=sfq
PRIO=1
RULE=192.168.10.0/24
задача, ограничить всю подсеть в 3Мбит

подскажите в чем ошибка


(Нажмите, чтобы показать/скрыть)

Пользователь решил продолжить мысль 02 Июля 2012, 13:48:00:
при маркировании пакета командой
Цитировать
sudo iptables -t mangle -A PREROUTING -s 192.168.10.50 -j MARK --set-mark 1001
sudo iptables -t mangle -А PREROUTING -s 192.168.10.50 -j RETURN
и зменением RULE на MARK в настройках htb, скорость абсолютно не фильтруется.
когда делаю iptables-save, получаю
# Generated by iptables-save v1.4.4 on Mon Jul  2 12:47:10 2012
*mangle
:PREROUTING ACCEPT [417029:331519429]
:INPUT ACCEPT [243032:210167054]
:FORWARD ACCEPT [173854:121331149]
:OUTPUT ACCEPT [281820:262710148]
:POSTROUTING ACCEPT [455674:384041297]
-A PREROUTING -s 192.168.10.50/32 -j MARK --[b]set-xmark 0x3e9/0xffffffff[/b]
-A PREROUTING -s 192.168.10.50/32 -j RETURN
COMMIT
set-xmark 0x3e9/0xffffffff - это так и должно быть? или же что то не то?
« Последнее редактирование: 02 Июля 2012, 13:48:38 от artem.ultra »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28376
    • Просмотр профиля
при маркировании пакета командой
Цитировать
sudo iptables -t mangle -A PREROUTING -s 192.168.10.50 -j MARK --set-mark 1001

set-xmark 0x3e9/0xffffffff - это так и должно быть? или же что то не то?
А посчитать? 03E9hex = 1001dec
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн artem.ultra

  • Участник
  • *
  • Сообщений: 226
    • Просмотр профиля
    • Sa-iT
ну хорошо. с этим все нормально.
но почему то когда маркирую и добавляю в конфиг htb, скорость абсолютно не режется:(

Оффлайн as_lan

  • Любитель
  • *
  • Сообщений: 99
    • Просмотр профиля
Добрый день. Возникла небольшая проблема с шейпингом.

Имеем сеть в пару десятков компов ( 172.20.0.0/20). 2 сетевые карты eth0 внешний мир, eth1.10 внутренняя ( на eth1 поднято 2 влана, но второй пока не трогаем)

Нужно разрулить трафик в зависимости от отдела.

Скрипты имеют такой вид.
Eth1.10:
DEFAULT=100
R2Q=100

eth1.10-2.root
RATE=100Mbit
CEIL=100Mbit

eth1.10-2:30.root
RATE=40Mbit
CEIL=80Mbit
LEAF=sfq
RULE=172.20.0.1,172.20.0.0/20
PRIO=2

eth1.10-2:40.root
RATE=9Mbit
CEIL=9Mbit
LEAF=sfq
PRIO=3

eth1.10-2:40:1.1et
RATE=4Mbit
CEIL=8Mbit
LEAF=sfq
BURST=50Kb
RULE=*,172.20.1.0/24
RULE=*,172.20.2.0/24
PRIO=7

eth1.10-2:40:2.2et
RATE=4Mbit
CEIL=8Mbit
LEAF=sfq
BURST=50Kb
RULE=*,172.20.3.0/24
RULE=*,172.20.4.0/24
PRIO=7

eth1.10-2:100.default
RATE=1Mbit
CEIL=1Mbit
LEAF=sfq
BURST=50Kb
PRIO=15

Идея заключалась в том, чтоб все кто не попадают в подсети 172.20.1.x 172.20.2.x 172.20.3.x 172.20.4.x попадали в группу default. И они попадают, скорость интернета режет. Но вместе с ней режет и скорость локального доступа к самому серверу (172.20.0.1). А мне не нужно это (на сервере самба и куча других сервисов). В чем косяк, второй день пытаюсь понять причину, наверняка она на поверхности, но не замечаю ее просто.
« Последнее редактирование: 28 Июля 2012, 16:17:31 от as_lan »

Оффлайн lusuj

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля

 А есть какой-нибудь FAQ, как на ubuntu server ограничить именно торренты, не отрубить вообще, а урезать скорость? Может есть примеры правил в iptables.
 Не пинайте сразу, ну никак не получается найти эту инфу на форуме :-\

 Спасибо.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
lusuj, а чем обсуждаемый в теме инструмент не подходит? Конкретно для торрентов и не найдёте. Режьте общую скорость, а уж пользователю самому придётся выбирать что тянуть из интернета - голых тёток или видеоконференцию проводимую шефом.
Ещё видится вариант с модулем connlimit - обрезать каждому пользователю до 3-5 соединений, тогда торрент-клент просто поперхнётся.Но что сработает этот способ не уверен.

Оффлайн Nesmit

  • Старожил
  • *
  • Сообщений: 1296
    • Просмотр профиля
на 3-5 поперхнется все :) аська, джаббер, скайп или просто браузер с открытым яндексом и  потом, с udp врят ли получится.

Оффлайн lusuj

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
  Понял, уже получается, просто не сразу вьехал. Спасибо.


Пользователь решил продолжить мысль 05 Сентября 2012, 21:32:04:
Решено.
Насчёт кеша - я был прав. В скрипте htb есть строчка:
HTB_CACHE=${HTB_CACHE:-/var/cache/htb.init}
Вот там и лежат настройки. Смысл? Хз...
Факт в том, что после удаления /var/cache/htb.init и последующего запуска скрипта всё стало на свои места :coolsmiley:
у меня тоже самое, проблема в том что после каждого изменения файлов приходится удалять файл кеша, как-то неудобно, кто как решил эту проблему?

кажется нашел:
(Нажмите, чтобы показать/скрыть)

еще вопрос как мониторите трафик?
В теме упоминался munin и плагин к нему qos_, но данный плагин никак не могу найти.

Сам спросил, сам нашел :)

Пока все получается!
« Последнее редактирование: 06 Сентября 2012, 22:05:29 от lusuj »

Оффлайн c0ba

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Всем привет!

Скажите, можно ли как-то добиться, чтобы при работающем торренте htb.init более эффективно резал полосу под более приоритетный траффик?

Т.е. идея такая - я не хочу отключать торренты каждый раз, когда мне нужно в инет или когда мне нужно из инета получить доступ к своему домашнему серваку. Но когда есть канал - пусть cебе работают в полную силу, пусть забивают себе канал.

Проблема в том, что хоть сервер и доступен извне, но при попытке скачивания с него по http например, скорости выше 10 кбайт/с не добиться.

Перепробовал всякие рычаги, и BURST крутил и R2Q. но что-то особо не выходит ничего.

вот конфиги:

server htb # for i in $(ls ./ | grep -v check); do echo $i:; cat $i; echo -e "\n\n";  done
ppp0:
DEFAULT=99
R2Q=1



ppp0-2:10.ssh:
# class for outgoing ssh
RATE=128Kbit
CEIL=1110Kbit
RULE=*:22 # outgoing to :22
RULE=*:22, # outgoing from :22
RULE=*:220, # outgoing from :220
RULE=*:221, # outgoing from :221
RULE=*:222, # outgoing from :222
RULE=*:223, # outgoing from :223
RULE=*:224, # outgoing from :224
RULE=*:225, # outgoing from :225
PRIO=1
#BURST=128Kb
LEAF=sfq




ppp0-2:11.im:
# class for instant messengers
RATE=128Kbit
CEIL=1110Kbit
RULE=*:5222 # jabber (client-to-server)
RULE=*:5269 # jabber (server-to-server)
RULE=*:5222, # jabber (client-to-server)
RULE=*:5269, # jabber (server-to-server)
RULE=*:5223 # jabber unusual SSL
RULE=*:5670 # jabber unusual SSL
RULE=*:4000, # skype in
RULE=*:4000 # skype out
PRIO=2
#BURST=32Kb
LEAF=sfq




ppp0-2:13.zabbix:
# class for zabbix and snmp traffic
RATE=40Kbit
CEIL=1110Kbit
RULE=*:10050 # outgoing to :10050
RULE=*:10051, # outgoing from :10051
RULE=*:50002 # outgoing to :50002 (work snmp)
RULE=*:161 # outgoing to snmp
PRIO=2
LEAF=sfq




ppp0-2:14.transmission:
# class for transmission client
RATE=40Kbit
CEIL=1110Kbit
RULE=*:9091, # outgoing from :9091
PRIO=2
LEAF=sfq




ppp0-2:15.gaming:
# class for gaming
RATE=100Kbit
CEIL=1110Kbit
RULE=*:9988 # outgoing to battlefield 3
RULE=*:22990 # outgoing to battlefield 3
RULE=*:17502 # outgoing to battlefield 3
RULE=*:42127 # outgoing to battlefield 3
RULE=*:20000 # outgoing to battlefield 3
RULE=*:19767 # outgoing to battlefield 3
RULE=*:19967 # outgoing to battlefield 3
PRIO=2
#BURST=64Kb
LEAF=sfq




ppp0-2:20.www:
# rules for www traffic
RATE=600Kbit
CEIL=1110Kbit
RULE=*:80
RULE=*:80,
RULE=*:8080
RULE=*:8080,
RULE=*:443
RULE=*:443,
RULE=*:21 # ftp traffic
RULE=*:4040, # subsonic in
PRIO=2
#BURST=128Kb
LEAF=sfq




ppp0-2:90.torrent:
# rules for torrent traffic
RATE=16Kbit
CEIL=1110Kbit
PRIO=7
MARK=1001
LEAF=sfq




ppp0-2:99.other:
# rules for all other traffic
RATE=58Kbit
CEIL=1110Kbit
PRIO=5
LEAF=sfq




ppp0-2.full:
# root class containing total bandwidth
# RULE=[[saddr[/prefix]][:port[/mask]],][daddr[/prefix]][:port[/mask]]
RATE=1110Kbit
CEIL=1110Kbit
#BURST=128Kbit

для маркировки торрент траффика в iptables вот это:

# Mark torrent data to set it lowest priority in HTB
iptables -t mangle -A FORWARD -s ${V1} ! -d ${SERVER} -p tcp -m multiport ! --sport 22,8080,4040,9091 -j MARK --set-mark 1001
iptables -t mangle -A FORWARD -s ${V1} ! -d ${SERVER} -p udp -m multiport ! --sport 22,8080,4040,9091 -j MARK --set-mark 1001
торрент валит с lxc контейнера V1

Картина получается примерно такая: http://d.pr/i/KBXJ

Спасибо!

Оффлайн OEvg85

  • Участник
  • *
  • Сообщений: 133
  • это я
    • Просмотр профиля
В обсчем картина такая: имеется сетка на 20 машин и internet, "толщиной" 2048 Kbit/s, в Internet смотрит eth0, в интрасеть eth1. Конфиги htb.init такие:
eth1
DEFAULT=30
R2Q=10
eth1-2.root
RATE=5Mbit
BURST=15k
eth1-2:05.igor
Это у меня один из клиентов, которому надо фиксированную скорость выделить
BURST=50K
RATE=100kbit
CEIL=500kbit
RULE=192.168.0.106
Ну и для примера
eth1-2:05.student
Тут для целой подсети
BURST=50K
RATE=64kbit
CEIL=128kbit
RULE=192.168.0.0/27
eth1-2:10.www
# class for outgoing WWW traffic
RATE=200Kbit
CEIL=200Kbit
BURST=15k
LEAF=sfq
RULE=*:80,
eth1-2:25.smb
Как я рассчитывал, правило для траффика по протоколу smb
# class for outgoing SMB traffic
RATE=100Mbit
CEIL=100Mbit
BURST=10M
LEAF=sfq
RULE=*:139
Ну и, собственно, дефолтовое правило
eth1-2:30.dfl
# default class for unclassified traffic
RATE=100Kbit
CEIL=100Kbit
BURST=15k
LEAF=sfq
htb.init "исправленный", с просторов интернета скачанный, вот он http://pastebin.com/BWPVLtUE

Так вот, столкнулся я с проблемой: шейпер работает, скорости клиенты получают, как им и должно (как в конфигах прописано), но и скорость копирования расшаренных файлов упала до значений (как я понял), прописанных в конфиге eth1-2:30.dfl
 а это ок 100 кб/с 3мб файл по 15 минут копируется :(.Сразу же оговорюсь, прописанный в конфиге порт 139 менял на 135,139,445 - не помогает, пробовал прописывать эти порты по отдельности, та же картина.

Ну и, собственно, вопрос: что предложите сделать с smb. Вариант правки eth1-2:30.dfl мной рассматривается как крайняя мера, т.к. товарищ с ip 192.168.0.106 самым наглым образом пользуется торрентами и отключать ему нельзя эту возможность :(, а скорость из-за его интернет-активности ощутимо падает, но и samba Хочется использовать с нормальной скоростью.

Если для решения проблемы нужны еще какие-нибудь конфиги/логи, пишите, выложу...

Все говорят, что мы вместе, но не все знают в каком

Оффлайн lusuj

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
(Нажмите, чтобы показать/скрыть)

Графики munin для htb (плагин _qos)хорошо отображают состояние сети при небольшом количестве юзеров, а если их 50 или 100 так все налеплено что и не разобраться.
Кто подскажет решение?
« Последнее редактирование: 23 Октября 2012, 08:45:51 от lusuj »

Оффлайн lusuj

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
неужели никто не мониторит пользователей, я один такой :'(

 

Страница сгенерирована за 0.061 секунд. Запросов: 25.