|
2.3, Alexander Motin (?), 00:14, 14/12/2007 [^] [^^] [^^^] [ответить] [↓] [п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴┬ п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б┴╔п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б√⌠п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я▐Б√▓я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔я├Б∙╔я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б■■п©б╘п╠Б∙≤п©Б√▓п▒Б■╛Б┴╔п▒Б┬≥Б▄║я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б√═Б■─я▐Б√░п▒Б┬ Б√▒п©Б√▓п▒Б┬ Б∙░п▒Б┬ Б√▓]
| +/– |
>А смысл этого, если есть pipe/altq?
Pipe и altq это весьма мощные и точные инструмент, однако они по определению жестко привязаны к обработке IP трафика фаерволом (ipfw или pf).
Netgraph же по определению не имеет жестких структур и позволяет на уровне ядра строить любые конфигурации из имеющихся составных частей. Модуль ng_car - это еще один кубик в этот конструктор. Сам по себе он предельно прост и имеет стандартный интерфейс, что позволяет использовать его ведзе, где требуется ограничение скорости передачи, вне зависимости от контекста. Он может работать с чем угодно, от IP до езернетных или PPP фреймов, или вообще с абстрактного потоком байтов.
Лично я использую связку ng_bpf+ng_car под управлением mpd5 для дифференцированного по типу трафика ограничения скорости PPPoE подключений. Простая замена связки ipfw+pipe на эквивалентную связку ng_bpf+ng_car при 500 активных интерфейсах и 50Мбит/c трафика дала двухкратное снижение загрузки роутера за счет избавления от обхода длинного списка ipfw правил. И это еще в режиме shape. Если же перевести ng_car в режим rate-limit, его ресурсоемкость станет вообще нулевой, на уровне нескольких арифметических операций на пакет.
| |
|
|