Страница 1 из 2
шейпинг пайпами
Добавлено: 2008-09-04 15:01:31
godlike
Всем привет.
Просвятите пожалуйста!
Если пользователей шейпить пайпами (ipfw+dunnybet)
И, скажем, сумма канала по пайпам раза так в 4 больше реальной ширины канала, то как будет делится трафик между пользователями? Равномерно? Или те, кто пришел раньше, заберут на себя весь трафик, а остальным фигушки?
В общем например есть канал 2 мбит, и есть 8 пользователей у каждого по 1Мбиту, какой канал получит каждый пользователь при условии их одновременной сетевой активности и полной загрузки внешнего канала?
Заранее Огромное Спасибо!
Re: шейпинг пайпами
Добавлено: 2008-09-04 15:05:00
hizel
кто больше откусит тот и будет но не больше 1 мбита если так резать

Re: шейпинг пайпами
Добавлено: 2008-09-04 15:08:15
godlike
Т.е. Будет неравноправный шейпинг, я правильно понял?
Тогда как можно шейпить, чтоб каждый получал равномерно трафика.
Например если есть канал 1 Мбит
Шейпы 256, 512 и 1Мбит, то чтоб они получили соответственно 145, 291 и 583 Кбита (в общей сумме 1 Мбит)
З.Ы. Таки на этом форуме прикольно, мне еще никогда так быстро не отвечали

