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

Исходное сообщение
"Динамический шейпинг траффика"

Отправлено keydet , 15-Дек-04 19:38 
Доброго времени суток, All!

Есть проблема следующего характера: есть внешний канал, и есть подсеть ходящая в интернет через внешний канал
я нахожусь в подсети шлюза
канал X kb/s, синхронный
Необходимо: вычислить текущую загрузку внешнего канала в единицу времени (допустим Y kb/s) и залочить скорость на моей машине (X-Y) kb/s
e.g.:
всего 14 kb/s
Входящий трафик бежит со скоростью- 12 kb/s - значит моя машина залочена на 2 kb/s
Входящий трафик бежит со скоростью - 3 kb/s  - я залочен на 11 kb/s
Пересчет коэффициента производить как можно чаще
То есть есть подсеть юзеров и серваки и необходимо не мешать им работать - то есть догружать канал до максимума но не отбирать у них bandwith.
Заранее благодарен за любые наработки по этому вопросу
ОС: FreeBSD


Содержание

Сообщения в этом обсуждении
"Динамический шейпинг траффика"
Отправлено zabudkin , 16-Дек-04 08:06 
Хоть эта тема и интересует многих, но разработок к сожалению таких вроде бы нет. По крайней мере на этом форуме ИМХО никто ничем не поможет.
Хотя можно было бы собраться всем и самим подумать эту тему.

"Динамический шейпинг траффика"
Отправлено zabudkin , 16-Дек-04 08:31 
Кстати, вот сейчас нашел одну программульку, правда под Линукс, Linux BandWidth tool:
http://sourceforge.net/project/showfiles.php?group_id=118974...

Так вот, узнать скорость можно как по интерфейсу, так и по IP адресам, по портам, протоколам.

Пример (скорость tcp трафика на адрес 192.168.0.6 интерфейса eth0 за время 10 секунд):
# ./bw -i eth0 -t 10 -p tcp --daddr 192.168.0.6 -q|grep Bandwidth|sed 's/Bandwidth used: //g'

Выдаст, например: 6.79 Kb/s

А отсюда уже можно шагать дальше... скажем уже менять конфиги для CBQ и т.п.

Присоединяйтесь! Мы что-нибудь все вместе придумаем!


"Динамический шейпинг траффика"
Отправлено Serge , 16-Дек-04 09:51 
Привет!

Случаем не пробовал ALTq ?
В 5-ую версию она входит в дистр, а в четверке есть в портах.
погляди может и пригодится ...


"Динамический шейпинг траффика"
Отправлено alk , 16-Дек-04 10:04 
Все что тебе надо это pf+altq
Используй cbq
1. Вычисляем требуемую ширину канала для нормальной работы серверов
2. умножаем ее на 1.5 ( надо наблюдать по времени )
3. делим внешний канал на 2 очереди

1 очередь ( сервера ) = пункт 2 + самый высокий приоритет
2 очередь все остальные + borrow ( это значит что когда 1 очередь занимает не всю свою полосу то 2 очередь может ее ( в случае необходимости ) позаимствовать у 1 очереди )

радуемся
можно отслеживать состояние очередей
pfctl -vsq == выдираем байты -> загоняем в mrtg


"Динамический шейпинг траффика"
Отправлено zabudkin , 16-Дек-04 10:32 
1. Что за pf?
2. Можно пример?

"Динамический шейпинг траффика"
Отправлено Beginner , 16-Дек-04 11:03 
>Доброго времени суток, All!
>
>Есть проблема следующего характера: есть внешний канал, и есть подсеть ходящая в
>интернет через внешний канал
>я нахожусь в подсети шлюза
>канал X kb/s, синхронный
>Необходимо: вычислить текущую загрузку внешнего канала в единицу времени (допустим Y kb/s)
>и залочить скорость на моей машине (X-Y) kb/s
>e.g.:
>всего 14 kb/s
>Входящий трафик бежит со скоростью- 12 kb/s - значит моя машина залочена
>на 2 kb/s
>Входящий трафик бежит со скоростью - 3 kb/s  - я залочен
>на 11 kb/s
>Пересчет коэффициента производить как можно чаще
>То есть есть подсеть юзеров и серваки и необходимо не мешать им
>работать - то есть догружать канал до максимума но не отбирать
>у них bandwith.
>Заранее благодарен за любые наработки по этому вопросу
>ОС: FreeBSD

Ничего не надо динамически вычислять. Ставишь себе более низкий приоритет и будешь сидеть на "остатках". HTB будет самое то.


"Динамический шейпинг траффика"
Отправлено Anastas , 16-Дек-04 11:05 
>Доброго времени суток, All!
>
>Есть проблема следующего характера: есть внешний канал, и есть подсеть ходящая в
>интернет через внешний канал
>я нахожусь в подсети шлюза
>канал X kb/s, синхронный
>Необходимо: вычислить текущую загрузку внешнего канала в единицу времени (допустим Y kb/s)
>и залочить скорость на моей машине (X-Y) kb/s
>e.g.:
>всего 14 kb/s
>Входящий трафик бежит со скоростью- 12 kb/s - значит моя машина залочена
>на 2 kb/s
>Входящий трафик бежит со скоростью - 3 kb/s  - я залочен
>на 11 kb/s
>Пересчет коэффициента производить как можно чаще
>То есть есть подсеть юзеров и серваки и необходимо не мешать им
>работать - то есть догружать канал до максимума но не отбирать
>у них bandwith.
>Заранее благодарен за любые наработки по этому вопросу
>ОС: FreeBSD

ключевые слова
ipfw  queue  pipe weight

например
http://www.opennet.me/base/net/ipfw_queue_vip.txt.html


"Динамический шейпинг траффика"
Отправлено keydet , 16-Дек-04 18:18 
Всем большое спасибо
сейчас собираю ядро с options ALTQ
может чего еще упустил? когда поставил компилится буквально через пять минут нашел options CBQ и тому подобные
где то можно найти описания всех этих штук - предназначение
ну и по настройке тоже
если в гугле есть - то не напрягайтесь сейчас сам буду искать
но если у кого есть где нибудь сохраненные линки - кидайте

"Динамический шейпинг траффика"
Отправлено keydet , 16-Дек-04 18:57 
Упустил момент что это с системой идет
читаю маны



"Динамический шейпинг траффика"
Отправлено alk , 17-Дек-04 09:34 
>Упустил момент что это с системой идет
>читаю маны

ядро

device          pf                      #PF OpenBSD packet-filter firewall
device          pflog                   #logging support interface for PF
device          pfsync                  #synchronization interface for PF

options         ALTQ
options         ALTQ_CBQ        # Class Bases Queueing
options         ALTQ_RED        # Random Early Drop
options         ALTQ_RIO        # RED In/Out
options         ALTQ_HFSC       # Hierarchical Packet Scheduler
options         ALTQ_CDNR       # Traffic conditioner
options         ALTQ_PRIQ       # Priority Queueing
options         ALTQ_DEBUG
options         HZ=1000

rc.conf

pf_enable="YES"
pf_rules="/etc/you file rules pf ( default pf.conf )
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_program="/sbin/pflogd"

идем в google ищем altq pf.conf
надираем примеров
переписываем под себя

удачи


"Динамический шейпинг траффика"
Отправлено keydet , 17-Дек-04 19:31 
А что кошернее для моей цели - ipfw queue pipe weight OR altq ?
И почему?