Команда class-map используется для задания класса трафика и критериев этого класса, на основе которых сетевой трафик будет группироваться в классы (классифицироваться).
Синтаксис class-map [match-all|match-any] class-map-name
no class-map [match-all|match-any] class-map-name
class-map-name имя класса трафика
match-all указывает, что классу будут принадлежать пакеты, удовлетворяющие всем критериям, заданным в режиме настройки класса (config-cmap).
match-any указывает, что классу будут принадлежать пакеты, удовлетворяющие хотя бы одному критерию, заданному в режиме настройки класса (config-cmap).
Значение по умолчанию match-all
Режимы команды Global configuration.
Рекомендации по использованию
Описанные ниже команды позволяют задать определенный сервис обслуживания сетевого трафика. Они классифицируют пакеты (относят пакеты к определенному классу трафика) и маркируют их (назначают соответствующий приоритет). Формирование трафика выполняется в три шага:
· пакеты распределяются по классам (команды class-map);
· задаются правила для каждого класса (команды policy-map);
· заданная политика привязывается к интерфейсу (команды service-policy).
Используемая здесь технология QoS – Дифференцированное обслуживание (DiffServ) – основана на классификации трафика и его маркировке.
С помощью команды class-map можно задать несколько классов обслуживания и критерии этих классов.
Например, когда трафик из подсети поступает на внутренний интерфейс шлюза, то сначала он разбивается на множество классов обслуживания на основе полей (IP-адрес, порт, поле ToS) заголовка пакета сетевого и транспортного уровней, заданных командой class-map. Затем на этом же интерфейсе производится маркировка пакетов – изменяется поле ToS - переносится значение Precedence (приоритет) или значение DSCP, установленные командами set precedence или set dscp в режиме настройки команды policy-map, в поле ToS. Маркировка производится в соответствии с тем классом обслуживания, к которому принадлежит пакет. В названии команды policy-map слово «политика» имеет тот смысл, что установленные значения Precedence и DSCP определяют набор процедур, которые будут обеспечивать заданный класс обслуживания.
Для данного примера заданный класс обслуживания трафика нужно обеспечивать на внешнем интерфейсе шлюза безопасности с помощью утилиты drv_mgr, которая позволяет управлять загрузкой процессора обработкой трафика – включать/выключать механизм уничтожения неприоритетных пакетов (по полю ToS), управлять стратегией очередей, включать/выключать механизм защиты от перегрузки и др.
Существует возможность задания независимых команд классификации и маркирования для входящего и исходящего трафика на каждом интерфейсе.
При IPsec обработке исходящего пакета классификация и маркирование пакета будет производиться до его инкапсуляции, для входящего пакета – после его декапсуляции.
При IPsec обработке пакетов будет происходить копирование поля ToS из внутреннего во внешний заголовок.
Критерии, по которым трафик будет ассоциироваться с определенным классом, задаются в режиме настройки класса следующими командами:
· match access-group – означает, что классу принадлежат пакеты, которые попадают под действие указанного списка доступа (access-list);
· match any – означает, что все пакеты принадлежат этому классу;
· match dscp – означает, что классу принадлежат пакеты, у которых значение DSCP равно одному из указанных;
· match precedence – означает, что классу принадлежат пакеты, у которых значение Precedence равно одному из указанных.
Для одного класса можно задать любое количество критериев выбора трафика.
При повторном задании критериев для данного класса ключевое слово match-all или match-any можно не указывать, сохранится прежний тип класса. Если же указать другой тип (например, match-all вместо match-any), то тип класса изменится.
Удаление класса производится командой:
no class-map [match-all|match any] class-map-name
Если данный класс используется в команде policy-map, то класс не удаляется, а выводится сообщение об ошибке:
"% Class-map <class-map-name> is being used"
Пример
Router(config)# class-map match-any class1
Router(config-cmap)# match access-group 101
Router(config-cmap)# match dscp af41 af31 af21
Router(config-cmap)#exit