Pull to refresh

Модульная командная строка QoS в Cisco

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

Ниже указанна схема примерного взаимодействия данного алгоритма.

image

Постараюсь подробнее рассмотреть команды относящиеся к данному режиму конфигурации.
Switch(config)# class-map cisco
Switch(config-cmap)#

Команда class-map используется для того, чтобы описать класс трафика
  • Назначение класса трафика — классифицировать или идентифицировать трафик который будет передан конкретному QoS.
  • Трафик который соответствует определенным критериям.
Класс трафика состоит из 3 основных элементов:
  • Имя (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 2000

3. Классификация потока трафика, как принадлежащего к указанному классу 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.
Tags:
Hubs:
Total votes 6: ↑6 and ↓0+6
Comments18

Articles