pf (packet filter) altq — шейпер во FreeBSD

[root@ ~]# pfctl -f /etc/pf.conf
No ALTQ support in kernel
ALTQ related functions disabled

Мой рассказ пойдет об шейпинге в пакетном фильтре. А точнее я расскажу о том, как включить поддержку очередей в ядро. Для шейпинга во фряхе используется ALTQ.

ALTQ это альтернативная платформа организации очередей для BSD. ALTQ обеспечивает организации очередей, и другиё QoS методы, разделение ресурсов Quality of Service. В основном это реализовано на BSD маршрутизаторах. ALTQ портирован на дистрибутивы FreeBSD, NetBSD, и интегрирован в PF пакетный фильтр OpenBSD.

По умолчанию поддержка altq не включена в ядро (в связи с этим PF выводит где только можно соответствующие сообщения). Для поддержки шейпинга, необходимо собрать ядро дополнительными опциями.
Приступим.

Исходники ядра лежат в /usr/src/sys/. Если у вас нет этой папки, то значит исходников нет и их необходимо скачать. Например утилитой cvsup.
Важно! Необходимо загружать исходники той же версии, что и версия вашей FreeBSВ (uname -r). При попытки загрузки ядро, версия которого не совпадает с общей версией FreeBSD, в лучшем случае, ядро просто не загрузится.

Переходим в директорию:

cd /usr/src/sys/`uname -m`/conf

Обратите внимание, вложенная команда `uname -m` вернет тип процессора. Обычно это i386 или amd64.

Скопируем старый файл конфигурации в новый файл конфигурации:

cp GENERIC MYGENERIC

Открываем файл и начинаем редактирование:

mcedit MYGENERIC

Меняем строку

ident GENERIC

на

ident MYGENERIC

Дописываем в соответствующие места следующие строки:

device pf
device pflog
device pfsync

options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_PRIQ
options ALTQ_NOPCC

Попытаемся собрать новое ядро:

cd /usr/src
make buildkernel KERNCONF="MYGENERIC"
make installkernel KERNCONF="MYGENERIC"

После перезагрузки поддержка очередей будет доступна в вашем pf!

Оставить комментарий


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>