Re: шейпинг пайпами
Добавлено: 2008-09-04 15:15:10
hizel
выкатываю свой рабочий концепт
основные моменты
1. учтены что могут быть пользователи без ограничения канала
2. тем кто ширина канала гарантируется имеют в общем пайпе больший приоритет
3. входящйи и исходящий канал православно шейпацо раздельно
4. смайлики относятся к территории россии за МКАДом и КАДом
Код: Выделить всё
#
### queue config
#
## global shaper
$fw pipe 1 config bw 4Mbit/s queue 100
$fw pipe 2 config bw 4Mbit/s queue 100
# queues for not piped users (:)
$fw queue 10 config pipe 1 queue 100 weight 40 mask dst-ip 0xffffffff
$fw queue 11 config pipe 2 queue 100 weight 40 mask src-ip 0xffffffff
# queue for piped users %)
$fw queue 12 config pipe 1 queue 100 weight 70 mask dst-ip 0xffffffff
$fw queue 13 config pipe 2 queue 100 weight 70 mask src-ip 0xffffffff
## shpe ahdkashkdas =)
# 32 kbits >8O
$fw pipe 32 config bw 40Kbit/s queue 10 mask dst-ip 0xffffffff
$fw pipe 33 config bw 40Kbit/s queue 10 mask src-ip 0xffffffff
# 64 kbits :/
$fw pipe 64 config bw 70Kbit/s queue 15 mask dst-ip 0xffffffff
$fw pipe 65 config bw 70Kbit/s queue 15 mask src-ip 0xffffffff
# 128 kbits :|
$fw pipe 128 config bw 130Kbit/s queue 20 mask dst-ip 0xffffffff
$fw pipe 129 config bw 130Kbit/s queue 20 mask src-ip 0xffffffff
# 256 kbits :)
$fw pipe 256 config bw 260Kbit/s queue 30 mask dst-ip 0xffffffff
$fw pipe 257 config bw 260Kbit/s queue 30 mask src-ip 0xffffffff
# 512 kbits =)
$fw pipe 512 config bw 520Kbit/s queue 45 mask dst-ip 0xffffffff
$fw pipe 513 config bw 520Kbit/s queue 45 mask src-ip 0xffffffff
# 1024 kbits ~8)
$fw pipe 1024 config bw 1Mbit/s queue 64 mask dst-ip 0xffffffff
$fw pipe 1025 config bw 1Mbit/s queue 64 mask src-ip 0xffffffff
# 2048 kbits ~8( )~~~
$fw pipe 2048 config bw 2Mbit/s queue 80 mask dst-ip 0xffffffff
$fw pipe 2049 config bw 2Mbit/s queue 80 mask src-ip 0xffffffff
#
## clients shape ahtung :)
#
# shape address
clfull_table=50
cl32_table=51
cl64_table=52
cl128_table=53
cl256_table=54
cl515_table=55
cl1024_table=56
cl2048_table=57
##
$fw set disable 20
# 32kbit\s
$fadd 2000 set 20 pipe 32 tag 20 ip from any to table\($cl32_table\) out via vlan*
$fadd 2001 set 20 pipe 33 tag 20 ip from table\($cl32_table\) to any in via vlan*
# 64kbit\s
$fadd 2002 set 20 pipe 64 tag 20 ip from any to table\($cl64_table\) out via vlan*
$fadd 2003 set 20 pipe 65 tag 20 ip from table\($cl64_table\) to any in via vlan*
# 128kbit\s
$fadd 2004 set 20 pipe 128 tag 20 ip from any to table\($cl128_table\) out via vlan*
$fadd 2005 set 20 pipe 129 tag 20 ip from table\($cl128_table\) to any in via vlan*
# 256kbit\s
$fadd 2006 set 20 pipe 256 tag 20 ip from any to table\($cl256_table\) out via vlan*
$fadd 2007 set 20 pipe 257 tag 20 ip from table\($cl256_table\) to any in via vlan*
# 512kbit\s
$fadd 2008 set 20 pipe 512 tag 20 ip from any to table\($cl512_table\) out via vlan*
$fadd 2009 set 20 pipe 513 tag 20 ip from table\($cl512_table\) to any in via vlan*
# 1024kbit\s
$fadd 2010 set 20 pipe 1024 tag 20 ip from any to table\($cl1024_table\) out via vlan*
$fadd 2011 set 20 pipe 1025 tag 20 ip from table\($cl1024_table\) to any in via vlan*
# 2048kbit\s
$fadd 2012 set 20 pipe 2048 tag 20 ip from any to table\($cl2048_table\) out via vlan*
$fadd 2013 set 20 pipe 2049 tag 20 ip from table\($cl2048_table\) to any in via vlan*
## shape all
$fadd 2100 set 20 queue 12 ip from any to any out via vlan* tagged 20
$fadd 2101 set 20 queue 13 ip from any to any in via vlan* tagged 20
## shape any
$fadd 2105 set 20 queue 10 ip from any to not table\($service_table\) out via vlan* not tagged 20
$fadd 2106 set 20 queue 11 ip from not table\($service_table\) to any in via vlan* not tagged 20
$fadd 2110 count ip from any to any via vlan*
$fw set enable 20
Re: шейпинг пайпами
Добавлено: 2008-09-04 15:24:42
godlike
У мну скажем, шейпится так:
Код: Выделить всё
#################################################################### #
#NAT SETUP
#################################################################### #
${fwcmd} add divert natd ip from ${intnet} to any out via ${extint} #NAT setup
${fwcmd} add divert natd ip from any to ${extip} #
#
#################################################################### #
#GENERAL SHAPING
#################################################################### #
${fwcmd} add pipe 1 ip from table\(1\) to ${intnet} in via ${extint} #UA-IX ext channel shaping
${fwcmd} pipe 1 config bw 20Mbit/s #
${fwcmd} add pipe 2 ip from ${intnet} to table\(1\) out via ${extint} #
${fwcmd} pipe 2 config bw 20Mbit/s #
${fwcmd} add pipe 3 ip from any to ${intnet} in via ${extint} #world ext channel shaping
${fwcmd} pipe 3 config bw 10Mbit/s #
${fwcmd} add pipe 4 ip from ${intnet} to any out via ${extint} #
${fwcmd} pipe 4 config bw 10Mbit/s #
${fwcmd} add pipe 5 ip from ${intip} to ${intnet} out via ${intint} #internal networks shaping
${fwcmd} pipe 5 config bw 100Mbit/s #
${fwcmd} add pipe 6 ip from ${intnet} to ${intip} in via ${intint} #
${fwcmd} pipe 6 config bw 100Mbit/s #
${fwcmd} add pipe 7 ip from any to any tcpflags ack iplen 0-128 #very little packets shaping
${fwcmd} pipe 7 config bw 100Mbit/s #
#
#################################################################### #
#USER SHAPING
####################################################################
####################################################################
#godlike
####################################################################
${fwcmd} add pipe 8 ip from table\(1\) to 192.168.25.6 out via ${intint}
${fwcmd} pipe 8 config bw 2Mbit/s
${fwcmd} add pipe 9 ip from 192.168.25.6 to table\(1\) in via ${intint}
${fwcmd} pipe 9 config bw 2Mbit/s
${fwcmd} add pipe 10 ip from any to 192.168.25.6 out via ${intint}
${fwcmd} pipe 10 config bw 1Mbit/s
${fwcmd} add pipe 11 ip from 192.168.25.6 to any in via ${intint}
${fwcmd} pipe 11 config bw 1Mbit/s
Т.е. для равномерного шейпинга нужно для каждого профиля создать свою табличку юзверей.
А для каждой таблички свой параметр queue?
просто не понимаю, ведь вроде параметром дележа трафика есть параметр weight, а не количество пакетов, как у Вас?
Re: шейпинг пайпами
Добавлено: 2008-09-04 15:46:17
hizel
попробуем расшифровать
1. работает при выключенном one_pass
2. делается pipe для аплинка в моем случае 1 и 2
3. в нем делаются очереди queue для каждого пайпа по две штуки одна штука для клиентов которые режутся по скорости и им больший приоритет и втарая для тех кто не режется по скороси, в моем случае они создают отдельные queue для каждого ip адреса который попал под правило и все их вместе уравнивает в зависимости от веса(приоритета, weight)
4. дальше создаются пайпы для отрезки скорости 32,64,128,256,512,1024,2048
5. следующие действия после подготовки pipe\queue засунуть что куда
в результате те кто проходят с отрезкой
проходят через нужный pipe и жестоко отрезаются по скорости и к пакету прилепляется специальный тэг(tag)
далее оно суется в общий пайп где оно равномерно уравнивается с другими, если нехвататет место урезаются соседи
в результате получается более менее
теже кто не попадает под правила жосткой отрезки канала тэга не имеет и попадает в туже общую трубу
но с меньшим приоритетом
как то так...
устал, надо наверно картинку нарисовать

Re: шейпинг пайпами
Добавлено: 2008-09-04 16:07:50
godlike
Понял почти все, СПАСИБО!.
1 нюанс хочу уточнить:
У меня нет незарезанных пользователей=), каждый имеет ограничение по ширине канала.
Общую очередь похоже, им можно не делать,
просто для каждого пользователя указать типа
Код: Выделить всё
####################################################################
#godlike
####################################################################
${fwcmd} add pipe 8 ip from table\(1\) to 192.168.25.6 out via ${intint}
${fwcmd} pipe 8 config bw 2Mbit/s queue 64
${fwcmd} add pipe 9 ip from 192.168.25.6 to table\(1\) in via ${intint}
${fwcmd} pipe 9 config bw 2Mbit/s queue 64
${fwcmd} add pipe 10 ip from any to 192.168.25.6 out via ${intint}
${fwcmd} pipe 10 config bw 1Mbit/s queue 64
${fwcmd} add pipe 11 ip from 192.168.25.6 to any in via ${intint}
${fwcmd} pipe 11 config bw 1Mbit/s queue 64
типа так?
Для 2-х мегабит размер очереди соответственно больше
И так рассчитать примерные коэффициенты?
З.Ы.
Увы one_pass у меня должен быть включен, т.к. у меня шейпится отдельно трафик с точкой обмена трафиком UA-IX, а потом уже собственно интернет.
Так вот, чтоб у меня трафик не пробегал сначала по 1 пайпу, а затем по другому я и включил onepass
Re: шейпинг пайпами
Добавлено: 2008-09-04 16:30:08
hizel
гм а без оне пасс моя схемка не сработает а даже слабо представляю как можно без него решить эту проблему
дело в том что люди должны отрезатся два раза
первый для ограничения скорости
второй раз чтобы внешний канал равномерно распределялся на всех
Код: Выделить всё
$fw pipe 1 config bw 4Mbit/s queue 100
$fw queue 10 config pipe 1 queue 100 weight 40 mask dst-ip 0xffffffff
$fw add queue 10 ip from any to 192.168.0.1 in via $client_int
$fw add queue 10 ip from any to 192.168.0.2 in via $client_int
эта конструкция
создет трубу(pipe) а в нем для каждого из двух айпишников по очереди(queue) с одинаковым весом
в результате они равномерно занимают полосу
если первый работает один он может занять всю полосу если появляется второй то первого полоса постепенно ужимается
разделяются клиенты в данном случае по (ip куда идут пакеты)dst-ip 0xffffffff
Код: Выделить всё
$fw pipe 1 config bw 4Mbit/s queue 100
$fw queue 10 config pipe 1 queue 100 weight 40 mask dst-ip 0xffffffff
$fw queue 11 config pipe 1 queue 100 weight 60 mask dst-ip 0xffffffff
$fw add queue 10 ip from any to 192.168.0.1 in via $client_int
$fw add queue 11 ip from any to 192.168.0.2 in via $client_int
эта конструкция делает в трубе две очереди за разным весом
соттветственно у кого вес больше тот более приоритетен
и если два клиента работаю во всю ширину канала то
при такой настройке один будет занимать 40% канала, а второй 60%
тоесть в вашем случае пакеты сначала шейпируются на ширину их отрезки скорости
а потом хорошо бы их засунуть в подобную конструкцию чтобы они равномерно занимали канал
однако без one_pass я не вижу как это сделать

