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 

 *

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

 *

 *

 */

#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 

 *

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

 *

 *

 */


#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; } ;

  }

  }

 }

}

Загрузка...