Здравствуйте, 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]