Re: шейпинг пайпами
Добавлено: 2008-09-04 16:37:33
godlike
Ага, теперь понял, будем думать.
Кстати, тут еще 1 вопросик назрел: а если шейпить по общей конструкции, то не получится ли такой проблемы:
Есть юзверь с 256 Кбитом и есть юзверь с 512Кбит мбитами и есть канал 512Кбит
Если им дать одинаковый приоритет в общем пайпе, то они получат по 256 кбит каждый, или согласно их потолкам - т.е. тот, что 512 кбит получит больше?
Re: шейпинг пайпами
Добавлено: 2008-09-04 16:47:15
hizel
в предыдущем почсте очепятко небольшое
что касается вашего вопроса, тут дело вкуса
тогда сделать
настройка
Код: Выделить всё
$fw pipe 1 config bw 4Mbit/s queue 100
# 1Mbit clients
$fw queue 10 config pipe 1 queue 100 weight 20 mask dst-ip 0xffffffff
# 2Mbit clients
$fw queue 11 config pipe 1 queue 100 weight 30 mask dst-ip 0xffffffff
# 3Mbit clients
$fw queue 12 config pipe 1 queue 100 weight 40 mask dst-ip 0xffffffff
а тут обратите внимание на номера очередей
в результате 192.168.0.1 - вес наименее приоритетен
192.168.0.2,192.168.0.5,192.168.0.6 - средний приоритет
192.168.0.3,192.168.0.4 - высший приоритет
Код: Выделить всё
$fw add queue 10 ip from any to 192.168.0.1 out via $client_int
$fw add queue 11 ip from any to 192.168.0.2 out via $client_int
$fw add queue 12 ip from any to 192.168.0.3 out via $client_int
$fw add queue 12 ip from any to 192.168.0.4 out via $client_int
$fw add queue 11 ip from any to 192.168.0.5 out via $client_int
$fw add queue 11 ip from any to 192.168.0.6 out via $client_int
кстатти по поводу процентов в прошлом посте я похоже прогнал
но смысл правильные те у кого больший вес получают больший кус канала при прочих равных
да и не in а out шейпируем то входящий к клиенту каналец
Re: шейпинг пайпами
Добавлено: 2008-09-04 17:12:25
godlike
ООО. Спасибо большое за идею!!!
Я сделал так:
Создал 6 очередей для главного пайпа
2Mbit - weight 50
1Mbit - weight 25
512Kbit - weight 13
256Kbit - weight 7
128Kbit - weight 3
64Kbit - weight 2
А потом для каждого клиента добавить по паре очередей=), ему соответствующих(аплоад и даунлоад)
Как будете в киеве, пишите в личку, пиво надеюсь пьете:)
Re: шейпинг пайпами
Добавлено: 2008-09-04 17:38:08
hizel
хм надеюсь, что помог
кстати вы уже второй кто заманивает именно в Киев на пиво

киевляне все такие пивосольные?
вот поднимем wiki нармально, соберем все знания в пучок
и будем тыкать форумчан туда

