Jump to content

Неужели никто так и не сделал динамическое распределение канала?


Recommended Posts

Posted (edited)

Есть локалка, сервак под FreeBSD 6.2

В сервак в один порт воткнута локалка, в другой АДСЛ модем.

 

Задача динамически поровну делить скорость между всеми юзерами, которые сейчас "в сети".

 

В сетке используются коммутаторы 2-го уровня с VLAN'ом.

 

Неужели никто так и не решил эту задачу?

 

Можно, конечно, фиксировано порезать всем, например, по 100 кбит/сек, но зачем давать меньшую скорость, если половина канала простаивает?..

Edited by SaBo
  • 2 weeks later...
Posted
http://www.opennet.ru/base/net/ipfw_pipe.txt.html

и таки gred получше.

но и так как описано все работает.

хм... сделал всё так, как там написано... но... чего-то не работает...

и, я так понимаю, ipfw pipe show должен выводить пакеты, находящиеся в очереди...

а выводит только 00001: 300.000 KBit/s 0 ms 20 sl 0 queues (1 buckets) droptail

Posted

http://www.opennet.ru/base/net/ipfw_pipe.txt.html

и таки gred получше.

но и так как описано все работает.

хм... сделал всё так, как там написано... но... чего-то не работает...

и, я так понимаю, ipfw pipe show должен выводить пакеты, находящиеся в очереди...

а выводит только 00001: 300.000 KBit/s 0 ms 20 sl 0 queues (1 buckets) droptail

ipfw pipe show - выводит созданные pipes

ipfw queue show - выводит пакеты в очереди

Posted (edited)
ipfw pipe show - выводит созданные pipes

ipfw queue show - выводит пакеты в очереди

ок, спасибо :)

Edited by SaBo
Posted

Ещё раз перечитал комменты к статье.

И понял, что надо было сделать так:

 

${ipfw} pipe 1 config bw 300Kbit/s queue 20

 

${ipfw} queue 1 config pipe 1 weight 50 queue 20 mask dst-ip 0xffffffff

${ipfw} queue 11 config pipe 1 weight 50 queue 20 mask src-ip 0xffffffff

 

${ipfw} add queue 1 ip from any to 192.168.2.0/30

${ipfw} add queue 11 ip from 192.168.2.0/30 to any

Теперь даже ipfw queue show начал что-то показывать :)

Posted

И ещё такой вопросик :)

 

У меня есть 3 vlan'а:

vlan0 | 192.168.2.1 | 255.255.255.252

vlan1 | 192.168.2.5 | 255.255.255.252

vlan2 | 192.168.2.6 | 255.255.255.252

 

Как сделать так, что бы они все в это правило добавлялись автоматически.

Ну, например, я задаю массив с IPшниками и подставляю его.

 

${ipfw} add queue 1 ip from any to 192.168.2.0/30
${ipfw} add queue 11 ip from 192.168.2.0/30 to any

 

ключевое слово to any

т.е. это получается ограничение скорости на всё, в т.ч. и на сетевые мосты. А как сделать так, что бы ограничение было только на Интернет?..

Posted (edited)
т.е. это получается ограничение скорости на всё, в т.ч. и на сетевые мосты. А как сделать так, что бы ограничение было только на Интернет?..

например так

 

/sbin/ipfw add 8400 queue 1 tcp from any to "192.168.99.0/24{2-254}" via fxp0

/sbin/ipfw add 8500 queue 11 tcp from "192.168.99.0/24{2-254}" to any via fxp0

 

кстати, по греду я нашел гдето такие параметры

/sbin/ipfw queue 1 config pipe 1 weight 50 gred 0.002/10/30/0.1 mask dst-ip 0xffffffff

/sbin/ipfw queue 11 config pipe 2 weight 50 gred 0.002/10/30/0.1 mask src-ip 0xffffffff

 

вроде нормально получается.

Edited by denzz
Posted

Чего-то не получается...

Вроде как эта фича должна динамически делить канал. Т.е. если канал полностью свободен, то он весь отдаётся отдному юзеру.

 

Когда включаю всю эту фигню в настройки, то скорость скачки на компьютере падает (была 40, стала 8), если ведётся две закачки одновременно, то скорость каждой ~ по 8 8х2=16 16х8=128КБит/сек

 

зы. при канале >300 КБит/сек

Posted

Самое что интересное, когда на серваке ставлю канал=1000, то скорость закачки на компьютере опять становится максимальной (чуть больше 40Кб/сек)

Posted

Начал по-нормальному динамически распределять скорость только тогда, котгда я поставил

${ipfw} pipe 1 config bw 600Kbit/s queue 20

 

т.е. 300(скорость входящего трафика)+300(скорсоть исходящего трафика) = 600 (скорость, которую я выставил)

 

Теперь когда качаю на одном компьютере, то он занимает весь канал, когда на двух, они делят по полам, когда на трёх - они делят на троих :)

Posted

ты запихал в один pipe и вход и выход.

немудрено, что получилось 600 при дуплексном канале.

разбей на два пайпа

 

${ipfw} pipe 1 config bw 300Kbit/s queue 20

${ipfw} pipe 2 config bw 300Kbit/s queue 20

 

${ipfw} queue 1 config pipe 1 weight 50 queue 20 mask dst-ip 0xffffffff

${ipfw} queue 11 config pipe 2 weight 50 queue 20 mask src-ip 0xffffffff

 

${ipfw} add queue 1 ip from any to 192.168.2.0/30

${ipfw} add queue 11 ip from 192.168.2.0/30 to any

Posted

Ага, я так и решил сделать :) Тем блее, что в том месте, где будет стоять сервак (вернее уже установлен) у канала скорость входщая/исходящая разная.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.