class-map

Команда 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