Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«HOWTO ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ tcng ΠΈ HTBΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 2

Автор ΠœΠ°Ρ€Ρ‚ΠΈΠ½ Π‘Ρ€Π°ΡƒΠ½

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° tcsim β€” ΠΈΠΌΠΈΡ‚Π°Ρ‚ΠΎΡ€ систСмы управлСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ tcng ΠΈ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ядра ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, согласно структурам управлСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ tcsim являСтся Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° tcng, Π² этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΎΠ½ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ рассматриваСтся.

2. ВрСбования

Π•ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ трСбования ΠΏΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ядром HTB ΠΈ DSMARK, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ HTB ΠΈ DSMARK Π² tc ΠΈ самому tcng.

Π’ частности, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 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. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π»Π΅Π³ΠΊΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСдактирования Ρ„Π°ΠΉΠ»Π° Config ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° исходников iproute2. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ строку TC_CONFIG_DIFFSERV=n Π½Π° TC_CONFIG_DIFFSERV=y ΠΈ скомпилируйтС ΠΏΠ°ΠΊΠ΅Ρ‚.

Из этого 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 < [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 ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… измСрСния.