QoS — это способность сети, обеспечивать улучшенное обслуживание сетевого трафика независимо от выбранных технологий, включая Frame Relay, ATM, Ethernet или IP сеть с маршрутизацией.
Основная функция QoS — это предоставление усовершенствованного и более предсказуемого поведения сетевых служб, при помощи таких механизмов как:
- Выделенная полоса пропускания
- Улучшенная характеристика потерь
- Предотвращение и управление перегрузками
- Деление трафика
- Приоритезация трафика
MQC разделяет задачи связанные с QoS на следующие модули:
- Определение потока трафика
- Классификация его на принадлежность к класcу QoS
- Применение политик QoS для данного класса
- Определение интерфейсов на которых политика должна быть приведена в исполнение.
Ниже указанна схема примерного взаимодействия данного алгоритма.

Постараюсь подробнее рассмотреть команды относящиеся к данному режиму конфигурации.
Switch(config)# class-map cisco
Switch(config-cmap)#Команда class-map используется для того, чтобы описать класс трафика
- Назначение класса трафика — классифицировать или идентифицировать трафик который будет передан конкретному QoS.
- Трафик который соответствует определенным критериям.
- Имя (name)
- Набор команд match
- Если существует больше одной команды match, класс должен содержать инструкции по вычислению
Ниже приведу пример, весь трафик который разрешен, через ACL test будет частью класса известного как cisco.
Switch(config)# class-map cisco
Switch(config-cmap)# match access-group name testКоманда match используется для определения различных критериев классификации пакетов.
Если пакет совпадает с указанными критериями:
- Пакет начинает относиться к данному классу
- Пакет пересылается следуя спецификациям QoS указанных в политике трафика.
Пакеты которые не совпали в указанными критериями:
- Классифицируются как класс по умолчанию.
- Распределяются по другим политикам трафика.
— class-map match-any или
— class-map match-all
Если используется match-any, то трафик будет будет двигаться исходя из правила, «должен соответствовать одному из указанных критериев»
Если используется match-all, то трафик будет двигаться исходя из правила, «должен соответствовать всем указанным критериям»
В качестве примера рассмотрим набор команд:
Switch(config)# class-map match-any cisco
Switch(config-cmap)# match access-group name test
Switch(config-cmap)# match interface fastethernet 0/1Если трафик совпадает с утверждением «разрешено» в ACL test или трафик создается интерфейсом Fa0/1, он будет признан частью трафика известного как cisco.
Команда policy-map используется для создания политики трафика
— Назначение политики трафика — это конфигурирование функций QoS, которые должны быть связаны с трафиком который был классифицирован как трафик описанный пользователем.
Политика трафика состоит также из трех элементов:
- Имя политики (Policy name)
- Класс трафика (обозначается командой class)
- политики QoS которые будут применены к каждому классу.
Switch(config)# policy-map policy1
Switch(config-pmap)# class cisco
Switch(config-pmap-c)# bandwidth 3000
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# bandwidth 2000
Данный policy-map создает политику трафика называющуюся policy1
- Политика применяется ко всему трафику классифицируемому заранее описанным классом трафика «cisco». Указывает, что трафику в данном примере следует выделить полосу пропускания 3000 kbps.
- Весь трафик который не принадлежит данному классу «cisco» формирует часть класса class-default. Ему будет предоставлена полоса пропускания 2000 kbps.
Switch(config)# interface fastethernet 0/1
Switch(config-if)# service-policy output policy1Команда service policy используется для присоединения политики трафика, указанную командой policy-map, на интерфейс.
— Может быть применен как для входящих так и для исходящих пакетов на указанном интерфейсе, поэтому в данной команде необходимо указывать направление трафика.
Пример:
Switch(config)#interface fastethernet 0/1
Switch(config-if)#service-policy output policy1
Switch(config-if)#exitВсе пакеты покидающие указанные интерфейс должны быть совместимы с критериями указанными в политике трафика названной policy1.
Теперь попробуем объединить все что у нас получилось в единую конфигурацию, с небольшими разъяснениями:
1. Добавляем политику трафика к интерфейсу.
Switch(config)#interface fastethernet 0/1
Switch(config-if)#service-policy output policy1
2. Идентифицируем функцию QoS данной политики, используя классы.Switch(config)#policy-map policy1
Switch(config-pmap)#class cisco
Switch(config-pmap-c)#bandwidth 3000
Switch(config-pmap)#class class-default
Switch(config-pmap-c)#bandwidth 20003. Классификация потока трафика, как принадлежащего к указанному классу QoS.
Switch(config)# class-map match-any cisco
Switch(config-cmap)# match access-group name test
Switch(config-cmap)# match interface fastethernet 0/1Примерно так и функционирует модель QoS основанная на Cisco IOS, надеюсь я хоть немного смог раскрыть алгоритм данного функционала. Конечно данная статья является только лишь верхушкой айсберга под названием QoS, но надеюсь, что она поможет приобрести небольшую базу в построении политик QoS на устройствах Cisco.

