Тихо-мирно крутилась 6.2 пока не решил обновить до 7.0, для повторения пройденного материала решил устанавливать и настраивать все с нуля. И в конце напоролся на следующие грабли. Сначала расскажу немного о топологии сети. Стоит mpd5 и конектится к прову, к нему же (mpd5) конектятся юзвери. Кроме того на сервере стоит mldonkey и жутко качает фильмы. Задача была следующей: затянуть mldonkey в общий шейпер с юзерами и дать его очереди минимальный приоритет чтобы с одной стороны он не зохавал всю полосу под себя, и чтоб качал без ограничений когда юзеры спят.
Тоесть нужны правила в ipfw "для процесса".
В шестерке это решалось следующим образом: осла я запускал под отдельным юзером и правила в ipfw делал для uid типа так:
Код: Выделить всё
ipfw add queue 10 all from me to any via ng0 out uid mlnet
ipfw add queue 11 all from any to me via ng0 in uid mlnet
Но теперь в Фряхе 7.0 переменную debug.mpsafenet убрали, т.к. избавились от GIANT MUTEX, но глухой зависон при использовании uid/gid правил в ipfw остался!
Фильтровать по портам неохота, слишком уж их много. Засунуть в шейпер весь траф от сервака наружу (тот что не попал к юзерам в предыдущих правилах) - тоже както криво... Помогите советом. Может както сделать виртуальный интерфейс на который посадить mldonkey и продублировать в него траф, или как... Не силен я в этом.
Система:
Код: Выделить всё
gate# uname -a
FreeBSD gate.local 7.0-RELEASE FreeBSD 7.0-RELEASE #4: Wed Mar 19 00:53:23 EET 2008 root@gate.local:/usr/obj/usr/src/sys/VOIDKRNL i386