Вход/Регистрация
HOWTO по управлению трафиком с помощью tcng и HTB
вернуться

Браун Мартин А.

Шрифт:

Из этого SRPM можно собрать пакет iproute2 с поддержкой dsmark и htb, которые требуются для примеров этого документа.

2.3. Требования tcng

Компиляция tcng — самый простая часть всего процесса. Просто распакуйте исходный код tcng и выполните: ./configure --no-tcsim перед компиляцией.

Если вы работаете с дистрибутивом, основанном на RPM, то можете использовать SPEC-файл tcng/build/tcng.spec для сборки пакета. Можно взять готовый SRPM здесь. Результатом сборки этого SRPM станут два пакета: tcc и tcc-devel. Для создания конфигураций вам понадобится только tcc.

Для работы с tcc вам понадобиться пакет cpp, поскольку tcc его использует в работе.

3. Примеры конфигураций

Приведенные в этом документе примеры представляют переработанные конфигурации, доступные по адресу http://linux-ip.net/code/tcng/.

Примеры могут использоваться как самостоятельные конфигурационные файлы для синтаксического анализатора tcc, или в комбинации с примером скрипта начальной загрузки для SysV. Данный скрипт начальной загрузки является модификацией скрипта, предложенного raptor'ом в списке рассылки LARTC.

Если вы собираетесь пользоваться этим скриптом начальной загрузки, посмотрите на пример файла /etc/sysconfig/tcng:

Пример 1. /etc/sysconfig/tcng

# - мета-конфигурационный файл 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} # -- для вывода дополнительной информации

tcdebug=${tcdebug:-2} # -- для вывода отладочной информации

#

#

# -- в качестве дополнительной меры, вы можете переопределить местоположение утилит

# tc и tcc, например:

#

# tc=/usr/local/bin/tc

# tcc=/usr/local/tcng/bin/tcc

#

#

3.1. Использование tcng для ограничения входящего потока

Пример 2. /etc/sysconfig/tcng/class-selection-path.tcc

/*

 * Простой пример с комментариями файла управления трафиком для tcng.

 *

 * Martin A. Brown <mabrown@securepipe.com>

 *

 * Пример: Использование алгоритма выбора класса.

 *

 *

 */

#include "fields.tc" [1]

#include "ports.tc"

#define INTERFACE eth0 [2]

1

Язык tcng обеспечивает поддержку c-подобных директив include, которые позволяют присоединить любой файл. Файлы присоединяются относительно текущего каталога или библиотеки tcng (обычно /usr/lib/tcng/include). Строго говоря, указывать директивы #includeports.tc и #includefields.tc необязательно, поскольку tcc их присоединяет по умолчанию.

Использование директив #include увеличивает гибкость определения переменных и подключения общих элементов управления трафиком.

За дальнейшей информацией обращайтесь к руководству tcng, раздел подключений. 

2

Поддерживаются директивы CPP. Директива #define может использоваться для создания макросов или констант. За подробной информацией обращайтесь к руководству tcng, раздел переменных. 

dev INTERFACE {

 egress { [3]

/* при использовании алгоритма выбора класса, вначале указываются фильтры! DSmark */ [4]

class ( <$ssh> ) if tcp_sport == 22 && ip_tos_delay == 1 ;

class ( <$audio> ) if tcp_sport == 554 || tcp_dport == 7070 ;

class ( <$bulk> ) \

3

Ключ egress является синонимом dsmark. Приведенный пример использует class selection path. Для использования в конфигурации ключа egress необходима поддержка dsmark в ядре и tc. 

4

Алгоритм выбора класса (class selection path) — это один из подходов к ограничению трафика. При использовании алгоритма выбора класса, пакет маркируется (DiffServ mark) при поступлении в маршрутизатор. На основе этой маркировки маршрутизатор позднее может выполнять различные действия по ограничению, упорядочиванию и классифицированию трафика.

За подробностями обращайтесь к разделу описания алгоритма выбора класса руководства по tcng. 

  • Читать дальше
  • 1
  • 2
  • 3
  • 4
  • 5

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: