URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 3693
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Как ограничить пропускную полосу для пакетов помеченных меткой через MARK."

Отправлено auto_tips , 11-Май-04 11:54 
Сделать MARK, и загнать все такие трансферы в какой-либо класс шейпера.
Т.е. если например помеченные пакеты - все их отнести к классу 1:51 где скорость ограничена от 32К до 64К:
  tc filter add dev eth1 parent 1:0 protocol ip prio 100 handle 51 fw classid 1:51
  tc class add dev eth1 parent 1:2 classid 1:51 htb rate 32Kbit ceil 64Kbit
  tc qdisc add dev eth1 parent 1:51 handle 51 sfq perturb 10


URL:
Обсуждается: http://www.opennet.me/tips/info/560.shtml


Содержание

Сообщения в этом обсуждении
"Как ограничить пропускную полосу для пакетов помеченных меткой через MARK."
Отправлено Diman , 11-Май-04 11:54 
Как ограничит пропускную полосу по ИП адресу, с 128Kb на 64 или 32 ?

"Как ограничить пропускную полосу по ИП адресу"
Отправлено Gool , 14-Окт-04 10:37 
Создаем файл шейпера:
>/etc/sysconfig/cbq/cbq-64.ip
#Описываем сетевуху роутера к которой подключен клиент (имя,заявленная скорость, вес (скорость/10))
DEVICE=eth0,100Mbit,10Mbit
#Пропускная способность шейпера(имя,необходимая скорость, вес (скорость/10))
RATE=64Kbit
WEIGHT=32Kbit
#Приоритет шейпера (1-8 по возрастающей)
PRIO=5
#Ну и для кого сей подарок предназначен ;)
RULE=192.168.1.20


>cbq start
(запускаем шейпер(если в первый раз может вывалиться с ошибкой типа класс шейпера неможет быть 0000-тогда удаляем файл с sample шейпера >/etc/sysconfig/cbq/cbq-0000.****)

>cbq stop
(останавливаем)


"Как ограничить пропускную полосу для пакетов помеченных меткой через MARK."
Отправлено dmit , 16-Окт-04 01:22 
Хм, явно имеется в виду скрипт CBQ.init

Есть, как минимум, 2 вопроса:

1) как у CBQ/HTB с ресурсоемкостью? Т.е. если я имею порядка 300 юзеров, каждому из которых надо поставить индивидуальный шейп на download (через внутренний интерфейс рутера) и upload (через, соответственно, внешний), то сколько ЦПУ это у меня сожрет?

2) Вторую неделю парюсь с такой задачей:
а) имеется рутер с внешним 100 мбит интерфейсом на провайдера и внутренним 100 мбит на внутреннюю сетку;
б) от провайдера имеется 2 вида трафика - местный, до 100 мбит, и международный, до 3 мбит (местный трафик - это список из 80 подсеток различных классов);
в) соответственно, каждому моему юзеру надо сделать 2 вида шейпа, типа 2048 кбит местный трафик и 512 кбит - международный, для каждого юзера шейп может быть произвольный, юзеров порядка трехсот;
3) кроме ограничения полосы юзерам по этим двум типам трафика очень нужно приоритезировать сам трафик: типа СИНы, ICMP, ssh, SMTP, DNS, NTP - high priority, HTTP, POP3, IMAP - medium, все остальное - low.

Рутер - P4 - 2.4 GHz, 1 Gb RAM, ядро 2.4.27

Проблема:
если пользоваться CBQ или HTB, то для каждого юзера приходится создавать как минимум один отдельный класс на каждый вид трафика (местный и международный) с заранее неизвестным rate, итого выходит уже более 600 классов (при чем каждому юзеру приходится ставить rate типа 10 кбит, ceil 100 мбит (местный) или ceil 3 мбит если международный));
далее, если мне необходимо приоритезировать трафик по его типу, а типов три, то 3 умножаем на 600 = 1800 классов... Думаю, проблема понятна.

Самое интересное, что iptables замечательно справляются с задачей отмаркировать ВЕСЬ трафик из расчета 6 разных маркеров на каждого из 300 юзеров, загрузка проца незначительна, но когда я запускаю соответствующий tc скрипт со всеми этими классами, то становится очень грустно и народ просит вернуть все обратно.

Вопрос:
можно ли на линуксе с такой машинкой решить эту задачу?

Т.е. мне нужна Циска или курсы повышения квалификации?...


"Как ограничить пропускную полосу для пакетов помеченных метк..."
Отправлено Gool , 18-Окт-04 09:39 
>1) как у CBQ/HTB с ресурсоемкостью? Т.е. если я имею порядка 300
>юзеров.
>Рутер - P4 - 2.4 GHz, 1 Gb RAM, ядро 2.4.27

ИМХО должен потянуть. У меня маленькая сетка, около 20 пользователей, роутер амд к5-100, CBQ на всех, загрузку показывает 0,6-0,8. Пробуйте, без тестов на вашем конкретном железе, с вашими юзерами и задачами, ничего не решить.

По второму вопросу ничем не помогу. Мне кажется должна быть возможность напускать cbq на группы адресов, тогда задача очень упрощается. Для каждой группы создаются несколько шейперов на разную пропускную способность а юзерам трафик регулируем простым перемещением их по группам. Надо смотреть маны.


"Как ограничить пропускную полосу для пакетов помеченных меткой через MARK."
Отправлено h0b0s , 08-Дек-04 19:48 
См. htb.init

"Как ограничить пропускную полосу для пакетов помеченных меткой через MARK."
Отправлено izida , 19-Июн-06 05:19 
Гы. А вот как ограничить пропускную способность в одном канале на разные порты.
Допустим канал 7 Мb, 3 Mb - подо всё, а для походов на X.X.X.X - не шейпить. Или по порту Y не шейпить

"Как ограничить пропускную полосу для пакетов помеченных метк..."
Отправлено Igorek , 20-Янв-07 20:40 
iptables -A FORWARD ... -j MARK --set-mark=...