Здравствуйте, Yuriy.

Вы писали 21 ноября 2011 г., 22:24:33:

>>> Столкнулся с тем, что некоторые клиенты норовят забить весь канал.
>>> Лечим админ. мерами, но хотелось бы подстраховать и техническими.

>> На наге проскакивало фильтрация по сигнатурам.
>> Но там боролись с резким ростом pps при смене протокола мюторрента.

> Если не путаю, там боролись только с UTP, который взывал рост pps.
> Сейчас этой проблемы не наблюдается, видимо пофиксили в следующих 
> версиях клиента\протокола.

Конструкция с опеннета, немного допиленная и вполне рабочая:

urate=40Mbit/s
drate=40Mbit/s

# Эти TCP-порты будут иметь больший приоритет, нежели остальные.
# Не идеально, но верно для большинства случаев.
gtcp="20,21,22,23,25,80,110,179,443,2222,3389,8080,8081"

# Вес для разных классов трафика
gtw=5 # Высокоприоритетный TCP
btw=2 # Остальной TCP
ipw=3 # Остальной IP (в основном, это UDP)

# Общий фаервол
# Общие пайпы до 100

$ipfw pipe 100 config bw $drate
$ipfw pipe 200 config bw $urate

$ipfw sched 100 config type QFQ
$ipfw sched 200 config type QFQ

# WAN -> LAN
$ipfw queue 111 config sched 100 weight $gtw
$ipfw queue 112 config sched 100 weight $btw
$ipfw queue 113 config sched 100 weight $ipw

# LAN -> WAN
$ipfw queue 211 config sched 200 weight $gtw
$ipfw queue 212 config sched 200 weight $btw
$ipfw queue 213 config sched 200 weight $ipw


# WAN -> LAN
#$ipfw queue 111 config sched 100 weight $gtw queue 50 pipe 100 gred 
0.002/5/15/0.05 mask dst-ip 0xffffffff
#$ipfw queue 112 config sched 100 weight $btw queue 50 pipe 100 gred 
0.002/5/15/0.05 mask dst-ip 0xffffffff
#$ipfw queue 113 config sched 100 weight $ipw queue 50 pipe 100 mask dst-ip 
0xffffffff

# LAN -> WAN
#$ipfw queue 211 config sched 200 weight $gtw queue 50 pipe 200 gred 
0.002/5/15/0.05 mask src-ip 0xffffffff
#$ipfw queue 212 config sched 200 weight $btw queue 50 pipe 200 gred 
0.002/5/15/0.05 mask src-ip 0xffffffff
#$ipfw queue 213 config sched 200 weight $ipw queue 50 pipe 200 mask src-ip 
0xffffffff


.......


${ipfw} add 13121 queue 111 tcp from any to any $gtcp recv vlan312 xmit vlan203
${ipfw} add 13121 queue 111 tcp from any $gtcp to any recv vlan312 xmit vlan203
${ipfw} add 13122 pass tcp from any to any $gtcp recv vlan312 xmit vlan203
${ipfw} add 13122 pass tcp from any $gtcp to any recv vlan312 xmit vlan203
${ipfw} add 13123 queue 112 tcp from any to any recv vlan312 xmit vlan203
${ipfw} add 13123 pass tcp from any to any recv vlan312 xmit vlan203
${ipfw} add 13124 queue 113 ip from any to any recv vlan312 xmit vlan203
${ipfw} add 13124 pass ip from any to any recv vlan312 xmit vlan203

${ipfw} add 13125 queue 211 tcp from any to any $gtcp recv vlan203 xmit vlan312
${ipfw} add 13125 queue 211 tcp from any $gtcp to any recv vlan203 xmit vlan312
${ipfw} add 13126 pass tcp from any to any $gtcp recv vlan203 xmit vlan312
${ipfw} add 13126 pass tcp from any $gtcp to any recv vlan203 xmit vlan312
${ipfw} add 13127 queue 212 tcp from any to any recv vlan203 xmit vlan312
${ipfw} add 13127 pass tcp from any to any recv vlan203 xmit vlan312
${ipfw} add 13128 queue 213 ip from any to any recv vlan203 xmit vlan312
${ipfw} add 13128 pass ip from any to any recv vlan203 xmit vlan312


Вроде  ничего  не пропустил. Конструкция в целом делит
трафик на классы, первыми проходят более высокоприоритетные категории,
при  этом  скорость  делится  пропорционально между активными юзерами.
Торренты  неприоритетны  и  подвигаются,  когда  кому-то  надо сходить
например на HTTP.

-- 
С уважением,
 Pavel                          mailto:[email protected]

Ответить