Re: шейпинг пайпами
Добавлено: 2008-09-04 17:49:21
godlike
Не знаю, как насчет остальных, а мне пивом угостить умного человека всегда приятно.
По поводу вики - было бы круто)
Re: шейпинг пайпами
Добавлено: 2008-09-05 21:18:22
CrazyAdmin
2 пользователя. канал 256/256.
если сидят все пользователи надо чтоб резался канал, каждому столько сколько указано в трубе.
свободная часть канала чтоб добавлялась равномерно на всех.
ниже привожу конфиг который пробую. результат: сидят все - 15.2KB/s.....сидит 1 - 14-15.5 KB/s
sysctl net.inet.ip.fw.one_pass=0
Код: Выделить всё
#Clearing...
${cmd} -q flush
${cmd} zero
#NAT
${cmd} nat 100 config ip ${meip_adsl}
#tables
${cmd} table 1 flush
${cmd} table 1 add 192.168.0.100
${cmd} table 1 add 192.168.0.150
#RULES
${cmd} add 100 nat 100 all from any to any via ${iface_adsl}
#Pipes
${cmd} pipe 1 config bw 256Kbit/s
${cmd} pipe 2 config bw 256Kbit/s
${cmd} pipe 1000 config bw 128Kbit/s
${cmd} pipe 1001 config bw 128Kbit/s
${cmd} pipe 1500 config bw 128Kbit/s
${cmd} pipe 1501 config bw 128Kbit/s
${cmd} queue 10 config pipe 1 queue 100 weight 90 mask src-ip 0xffffffff
${cmd} queue 11 config pipe 2 queue 100 weight 90 mask dst-ip 0xffffffff
${cmd} set disable 20
${cmd} add 1000 set 20 pipe 1000 tag 20 ip from 192.168.0.100 to any in via vr0
${cmd} add 1001 set 20 pipe 1001 tag 20 ip from any to 192.168.0.100 out via vr0
${cmd} add 1003 set 20 pipe 1500 tag 20 ip from 192.168.0.150 to any in via vr0
${cmd} add 1004 set 20 pipe 1501 tag 20 ip from any to 192.168.0.150 out via vr0
${cmd} add 1005 set 20 queue 10 all from table\(1\) to any in via vr0 tagged 20
${cmd} add 1006 set 20 queue 11 all from any to table\(1\) out via vr0 tagged 20
${cmd} set enable 20
Re: шейпинг пайпами
Добавлено: 2009-01-03 18:30:58
godlike
И снова я вас замучаю=)
Настроил я кавайный шейпинг динамическими пайпами:
Код: Выделить всё
####################################################################
#tarif plans
####################################################################
${fwcmd} pipe 8 config bw 4Mbit/s mask dst-ip 0xffffffff #incoming user
${fwcmd} pipe 9 config bw 2Mbit/s mask dst-ip 0xffffffff
${fwcmd} pipe 10 config bw 1Mbit/s mask dst-ip 0xffffffff
${fwcmd} pipe 11 config bw 512Kbit/s mask dst-ip 0xffffffff
${fwcmd} pipe 12 config bw 256Kbit/s mask dst-ip 0xffffffff
${fwcmd} pipe 13 config bw 128Kbit/s mask dst-ip 0xffffffff
${fwcmd} pipe 14 config bw 64Kbit/s mask dst-ip 0xffffffff
${fwcmd} pipe 15 config bw 4Mbit/s mask src-ip 0xffffffff #outcoming user
${fwcmd} pipe 16 config bw 2Mbit/s mask src-ip 0xffffffff
${fwcmd} pipe 17 config bw 1Mbit/s mask src-ip 0xffffffff
${fwcmd} pipe 18 config bw 512Kbit/s mask src-ip 0xffffffff
${fwcmd} pipe 19 config bw 256Kbit/s mask src-ip 0xffffffff
${fwcmd} pipe 20 config bw 128Kbit/s mask src-ip 0xffffffff
${fwcmd} pipe 21 config bw 64Kbit/s mask src-ip 0xffffffff
####################################################################
#adding users to their tarifs
####################################################################
${fwcmd} table 10 flush #256/512 table
${fwcmd} table 10 add 192.168.25.6
####################################################################
#shaping
####################################################################
${fwcmd} add pipe 11 ip from table\(1\) to table\(10\) via ${intint}#UAIX
${fwcmd} add pipe 18 ip from table\(10\) to table\(1\) via ${intint}#
${fwcmd} add pipe 12 ip from any to table\(10\) via ${intint}#world
${fwcmd} add pipe 19 ip from table\(10\) to any via ${intint}#
где ${intint} - интерфейс, смотрящий на юзверей
table(1) - таблица UA-IX подсетей
Все оно отлично работает, но возникла проблема:
понадобилось выделять фиксированную скорость на несколько адресов:
например на 192.168.25.10 и 192.168.25.14 нужно выделить 512 Кбит.
Но вот незадача, мои динамические шейпы используют маску 0xffffffff,
что подразумевает собой выделение по "трубе" на _каждый_ ip-адрес.
А мне нужно 1 трубу выделить на 2 айпи-адреса.
Можно как-то решить проблему, кроме возврата к статически-прописанным пайпам?
Заранее спасибо за ответ!
Re: шейпинг пайпами
Добавлено: 2009-05-12 10:34:03
Snake
Имеется - пять клиентов, подключающихся по впн, и два непосредственно по сети. Нужно разделить между ними по справедливости канал в инет. Понятие "справедливо" подразумевает, что _активные_ в данный момент пользователи делят между собой канал. Сидят двое - делится пополам. Один ушел - второму остался весь. C приведенным ниже конфигом трафик режется крайне хренова.
Конфиг (фрагмент):
Код: Выделить всё
#!/bin/sh
#-------------------------------------
upi=650Kbit/s #Исходящий в инет
downi=1900Kbit/s #Входящий инет
#------------------------------------
#-----------------------------------
#Создаем пайпы
$fw pipe 100 config bw $downi queue 50
$fw pipe 200 config bw $upi queue 50
#-----------------------------------
#Создаем очереди
#inet --> LAN
$fw queue 101 config weight $tcp2w queue 50 pipe 100 gred 0.002/10/30/0.1 mask dst-ip 0xffffffff
$fw queue 102 config weight $ip1w queue 50 pipe 100 gred 0.002/10/30/0.1 mask dst-ip 0xffffffff
#LAN --> inet
$fw queue 201 config weight $tcp2w queue 50 pipe 200 gred 0.002/10/30/0.1 mask src-ip 0xffffffff
$fw queue 202 config weight $ip1w queue 50 pipe 200 gred 0.002/10/30/0.1 mask src-ip 0xffffffff
#Диверты
##Incoming
$fwa 10300 divert 8448 ip from any to me in via $inet
##Outcoming
$fwa 11500 divert 8448 ip from $vpn to any out via $inet
$fwa 11600 divert 8448 ip from $users to any out via $inet
#----------------------------------
#Загоняем трафик в пайпы
##Входящий инет трафик
$fwa 14000 queue 101 tcp from any to me in via $inet
$fwa 14100 queue 102 udp from any to me in via $inet
$fwa 14300 queue 101 tcp from any to $users in via $inet
$fwa 14400 queue 102 udp from any to $users in via $inet
##Исходящий инет трафик
$fwa 16000 queue 201 tcp from me to any
$fwa 16200 queue 202 udp from me to any
Буду благодарен за любые подсказки

.
net.inet.ip.fw.one_pass=0
Re: шейпинг пайпами
Добавлено: 2009-05-12 10:37:54
hizel
посмотреть бы

Re: шейпинг пайпами
Добавлено: 2009-05-12 11:16:02
Snake
Код: Выделить всё
#ipfw pipe show
00100: 1.900 Mbit/s 0 ms 50 sl. 0 queues (1 buckets) droptail
00200: 650.000 Kbit/s 0 ms 50 sl. 0 queues (1 buckets) droptail
q00102: weight 4 pipe 100 50 sl. 3 queues (64 buckets)
GRED w_q 0.001999 min_th 10 max_th 30 max_p 0.099991
mask: 0x00 0x00000000/0x0000 -> 0xffffffff/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
9 ip 0.0.0.0/0 123.123.123.123/0 220728 23525317 0 0 0
45 ip 0.0.0.0/0 10.12.5.53/0 2538479 342245227 0 0 0
47 ip 0.0.0.0/0 10.12.5.55/0 22 1076 0 0 0
q00201: weight 2 pipe 200 50 sl. 4 queues (64 buckets)
GRED w_q 0.001999 min_th 10 max_th 30 max_p 0.099991
mask: 0x00 0xffffffff/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
26 ip 10.12.51.11/0 0.0.0.0/0 31568 1917439 0 0 0
33 ip 123.123.123.123/0 0.0.0.0/0 37970652 13892753139 0 0 3419106
34 ip 192.168.106.37/0 0.0.0.0/0 1089 43955 0 0 0
48 ip 10.12.5.254/0 0.0.0.0/0 90 4403 0 0 0
q00202: weight 4 pipe 200 50 sl. 3 queues (64 buckets)
GRED w_q 0.001999 min_th 10 max_th 30 max_p 0.099991
mask: 0x00 0xffffffff/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
26 ip 10.12.51.11/0 0.0.0.0/0 269 54857 0 0 0
33 ip 123.123.123.123/0 0.0.0.0/0 4087365 981585310 0 0 5586
34 ip 192.168.106.37/0 0.0.0.0/0 25 1900 0 0 0
123.123.123.123 - внейшний ип серва
10.12.5.254,10.12.51.11 - внутренние ип
192.168.106.37 - ип серва в сети прова
Re: шейпинг пайпами
Добавлено: 2009-05-12 11:36:08
hizel
шейпите на интерфейсе в сторону клиента или до НАТа
Re: шейпинг пайпами
Добавлено: 2009-05-12 12:25:15
Snake
Т.е. очередь для исходящих нужно ставить на входящий трафик на внутренних интерфейсах? А как быть с входящим?
Re: шейпинг пайпами
Добавлено: 2009-05-12 12:31:44
hizel
надо чтобы в трубы\очерди попадал траик только тех кто шейпить
естественно до ната, так как естественно после ната все клиенты торчат из под одного ip, какой уж тут шейпинг
где конкртено и как в какую сторону регулируйте на свое усмотерние %-)
Re: шейпинг пайпами
Добавлено: 2009-05-12 13:49:24
InventoR
Перечитал всю тему, и тут не кто так и не сказал, что для более равномерной нарезки канала ядро надо компилировать с опцией:
Re: шейпинг пайпами
Добавлено: 2009-05-12 13:59:10
hizel
некоторым бородатым дядькам это кажется очевидным :-)
Re: шейпинг пайпами
Добавлено: 2009-05-12 14:32:31
InventoR
Согласен, но как мне кажется, человек который создал данную тему мало представляет об очевидном.
Re: шейпинг пайпами
Добавлено: 2009-06-17 13:40:55
Snake
Настроил очереди... трафик заходит и все вроде бы прекрасно. Но. Канал используется максимум наполовину

