Как уже говорилось в разделе Классовые дисциплины обработки очередей, для того, чтобы определить в какую из подочередей направить пакет, используются фильтры-классификаторы.
Ниже приводится неполный список доступных классификаторов:
fw
Решение принимается на основе маркера пакета, установленного брандмауэром (например — iptables). Наиболее простой классификатор, который можно рекомендовать в том случае, если вам не хочется изучать синтаксис tc. За дополнительной информацией обращайтесь к главе 9.
u32
Решение принимается на основе значений полей в заголовке пакета (например, исходящий IP-адрес и т.п.).
route
Решение принимается на основе маршрута, по которому движется пакет.
rsvp, rsvp6
Маршрутизация пакетов производится на базе RSVP. Применимо только в том случае, если управление сетью полностью находится в ваших руках. В Интернет RSVP не поддерживается.
tcindex
Используется в DSMARK qdisc, см. соответствующий раздел.
Вообще есть множество способов классификации пакетов, но практически все они находятся в прямой зависимости от предпочитаемой вами системы.
Классификаторы, как правило, принимают некоторое количество аргументов. Перечислим их здесь, для удобства.
protocol
Протокол, принимаемый классификатором. Как правило вы будете принимать только IP-трафик.
parent
Существующий класс, к которому должен быть присоединен данный классификатор.
prio
Приоритет классификатора. Чем меньше число — тем выше приоритет.
handle
Назначение и смысл аргумента зависит от контекста использования.
Во всех следующих разделах мы будем исходить из условия, что формируется трафик, идущий к хосту HostA, что корневой класс сконфигурирован как 1:, а класс, которому посылается выбранный трафик – как 1:1.
Фильтр U32 наиболее гибкий из доступных в текущей конфигурации. Он целиком основан на хеш-таблицах, которые повышают устойчивость фильтра при значительном количестве правил фильтрации.
В простейшем виде, фильтр U32 — это набор записей, каждая из которых состоит из двух полей: селектора и действия. Селекторы, описанные ниже, проверяют обрабатываемый IP-пакет до тех пор, пока не будет встречено первое совпадение, после чего выполняется соответствующее селектору действие. Самый простой тип действия — перенаправление пакета в определенный класс.
Для конфигурирования фильтра используется команда