HOWTO по управлению трафиком с помощью tcng и HTB - [3]

Шрифт
Интервал

перед компиляцией.

Если вы работаете с дистрибутивом, основанном на 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 <[email protected]>

> *

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

> *

> *

> */

>#include "fields.tc"[1]

>#include "ports.tc"


>#define INTERFACE eth0[2]


>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> ) \

>   if tcp_sport == PORT_SSH || tcp_dport == PORT_HTTP ;[5]


>  class ( <$other> ) if 1 ;[6]


>  /* секция, в которой мы конфигурируем дисциплины обработки очередей и классы */

>  htb () {[7]


>   class ( rate 600kbps, ceil 600kbps ) {[8]

>    $ssh = class ( rate 64kbps, ceil 128kbps ) { sfq; } ;


>    [9]$audio = class ( rate 128kbps, ceil 128kbps ) { sfq; } ;

>    $bulk = class ( rate 256kbps, ceil 512kbps ) { sfq; } ;

>    $other = class ( rate 128kbps, ceil 384kbps ) { sfq; } ;[10]

>   }

>  }

> }

>}

3.2. Использование двухскоростного трехцветного измерителя

Пример 3. /etc/sysconfig/tcng/two-rate-three-color-meter.tcc

>/*

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

> *

> * Martin A. Brown <[email protected]>

> *

> * Пример: Использование измерителя.

> *

> *

> */


>#define EXCEPTION 192.168.137.50

>#define INTERFACE eth0


>$meter = trTCM( cir 128kbps, cbs 10kB, pir 256kbps, pbs 10kB );[11]


>dev eth0 {

> egress {


>  class ( <$full> ) if ip_src == EXCEPTION ;[12]


>  class ( <$fast> ) if trTCM_green( $meter ) ;[13]


>  class ( <$slow> ) if trTCM_yellow( $meter ) ;[14]


>  drop if trTCM_red( $meter ) ;[15]

>  htb {

>   class ( rate 600kbps, ceil 600kbps ) {

>    $fast = class ( rate 256kbps, ceil 256kbps ) { sfq; } ;

>    $slow = class ( rate 128kbps, ceil 128kbps ) { sfq; } ;

>    $full = class ( rate 600kbps, ceil 600kbps ) { sfq; } ;

>   }

>  }

> }

>}

4. Разнообразные замечания

К счастью, tcng положил конец маленькому неудобству в использовании tc. Ниже приводится таблица соответствия между сокращениями этих утилит с русским языком.


Таблица 1. Синтакс описания скорости: tcng против tc

tcngРусскийtc
bpsбит в секундуbit
Bpsбайт в секундуbps (ух!)
kbpsкилобит в секундуkbit
kBpsкилобайт в секундуkbps
Mbpsмегабит в секунду mbit или Mbit
MBpsмегабайт в секундуmbps или Mbps
ppsпакетов в секунду??

Обратите внимание, что это потребует небольшого привыкания для давних пользователей tc, но эти сокращения намного более понятны для тех, кто владеет английским языком.

Например, мы можем использовать традиционные обозначения скорости в конфигурации tcng: 100Mbps, 128kbps и даже 2Gpps. Посмотрите раздел руководства по tcng о единицах измерения.

Для эффективного управления трафиком важно понимать, где находятся узкие места сети. В большинстве случаев, управление трафиком вам придется выполнять именно в узком месте или рядом с ним.


Рекомендуем почитать
Яйцо кукушки или Преследуя шпиона в компьютерном лабиринте

В отличие от плохого танцора, хорошему сисадмину мешают только кукушкины яйца. Их откладывают в его компьютер злобные хакеры, чтобы из них вылупились программы, делающие своего папу-кукушку суперпользователем. Но сколько кабелю не виться — а кончику быть: бравый сисадмин не дремлет и за годик-другой выводит злоумышленников на чистую воду: на этот раз хакерская тусовка круто пролетела. Такого предельно краткое содержание классической книги эксперта по компьютерной безопасности Клиффа Столла «Яйцо кукушки».


Разработка приложений в среде Linux

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет собой отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из других операционных систем. Подробно рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование свободно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек.



Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003

Книга предназначена для читателей, хорошо знакомых с компьютерными системами и индустрией информационных технологий и желающих расширить познания в области систем хранения данных и архитектуры Windows NT, непосредственно связанной с подобными системами. В книге описываются корпоративные системы хранения данных, в то время как системам потребительского уровня уделяется меньше внимания. В этом издании сделана попытка поддержать интересы специалистов по программному обеспечению, мало знакомых с технологиями хранения данных, и профессионалов в области систем хранения данных, которые стремятся получить дополнительные знания по архитектуре обработки и хранения данных в Windows NT.


Перспективы свободного программного обеспечения в сфере государственного управления и бюджетном секторе

n1`Глава 2 из отчета Фонда Новая экономика Министерству экономического развития и торговли по теме «Анализ результатов и разработка предложений по созданию механизмов поддержки (в том числе за счет средств федерального бюджета) проектов по использованию ИКТ в экономике, социальной сфере, государственном управлении на региональном и муниципальном уровнях власти». Работа выполнена в рамках ФЦП «Электронная Россия». Дается очерк перспектив модели коммерческого программного обеспечения, известной как свободное программное обеспечение (СПО), в части удовлетворения потребности государственных органов и организаций в компьютерных программах, в сравнении с альтернативной (несвободной) моделью.


64 килобайта о Фидо

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.