Шрифт:
5
Этот пример показывает использование имен портов вместо их номеров. Это одно из удобств tcng, предоставляемых подключением ports.tc. Имена портов соответствуют названиям портов IANA. Узнать имена портов можно в списке зарегистрированных портов IANA или изучив файл ports.tc.
Имена и номера портов одинаково допустимы.
6
Обратите внимание на эту специфическую конструкцию, которая классифицирует все ранее не классифицированные пакеты. Все пакеты, которые не были классифицированы вышеуказанными классификаторами, помещаются в класс "$other". Конструкция if 1 может применяться для классифицирования неклассифицированного трафика.
7
Здесь создается корневая дисциплина обработки очереди устройства, в нашем случае eth0. Проконсультируйтесь со справочными материалами tcng, дополнение по параметрам дисциплин обработки очереди. Любые параметры дисциплины очереди могут быть вставлены в круглые скобки, так же как и параметры класса далее в примере. Если параметры не указаны, скобки необязательны.
8
Корневой класс в этом примере задает максимальную полосу пропускания для всего класса. Давайте предположим, что eth0 — это интерфейс, подключенный к локальной сети. Тогда скорость передачи данных в локальную сеть будет ограничена 600 килобитами.
Параметры rate и ceil должны быть знакомы всем, кто пользовался HTB. Это специфические параметры HTB и соответствующим образом обрабатываются утилитой tcc. Обратитесь к таблице аббревиатур скоростей tcng.
9
Это присвоение класса переменной. Обычно выполняется как часть алгоритма выбора пути.
10
По совету Мартина Девера, приведенном на сайте HTB, каждому классу назначается дисциплина обработки очереди SFQ, которая позволяет эффективо разделять пропускную возможность класса, между сессиями. Обратите внимание на отсутствие параметров у этой дисциплины.
Если для подклассов не указаны дисциплины обработки очереди, то они используют стандартную дисциплину pfifo_fast qdisc. Включение стохастической дисциплины (sfq) для подклассов позволяет избежать превалирования одного соединения над остальными внутри класса.
3.2. Использование двухскоростного трехцветного измерителя
11
В этой строке выполняется объявление измерителя (meter) для классификации трафика. Обратитесь к руководству по tcng, раздел измерителей за списком и примерами различных измерителей.
Приведенный в этом примере измеритель является двухскоростным трехцветным измерителем, самым сложным измерителем, доступным в языке tcng. Этот измеритель возвращает цвет — зеленый, желтый и красный, в зависимости от скорости. Если измеренная скорость превышает гарантированную, измеритель возвращает желтый цвет, а если превышает пиковую скорость — возвращается красный цвет.
С переменной $meter могут оперировать функции, работающие с типом измерителя. В нашем случае используются три функции, позволяющие проверить состояние $meter: trTCM_green, trTCM_yellow и trTCM_red. Для эффективности, обратите внимание на ускоренные аналоги.
12
В нашем примере к трафику хоста 192.168.137.50 специально не применяются правила ограничения применяемые ко всему остальному трафику на интерфейсе eth0.
13
До гарантированной скорости (cir), пакеты будут проходить через этот класс. Токены будут использоваться из буфера cir/cbs.
Измеритель зеленый.
14
Трафик, превышающий возможности буфера cir/cbs будет направляться в буфер pir/pbs (pir — это пиковая скорость [peak information rate], pbs — это размер пикового буфера). Это позволяет гарантировать отдельному потоку полосу пропускания до определенной скорости,а при превышении ее происходит переклассификация.
Измеритель желтый.
15
Трафик, превышающий возможности буфера pir/pbs классифицируется в этой строке. Обычные конфигурации начинают терять пакеты, превышающие пиковую скорость, но можно настроить и переклассификацию трафика из класса гарантированной пропускной способности в класс максимальной пропускной способности.
Измеритель красный.
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 о единицах измерения.