В частности, поддержка HTB в ядре и tc абсолютно необходима, иначе вы не сможете воспользоваться советами, предоставляемыми данным руководством (обратите внимание на название, если у вас есть какие-то сомнения). Поддержка DSMARK, строго говоря, необязательна, однако некоторые примеры (алгоритм выбора класса, в частности, и возможно и другие) могут не работать без нее.
2.1. Требования к ядру
Удовлетворить требования к ядру очень просто. Ядро 2.4.20 и более новые включают поддержку HTB и dsmark, так что просто убедитесь, что эти опции включены в разделе QoS/Fair Queuing конфигурации ядра. За кратким описанием параметров для, которые нужно выбрать в конфигурации ядра, обращайтесь к заметкам по конфигурации ядра для проекта DiffServ
.Для ядер версии меньше 2.4.20 необходим патч
(к сожалению патч существует только для ядер 2.4.17 и выше).2.2. Требования tc
Команда tc
является частью набора утилит iproute2. За общей документацией по iproute2, обращайтесь на сайт http://linux-ip.net/ и к руководству по iproute2. Само программное обеспечение доступно на FTP-архиве Алексея Кузнецова, но обычно они поставляются в виде пакетов с дистрибутивом Linux. Если ваш дистрибутив использует пакеты RPM, вы можете загрузить этот SRPM и скомпилировать у себя в системе.Если вам придется компилировать iproute2
самим, то чтобы включить поддержку htb в tc, возьмите патч к tc на сайте Мартина Дэвэра.Кроме того, в tc
потребуется поддержка dsmark, механизма маркировки diffserv. К счастью, его поддержка легко включается с помощью редактирования файла2.3. Требования tcng
Компиляция tcng
— самый простая часть всего процесса. Просто распакуйте исходный код tcng и выполните:Если вы работаете с дистрибутивом, основанном на RPM, то можете использовать SPEC-файл
Для работы с tcc
вам понадобиться пакет cpp, поскольку tcc его использует в работе.3. Примеры конфигураций
Приведенные в этом документе примеры представляют переработанные конфигурации, доступные по адресу http://linux-ip.net/code/tcng/
.Примеры могут использоваться как самостоятельные конфигурационные файлы для синтаксического анализатора tcc
, или в комбинации с примером скрипта начальной загрузки для SysV. Данный скрипт начальной загрузки является модификацией скрипта, предложенного raptor'ом в списке рассылки LARTC.Если вы собираетесь пользоваться этим скриптом начальной загрузки, посмотрите на пример
# - мета-конфигурационный файл tcng
#
# -- 2003-03-15 создание; -MAB
# -- 2003-03-31 модификация для поддержки переопределения ENVAR; -MAB
#
# -- В этом каталоге будут храниться все конфигурационные файл tcng
# для данного хоста
#
TCCONFBASEDIR=${TCCONFBASEDIR:-/etc/sysconfig/tcng-configs}
# -- активная конфигурация для tcng
# обратите внимание, что благодаря поддержке конструкции #include
# модульность конфигурации tcng может быть встроена в
# конфигурационные файлы в $TCCONFBASEDIR
#
TCCONF=${TCCONF:-$TCCONFBASEDIR/global.tcc}
tcstats=${tcstats:-no} # -- подавляет вывод статистики
tcstats=${tcstats:-yes} # -- передает ключ "-s" в tc
tcdebug=${tcdebug:-0} # -- для повседневного использования
tcdebug=${tcdebug:-1} # -- для вывода дополнительной информации