Либо он делит скорость более или менее фиксировано, либо считает активными всех подключенных по впн юзверей... Вот конф:
Код: Выделить всё
#!/bin/sh
#Объявляем переменные
fwf="/sbin/ipfw -f flush"
fw="/sbin/ipfw -q"
fwa="/sbin/ipfw -q add"
fwfp="/sbin/ipfw -f flush pipe"
fwfq="/sbin/ipfw -f flush queue"
#-------------------------------------
upi=500Kbit/s #Исходящий в инет
upv=250Kbit/s #Исходящий во внутрисеть
downi=1900Kbit/s #Входящий инет
downv=5000Kbit/s #Входящий внутрисеть
#------------------------------------
lan="rl0"
wan="fxp0"
inet="ng0"
vlan="vlan1205"
#------------------------------------
#Вес для разных типов трафика
tcp1w=3 #Высокоприоритетный трафик
tcp2w=2 #Остальной трафик TCP
ip1w=4 #Остальной трафик
#-----------------------------------
#Очищаем правила
$fwf
#Очищаем очереди и пайпы
$fwfp
$fwfq
#-----------------------------------
#Создаем пайпы
$fw pipe 100 config bw $downi queue 50
$fw pipe 150 config bw $downv queue 50
$fw pipe 200 config bw $upi queue 50
$fw pipe 250 config bw $upv queue 50
#-----------------------------------
#Создаем очереди
#inet --> LAN
$fw queue 101 config weight $tcp2w queue 50 pipe 100 gred 0.002/10/30/0.1 mask dst-ip 0xffffffff
$fw queue 102 config weight $ip1w queue 50 pipe 100 gred 0.002/10/30/0.1 mask dst-ip 0xffffffff
#VTK --> LAN
$fw queue 151 config weight $tcp2w queue 50 pipe 150 gred 0.002/10/30/0.1 mask dst-ip 0xffffffff
$fw queue 152 config weight $ip1w queue 50 pipe 150 gred 0.002/10/30/0.1 mask dst-ip 0xffffffff
#LAN --> inet
$fw queue 201 config weight $tcp2w queue 50 pipe 200 gred 0.002/10/30/0.1 mask src-ip 0xffffffff
$fw queue 202 config weight $ip1w queue 50 pipe 200 gred 0.002/10/30/0.1 mask src-ip 0xffffffff
#LAN --> VTK
$fw queue 251 config weight $tcp2w queue 50 pipe 250 gred 0.002/10/30/0.1 mask src-ip 0xffffffff
$fw queue 252 config weight $ip1w queue 50 pipe 250 gred 0.002/10/30/0.1 mask src-ip 0xffffffff
#-----------------------------------
#Loopback
$fwa 02000 allow all from any to any via lo0
$fwa 02100 deny ip from any to 127.0.0.0/8
$fwa 02200 deny ip from 127.0.0.0/8 to any
#Запрещаем все и вся
##deny 445
$fwa 02500 deny ip from any to any dst-port 445
##SSH
$fwa 03000 allow tcp from $admins to me 22 in via $lan
$fwa 03050 allow tcp from me 22 to $admins out via $lan
$fwa 03100 allow tcp from $work to me 22 in via $inet
$fwa 03150 allow tcp from me 22 to $work out via $inet
$fwa 03666 deny log tcp from any to me 22
##Запрещаем локальный траффик на внешних интерфейсах
$fwa 04000 deny log ip from 10.0.0.0/8 to me in via $inet
$fwa 04100 deny log ip from 192.168.0.0/16 to me in via $inet
$fwa 04200 deny log ip from 172.16.0.0/12 to me in via $inet
$fwa 04300 deny log ip from me to 10.0.0.0/8 out via $inet
$fwa 04400 deny log ip from me to 192.168.0.0/16 out via $inet
$fwa 04500 deny log ip from me to 172.16.0.0/12 out via $inet
$fwa 04600 deny log ip from 10.0.0.0/8 to me in via $wan
$fwa 04750 deny log ip from 172.16.0.0/12 to me in via $wan
$fwa 04800 deny log ip from me to 10.0.0.0/8 out via $wan
$fwa 04900 deny log ip from me to 172.16.0.0/12 out via $wan
#-----------------------------------
#Исходящая очередь
##Исходящий ВТК трафик
$fwa 05000 queue 202 ip from any to $vth_serv in
$fwa 05100 queue 251 ip from any to $vth in via $vlan
##Исходящий инет трафик
$fwa 05200 queue 201 tcp from $users to any in via $vlan
$fwa 05300 queue 201 tcp from $vpn to any in
$fwa 05400 queue 202 udp from $users to any in via $vlan
$fwa 05500 queue 202 udp from $vpn to any in
$fwa 05600 queue 202 ip from me to any out via $inet
#Разрешаем исходящие
$fwa 06000 allow ip from $users to any in via $vlan
$fwa 06100 allow ip from $vpn to any in
#-----------------------------------
#Диверты
##Incoming
$fwa 10053 divert 8558 ip from $vth to me dst-port 12553 in via $wan
$fwa 10100 divert 8668 ip from $vth to me in via $wan
$fwa 10153 divert 8118 ip from any to me dst-port 12553 in via $inet
$fwa 10154 divert 8228 ip from any to me dst-port 12554 in via $inet
$fwa 10200 divert 8448 ip from $vth_serv to me in via $inet
$fwa 10300 divert 8448 ip from any to me in via $inet
##Outcoming
$fwa 11053 divert 8558 ip from 10.12.5.53 12553 to $vth out via $wan
#$fwa 11100 divert 8668 ip from $vpn to $vth out via $wan
$fwa 11200 divert 8668 ip from $users to $vth out via $wan
$fwa 11253 divert 8118 ip from 10.12.5.53 12553 to any out via $inet
$fwa 11254 divert 8228 ip from 10.12.5.53 12554 to any out via $inet
$fwa 11300 divert 8448 ip from $vpn to $vth_serv out via $inet
$fwa 11400 divert 8448 ip from $users to $vth_serv out via $inet
$fwa 11500 divert 8448 ip from $vpn to not $vth out via $inet
$fwa 11600 divert 8448 ip from $users to not $vth out via $inet
#----------------------------------
#Загоняем трафик в пайпы
##Входящий ВТК траффик
$fwa 13000 queue 102 ip from $vth_serv to any in via $inet
$fwa 13100 queue 151 tcp from $vth to $users in via $wan
$fwa 13100 queue 152 ip from $vth to $users in via $wan
##Входящий инет трафик
$fwa 15000 queue 102 ip from any to me in via $inet
$fwa 15100 queue 101 tcp from any to $users in via $inet
$fwa 15200 queue 102 ip from any to $users in via $inet
$fwa 15100 queue 101 tcp from any to any in via $inet
$fwa 15200 queue 102 ip from any to any in via $inet
#----------------------------------
#Разрешаем входящие
$fwa 24500 allow ip from any to $users
$fwa 24600 allow ip from any to $vpn
##Разрешаем пинги
$fwa 30200 allow icmp from me to any
$fwa 30250 allow icmp from any to me
#Разрешаем все исходящие
$fwa 60000 allow ip from me to any