Linux Advanced Routing & Traffic Control HOWTO (Hubert, Graf) - страница 48

У вас может возникнуть резонный вопрос: "Что будет с трафиком, который не подпадает под условия установленных фильтров?". В этом случае трафик останется неклассифицированым и будет обработан корневой дисциплиной 1:0, т.е. пройдет без ограничений.

Если сумма SMTP+web трафиков превысят сконфигурированные 6 мегабит, то вся полоса пропускания будет разделена между классами, в соответствии с их весами. Таким образом WEB-сервер получит 5/8 ширины канала, а SMTP-сервер — 3/8.

В соответствии с данной конфигурацией можно утверждать, что WEB-сервер всегда будет иметь полосу, как минимум 5/8*6=3.75 мегабита.

9.5.4.5. Прочие параметры настройки CBQ: split и defmap.

Как уже говорилось выше, для классификации трафика, полноклассовые дисциплины используют фильтры.

Но кроме фильтров, CBQ может предложить вам параметры split и defmap. Хотя назначение этих параметров достаточно сложно понять, и к тому же они не являются жизненно необходимыми, тем не менее я постараюсь описать их.

Так как наиболее часто классификация трафика производится только на основе поля TOS, в заголовке пакета, то предусматривается специальный синтаксис команд. Каждый раз, когда CBQ сталкивается с необходимостью определения — в какую из очередей поставить пакет, она проверяет — является ли этот узел "узлом разбиения" и если это так, то выбирается подочередь с заданным приоритетом, который может быть рассчитан исходя из значения поля TOS.

Значение приоритета пакета складывается по "И" с параметром defmap и проверяется — есть ли совпадение. Проще говоря — это самый простой способ создания высокоскоростных фильтров, которые работают с незначительным числом приоритетов. С параметром defmap, равным 0xFF будет совпадать любой пакет, 0x00 — ни один. Возможно пример настройки поможет вам полнее понять вышесказанное:

># tc qdisc add dev eth1 root handle 1: cbq bandwidth 10Mbit allot 1514 \

> cell 8 avpkt 1000 mpu 64

># tc class add dev eth1 parent 1:0 classid 1:1 cbq bandwidth 10Mbit \

> rate 10Mbit allot 1514 cell 8 weight 1Mbit prio 8 maxburst 20 \

> avpkt 1000

Самое обычное начало для CBQ. Значения для параметра defmap можно определить из следующей таблицы:

TC_PRIO.. Число Значение поля TOS
BESTEFFORT 0 Maximize Reliablity (0x04) (Максимальная надежность)
FILLER 1 Minimize Cost (0x02) (Минимальная стоимость)
BULK 2 Maximize Throughput (0x08) (Максимальная пропускная способность)
INTERACTIVE_BULK4
INTERACTIVE6Minimize Delay (0x10) (Минимальная задержка)
CONTROL7

Уровень приоритета TC_PRIO.. рассчитывается исходя из значения поля TOS (за дополнительной информацией о значениях приоритета пакета, обращайтесь к разделу pfifo_fast).