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

    Добрый день, в данной статье хотел бы немного рассказать о методе построения правил 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.

    Комментарии 18

      0
      Давно уже хотел поизучать QoS на Cisco, спасибо за статью.
      У меня возник вопрос. Если сделать следующие настройки:

      class-map managers
      match access-group name manager_ip

      access-list manager_ip permit ip 192.168.0.0 0.0.0.255 any

      policy-map shaper
      class managers
      bandwidth 80000

      Канал 100Мбит. Получится для менеджеров из сети 192.168.0.0/24 максимум 80Мбит, а для остальных 100Мбит. Верно?

      Или же надо дописывать в полиси shaper еще один class:

      policy-map shaper
      class managers
      bandwidth 80000
      class all
      bandwidth 100000

      Премного благодарен.
        0
        По правилам формирования классов QoS рекомендуется всегда указывать дефолтную группу или дефолтный класс. Несмотря на то, где мы настраиваем QoS, будь то cisco или что-либо еще. Вот как рекомендует это делать Cisco, например:

        ! The following commands create class-map class1 and defines its match criteria:
        class-map class1
        match access-group 136

        ! The following commands create the policy map, which is defined to contain policy
        ! specification for class1 and the default class:
        policy-map policy1

        class class1
        bandwidth 2000
        queue-limit 40

        class class-default
        fair-queue 16
        queue-limit 20
          0
          Надеюсь у Вас хватит сил и вдохновения написать вторую часть статьи и описать более детально параметры QoS — fair-queue, queue-limit и т.д.
            +1
            Постараюсь написать, есть заготовки по данной теме, пока есть хоть один интересующийся обязательно напишу.
        +1
        теперь и QoS у Ciscо какой-то особенный или вступительное слово было «своими словами»? А то местами оно неверное и существенная часть про задержки пропущена.
          0
          Спасибо за хороший комментарий. Статья на 90% состоит из своих слов или так или иначе собственого «вольного» перевода из тематических презентаций. Вы правы в данной статье как вводное слово, я описал общие моменты QoS в Cisco. В следующих статьях постараюсь рассмотреть более тонкие моменты настроек, также постараюсь предоставить по больше реальных примеров.
            –1
            Тогда хотелось бы напомнить что QoS — это обеспечение заданных характеристик для соединения/сервиса, в которые входят полоса, задержки и ее вариативность и гарантия доставки. Истоки именно этих параметров в необходимости иметь канал для аудио/видео и их запакованных вариантов типа mpeg. И понятно что они не могут быть лучше чем интерфейс предоставляет.

            А приоритезация и управление очередями — это лишь способ параметры обеспечить при нагрузке.
            Прочее же просто суть определения соответствия между соединениями и классами обслуживания.

            И к стати, QoS на циске-то заработал? А то последний раз когда мы на настроенную сеть специалистами из Cisco подали 120% она просто упала.

              +2
              А вы знаете, что QoS используется в местах, где ширина канала используется до75 % свыше 75-и рекомендуется расширять каналы.
              p.s. так же как и QoS использовать в сетях где загрузка меньше 40 процентов, профита практически не имеется, нагрузка на обработку пакета увеличивается.
              И еще, не мало важно, на каком именно железе это все настраивалось, и какой именно вид(разновидность). И каким трафиком вы загрузили канал.

              Так что не наговаривайте на специалистов из Cisco.
                –1
                Во! Это просто классический ответ «специалистов Cisco».

                «до 75%», поскольку деградация параметров сети обычно начинается при нагрузке около 80%, то QoS в циске чисто маректинговый, а технически это банальный шейпинг.

                40% — это планка нормального функционирования сети, с учетом резервирования. Но при любом сбое мы имеем часть сети, работающей с плановой нагрузкой 80%, а это уже красная зона для циски, что ведет к резкой деградации кольца, а то и сети в целом. Получается что резервирование не работает и надо планировать нагрузку меньше — закладывать более толстые каналы, а то и переходить в более высокий класс для узлов сети.

                QoS используется, нет даже не так — должен использоваться там где есть разные классы сервисов. Если у вас только интернет и best effort, то да конечно никакой QoS не нужен, а нужны шейперы на RAN. А вот если хотите IPTV или клиенты просят проложить каналы с гарантированными параметрами, то тогда без QoS вы просто не имеете технической возможности обеспечить необходимое качество. А учитывая booking factor, то QoS — это страховка, без которой ездить уже нельзя.

                И да, прочие вендоры успешно выдерживают трафик больше 100% при правильной настройке. Просто циско уже морально устарела.
                  –1
                  «до 75%», поскольку деградация параметров сети обычно начинается при нагрузке около 80%, то QoS в циске чисто маректинговый, а технически это банальный шейпинг.

                  Эта рекомендация, про 75 %, не относится к конкретному вендору, а относится к самой технологии.

                  Что касаемо, остального, у вас просматривается не правильный дизайн сети, при чем скорее всего, у вас просто возросло количество трафика и дизайн стал менее актуальным. Особенно об этом говорит, то что у вас, как я понимаю, проблемы возникают в местах организации резервирования. А возможно изначально ошибка либо спеуиалистов cisco? либо банально, довольно часто встречается, заказчик не захотел что то переделывать, либо не дали что то сделать.

                  И да, прочие вендоры успешно выдерживают трафик больше 100% при правильной настройке

                  У меня например на оборудовании cisco,100 % появляется небольшая деградация на голосе и видео, что естественное явление… 3 класса трафика,
                  один из классов шейпится до определенной полосы.
                    –1
                    У «нас» в сети нет проблем, впрочем как и Cisco, потому что последняя не смогла показать QoS на стенде.
                    И нет деградации вообще, пока hi или даже lo вытесняет be. На то QoS и нужен. А шейперы, как раз, это обеспечить и не могут.
          0
          иногда Modular QoS CLI лучше оставить без перевода, имхо… за статью спасибо
            0
            Согласен, литература как Вы знаете совсем без перевода и только в оригинале, постепенно я постараюсь сложить из имеющегося материала еще несколько статей на данную тему, постараюсь уделить внимание наглядности и примерам. с более тонкими настройками QoS.
              0
              ммм. я имел ввиду скорее термин, а не тематику. В целом я всегда за авторское изложение материала, даже если он сто раз уже описан
                0
                На будущее учту, полностью согласен с Вами лучше некоторые термины не переводить, до сих пор не могу забыть одну книгу по Cisco, которую начал читать в универе, и тут же закончил, как встретил формулировку «Протокол связующего дерева» оказалось — это Spanning Tree Protocol.
                  0
                  да этим многие грешат… Угадаете, что такое «ГВС»?
                    0
                    Могу предположить что это Wan Interface Card, но звучит ужасно. Однозначно, лучше не переводить.
                      0
                      почти :) Глобальная вычислительная сеть. Т.е. просто WAN

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое