Настроил на домашнем сервере (FreeBSD 6.2) шейпинг, весь входящий трафик из инета на сервер попадает в трубу с низшим приоритетом, а всё остальное что качают юзеры (доступ раздаю через NAT) попадает в другую. Смотрю через ipfw -a list, трафик правильно заворачивается, но если я ставлю на сервере закачку торрентов (использую ctorrent), то он забирает почти всю полосу, хотя качает через трубу с низшим приоритетом (точнее с никакушным приоритетом 2 против 80-ти).
Конфигурация ipfw:ipfw pipe 1 config bw 256Kbit/s queue 10
ipfw pipe 2 config bw 256Kbit/s queue 10ipfw queue 102 config pipe 1 weight 2
ipfw queue 202 config pipe 2 weight 2
ipfw queue 180 config pipe 1 weight 80
ipfw queue 280 config pipe 2 weight 80${fwcmd} add 1000 skipto 10000 ip from any to any in recv rl0
${fwcmd} add 1100 skipto 20000 ip from any to any out xmit rl0${fwcmd} add 1400 skipto 30000 ip from any to any in recv ng0
${fwcmd} add 1500 skipto 40000 ip from any to any out xmit ng0${fwcmd} add 2000 deny log ip from any to any
#################internal-in
${fwcmd} add 10000 count ip from any to any
${fwcmd} add 19000 allow ip from any to any#################internal-out
${fwcmd} add 20000 count ip from any to any
${fwcmd} add 29000 allow ip from any to any#################external-in
${fwcmd} add 30000 count ip from any to any
${fwcmd} add 36000 deny ip from any to not me
${fwcmd} add 38000 divert natd ip from any to any#LOW PRIORITY
${fwcmd} add 38400 queue 102 ip from any to me
#HIGH PRIORITY
${fwcmd} add 38500 queue 180 ip from any to not me${fwcmd} add 38600 allow ip from any to any
#################external-out
${fwcmd} add 40000 count ip from any to any${fwcmd} add 44000 skipto 47400 ip from 192.168.6.48, 192.168.6.49 to any
${fwcmd} add 45000 skipto 47400 ip from me to any${fwcmd} add 47000 deny all from any to any
#LOW PRIORITY
${fwcmd} add 47400 queue 202 ip from me to any
$HIGH PRIORITY
${fwcmd} add 47500 queue 280 ip from not me to any${fwcmd} add 47600 divert natd ip from any to any
${fwcmd} add 47700 allow ip from any to any${fwcmd} add 65000 deny log ip from any to any
Который день вожусь, если у кого есть мысли на этот счёт, поможите!
Учитывая интерес, проявленный к этому вопросу решил отписаться о решении проблемы, может кому пригодится. Как показал sockstat при запуске закачки торрента, ctorrent устанавливал сразу 99 TCP соединений, в результате пакеты с высоким приоритетом просто терялись в общей массе. Решение:
${fwcmd} add 45000 skipto 47400 ip from me to any
изменить на
${fwcmd} add 45000 skipto 47400 ip from me to any limit src-addr 7
последнее значение подбирается экспериментально
> Учитывая интерес, проявленный к этому вопросу решил отписаться о решении проблемы, может
> кому пригодится. Как показал sockstat при запуске закачки торрента, ctorrent устанавливал
> сразу 99 TCP соединений, в результате пакеты с высоким приоритетом просто
> терялись в общей массе. Решение:
> ${fwcmd} add 45000 skipto 47400 ip from me to any
> изменить на
> ${fwcmd} add 45000 skipto 47400 ip from me to any limit src-addr
> 7
> последнее значение подбирается экспериментально7 конектов помоему весьма мало. Может есть другие способы?