qos cos что такое
Классификация пакетов на уровне доступа
Попробую продолжить начатую мной тему методологии и алгоритма функционирования QoS в Cisco. В этой статье будет описано по каким принципам можно разделить и маркировать трафик на 2-3 уровнях модели OSI на пошаговых примерах. Кому интересен данный вопрос прошу под кат.
В предыдущей статье я описывал Modular QoS CLI и приводил в пример блок-схему функционирования алгоритма QoS Cisco, в конце статьи мы будем возвращаться в данной блок схеме. Для того, чтобы быть эффективным QoS должен быть внедрен на всей сети. Лучше всего классифицировать трафик по принципу «чем скорее, тем лучше», т.е. в нашем случае на уровне доступа. Фреймы и пакеты следует маркировать используя следующие принципы:
— Уровень 2 (CoS)
— Уровень 3 (IP Precedence/Differentiated Services Code Point)
CoS — выставляет приоритеты от 0 до 7. Если граничное устройство (IP телефон или приложение) умеет выставлять биты, то планировщик сети должен решить «доверять» данному устройству или нет.
Действие свитча по умолчанию:
Не доверять граничному устройству, на всех фреймах попавших на свич, будут сброшены приоритеты на 0.
Если граничному устройство разрешается доверять, то свитч необходимо «предупредить» о неприкосновенности данного бита.
В зависимости от модели свитча, сначала может понадобиться включить QoS — это делается командой mls qos. Дальше на интерфейсе указывается доверительное отношение к CoS, и политика применяемая к пакету, если тот пришел без соответствующего бита. В итоге получаем:
switch(config)# mls qos
switch(config-if)# mls qos trust cos
switch(config-if)# mls qos cos default-cos
Также если мы хотим чтобы свитч игнорировал присутствующий бит CoS в пакете — необходимо воспользоваться следующим сочетанием команд, в результате будет использован QoS по умолчанию:
switch(config)# mls qos
switch(config-if)# mls qos cos override
switch(config-if)# mls qos cos default-cos
Не всегда возможно распознать значение CoS пакета, так как не всегда устройства включены напрямую в свитч уровня доступа, часто случается, что клиент бывает воткнут в простейший неуправляемый свитч, которому не известно понятие приоритетов, к сожалению мы не сможем воспользоваться IP ACL, т.к. мы не уверены в постоянстве IP адреса клиента, здесь нам придется использовать MAC ACL, примерно это будет выглядеть вот так.
Определяем поток трафика, class-map используется для определения потока трафика как класса сервиса, в данном случае класс сервиса мы назвали ipphone:
switch(config)# class-map match-all ipphone
switch(config-cmap)# match access-group name officephone
Создаем критерии условия:
switch(config)# mac access-list extended officephone
switch(config-ext-macl)# permit host 000.0a00.0111 any
Проверить созданное мы сможем при помощи команды: show class-map
Продолжаем конфигурировать наше правило, следующим шагом мы определяем функции QoS в политике, назначая значение DSCP для существующего класса:
switch(config)# policy-map inbound-accesslayer
switch(config-pmap)# class ipphone
switch(config-pmap-c)# set ip dscp 40
Проверить результаты мы можем командой: show policy-map
Ниже я хочу привести сводную таблицу сопоставления значений нашего «волшебного поля» для разного типа определителей.
На данном этапе остается последнее действие применение политики на интерфейс в нашем случае мы применим эту политику на все порты нашего свитча одновременно:
switch(config)# interface range fa 0/1-24
switch(config-if-range)# service-policy input inbound-accesslayer
И как обычно проверяем наш результат, к примеру на первом порту: show mls qos interface fa 0/1
Как всегда обобщаем наши действия в конце, если Вы обращали внимание на предыдущую мою статью, то не могли забыть о блок-схеме связей в политиках QoS, можно проследить указанные ниже команды по данной блок-схеме.
switch(config)# interface range fa 0/1-24
switch(config-if-range)# service-policy input inbound-accesslayer
switch(config)# policy-map inbound-accesslayer
switch(config-pmap)# class ipphone
switch(config-pmap-c)# set ip dscp 40
switch(config)# class-map match-all ipphone
switch(config-cmap)# match access-group name officephone
switch(config)# mac access-list extended officephone
switch(config-ext-macl)# permit host 000.0a00.0111 any
Теперь рассмотрим несколько другой вариант применения такого рода классификаторов для пакетов. Данный вид основывается на определении протокола на третьем уровне, но не без помощи того же ACL.
Рассмотрим пример предотвращения загрузки канала трафиком FTP, в Вашем случае — это может быть что угодно, хоть диапазон портов. Мы будем маркировать пакеты нулевым значением, что превратит эти пакеты, в пакеты с наименьшим приоритетом, и по технологии IP precedence и по DSCP.
В данном случае это будет выглядеть примерно так;
Утверждаем заранее запланированную политику трафика на группу интерфейсов:
switch(config)#interface range fa 0/1-24
switch (config-if-range)# service-policy input inbound-accesslayer
Определяем функции QoS в политике, в данном случае она будет заключаться в добавлении значения 0 в ячейку dscp, ip пакета.
switch(config)#policy-map inbound-accesslayer
switch(config-pmap)# class reduceservice
switch(config-pmap-c)#set ip dscp 0
Определяем поток трафика:
switch(config)#class-map reduceservice
switch(config-cmap)# match acces-group 100
И последнее условие, необходимое для исполнение всего вышеописанного:
switch(config)#ip access-list extended 100
switch(config-ext-nacl)# permit tcp any any eq ftp
В завершении статьи хочу еще раз напомнить о блок схеме, которая была показана в предыдущей статье, если Вы пишите политики QoS, то держите ее перед глазами, она поможет Вам очень легко с ориентироваться и никогда не запутаться в момент составления правил.
Спасибо за внимание.
P.S. По совету IlyaPodkopaev добавляю немного информации о понятиях trust и dscp-mutation
qos trust — В контексте настройки интерфейса эта команда используется для включения доверенного состояния каждого порта.
qos dscp-mutation — Применяет карту изменений DSCP для доверенного порта DSCP системы (всегда перезаписывает DSCP для этого порта).
Чаще всего последняя команда используется если два домена имеют разные значения dscp, но нам необходим какой-то механизм для преобразования одного DSCP в другой. Мы ниже указанными командами задаем так называемые мутации:
mls qos map dscp-mutation mutation1 1 2 3 4 5 6 7 to 0
mls qos map dscp-mutation mutation1 8 9 10 11 12 13 to 10
mls qos map dscp-mutation mutation1 20 21 22 to 20
mls qos map dscp-mutation mutation1 30 31 32 33 34 to 30
Следом должны применить данную «мутацию» на интерфейс. Ну и как всегда после проделанной работы проверим командой: show mls qos maps dscp-mutation.
Qos cos что такое
Когда используют терминологию ToS, то в контексте приоретизации имеют в виду 3 старшие бита P2..P0, кодирующие уровень приоритета от 0 (минимальный приоритет) до 7 (максимальный приоритет). Для IP-телефонии применяется уровень приоритета 5 (critical, ToS-байт равен 0xA0 или 10100000b), а для обычного трафика уровень 0 (routine, ToS-байт равен 0x00 или 00000000b). У Cisco есть для каждого уровня приоритета специальное имя (precedence critical, precedence flash и т. д., см. таблицу).
IP Precedence Value
Уровень | Имя |
0 | routine |
1 | priority |
2 | immediate |
3 | flash |
4 | flash-override |
5 | critical |
6 | internet |
7 | network |
Эти коды используются также при назначении трафику маркировки, при конфигурировании policy-map:
!создается карта политики Police-GE0/1
policy-map Police-GE0/1
class Voice-GE0/1
priority 5000
set dscp ef
class Route-GE0/1
set dscp cs6
priority 1000
class Signal-GE0/1
set dscp cs3
priority 4500
class class-default
fair-queue
Когда используется термин CoS, то обычно имеется в виду перенос информации о приоритете на втором сетевом уровне L2 (MAC-адреса). При этом для кодирования приоритета используются 3 бита (получаются уровни от 0 до 7). Расположение этих бит в потоке данных зависит типа магистрального канала L2.
Qos cos что такое
Попробуем разобраться, что такое QoS (Quality of Service), какие стандарты и определения к ней относятся. Поговорим о Best Effort Service, IntServ, DiffServ, PHB, ToS, CoS, IP Precedence (IPP), DSCP, AF, EF, Default PHB.
Давайте первым делом определимся, что же такое Quality of Service. Существует множество определений QoS, мне больше всего нравится вот это:
Под QoS (Quality of Service) следует понимать способность сети (сетевой инфраструктуры) обеспечить необходимый (требуемый) уровень сервиса заданному сетевуму трафику при использование различных технологий.
Под сервисом понимается множество параметров при передачи данных. Рассмотрим основные из них:
Сервисные модели Quality of Service.
Существуют 3 различные сервисные моделей QoS.
1. Best Effort Service. Негарантированная доставка.
По сути, в этой модели отсутствуют какие-либо механизмы QoS. Используются все доступные ресурсы сети. Отсуствуют механизмы управления трафиком. Для улучшения QoS используется расширение полосы пропускания в узких местах, однако это не всегда даёт нужный эффект т.к. существуют типы трафика, чувствительные к задержкам и джиттеру (например VoIP).
2. Integrated Service (IntServ). Интегрированное обслуживание.
Обеспечивает сквозное (End-to-End) качество обслуживания, т.е. происходит резервирование ресурсов на всем пути прохождения трафиика. Для резирвирования ресурсов (Resource reservation) используется протокол RSVP, гарантируя необходимую пропускную способность. Существенным недостатком является постоянное резервирование ресурса, даже в том случае, если он не используется или используется не полностью.
3. Differentiated Service (DiffServ). Дифференцированное обслуживание.
Для обеспечения QoS используется ряд специальных компонентов, таких как классификаторы и формирователи трафика на границе сети, также применяются функции распределения ресурсов в ядре сети.
DiffServ выпоняет две функции:
QoS Классификация и маркировка пакетов.
Начнем с определений:
Следует отметить, что классификация и маркировка пакетов отличаются в зависимости от уровня OSI, на котором работает устройство. Как правило, все коммутаторы работают на уровне L2, а именно с Ethernet кадрами. Маршутизаторы работают на уровне L3 и уже не с кадрами, а пакетами.
Классификация и маркировка пакетов на уровне L2
В протоколе Ethernet отсуствует возможность классификации и маркировки пакетов. Классификация возможна лишь по номеру входящего порта (что в большинстве случаев не представляет никакого интереса), а маркировка вообще невозможна.
Однако не все так плохо. Появился стандарт IEEE 802.1Q, описывающий технологию виртуальных локальных сетей VLAN, вместе с которым был разработан стандарт 802.1P для обеспечения QoS в сетях Ethernet (классификации и маркировки Ethernet кадров).
В стандарте 802.1P предусмотрено поле User Priority или второе более позднее название CoS (Class of Service), состоящее из 3-х бит в заголовке 802.1Q, т.е. CoS может принимать значения от 0 до 7.
Формат Ethernet кадра 802.1Q.
Ниже в таблицы собраны рекомендации по классификации и маркировке траффика согласно стандарту IEEE 802.1P.
Классы трафика согласно стандарту IEEE 802.1P.
Классификация и маркировка пакетов на уровне L3
На L3 мы имеем дело с протоколом IP (Internet Protocol). При разработке протокола IP для целей QoS было специально предусмотрено поле ToS (Type of Service) размером один байт.
Поле ToS может быть заполнен классификатором IP Precedence или DSCP в зависимости от задачи.
IP precedence (IPP) имеет размерность 3 бита, может принимать значения 0-7, т.е. можно говорить о 8-ми классах обслуживания. Изначально использовался классификатор IPP, но со временем появилась необходимость разделять трафиик на большее чем 8 классов обслуживания, следствием чего явилась разработка классификатора DSCP.
DSCP состоит из 6 бит (значения 0-63). Использование дополнительных 3-х бит позволяют ввести большее количество классов. DSCP обратно совместим с IPP. Важно понимать, что оборудование должно поддерживать обработку поля ToS заполненого классификатором DSCP, на старом оборудование с этим могут возникнуть проблемы.
Сравнение IPP и DSCP.
Per-Hop Behaviors (PHB)
Разберем более подробно понятие PHB.
Существуют 4 стандартизованных PHB.
1.Default PHB
Применяется для передачи Best-Efforts (негарантированая доставка) трафика, т.е. нет никакой маркировки, а точнее биты DSCP с 5 по 7 равны 000. Используется для совместимости с сетевыми устройствами, не поддерживающими маркировку или если она не используется.
Распределение бит DSCP в Default PHB.
2.Expedited Forwarding PHB (EF)
Используется для передачи трафика, чувствительного к задержкам. Биты DSCP с 5 по 7 равны 101. Пакеты, помеченные как EF, передаются с наименьшей задержкой в очереди.
Распределение бит DSCP в EF PHB.
3.Assured Forwarding PHB (AF)
Используется для гарантированной доставки. Значение бит DSCP с 5 по 7 может принимать 4 значения (001, 010, 011, 100), следовательно получается четыре стандартных класса AF (AF1, AF2, AF3, AF4), а внутри каждого класса может существует три уровня сбросса пакетов (low, medium, high).
Распределение бит DSCP в AF PHB.
4.Class Selector PHB (CS)
Значение бит DSCP со 2 по 4 равны 000, что дает обратную совместимось с полем ToS, заполненым классификатором IPP.
Распределение бит DSCP в Class Selector PHB.
Ниже приведу таблицу сравнения DSCP и IP Precedence.
Сравнительная таблица DSCP и IPP.
Вот и все. Я попытался коротко рассказать о QoS и понятиях, входящих в него, таких как Best Effort Service, IntServ, DiffServ, PHB, ToS, CoS, IPP, DSCP, AF, EF, Default PHB.
Попробуем разобраться, что такое QoS (Quality of Service), какие стандарты и определения к ней относятся. Поговорим о Best Effort Service, IntServ, DiffServ, PHB, ToS, CoS, IP Precedence (IPP), DSCP, AF, EF, Default PHB.
Давайте первым делом определимся, что же такое Quality of Service. Существует множество определений QoS, мне больше всего нравится вот это:
Под QoS (Quality of Service) следует понимать способность сети (сетевой инфраструктуры) обеспечить необходимый (требуемый) уровень сервиса заданному сетевуму трафику при использование различных технологий.
Под сервисом понимается множество параметров при передачи данных. Рассмотрим основные из них:
Сервисные модели Quality of Service.
Существуют 3 различные сервисные моделей QoS.
1. Best Effort Service. Негарантированная доставка.
По сути, в этой модели отсутствуют какие-либо механизмы QoS. Используются все доступные ресурсы сети. Отсуствуют механизмы управления трафиком. Для улучшения QoS используется расширение полосы пропускания в узких местах, однако это не всегда даёт нужный эффект т.к. существуют типы трафика, чувствительные к задержкам и джиттеру (например VoIP).
2. Integrated Service (IntServ). Интегрированное обслуживание.
Обеспечивает сквозное (End-to-End) качество обслуживания, т.е. происходит резервирование ресурсов на всем пути прохождения трафиика. Для резирвирования ресурсов (Resource reservation) используется протокол RSVP, гарантируя необходимую пропускную способность. Существенным недостатком является постоянное резервирование ресурса, даже в том случае, если он не используется или используется не полностью.
3. Differentiated Service (DiffServ). Дифференцированное обслуживание.
Для обеспечения QoS используется ряд специальных компонентов, таких как классификаторы и формирователи трафика на границе сети, также применяются функции распределения ресурсов в ядре сети.
DiffServ выпоняет две функции:
QoS Классификация и маркировка пакетов.
Начнем с определений:
Следует отметить, что классификация и маркировка пакетов отличаются в зависимости от уровня OSI, на котором работает устройство. Как правило, все коммутаторы работают на уровне L2, а именно с Ethernet кадрами. Маршутизаторы работают на уровне L3 и уже не с кадрами, а пакетами.
Классификация и маркировка пакетов на уровне L2
В протоколе Ethernet отсуствует возможность классификации и маркировки пакетов. Классификация возможна лишь по номеру входящего порта (что в большинстве случаев не представляет никакого интереса), а маркировка вообще невозможна.
Однако не все так плохо. Появился стандарт IEEE 802.1Q, описывающий технологию виртуальных локальных сетей VLAN, вместе с которым был разработан стандарт 802.1P для обеспечения QoS в сетях Ethernet (классификации и маркировки Ethernet кадров).
В стандарте 802.1P предусмотрено поле User Priority или второе более позднее название CoS (Class of Service), состоящее из 3-х бит в заголовке 802.1Q, т.е. CoS может принимать значения от 0 до 7.
Формат Ethernet кадра 802.1Q.
Ниже в таблицы собраны рекомендации по классификации и маркировке траффика согласно стандарту IEEE 802.1P.
Классы трафика согласно стандарту IEEE 802.1P.
Классификация и маркировка пакетов на уровне L3
На L3 мы имеем дело с протоколом IP (Internet Protocol). При разработке протокола IP для целей QoS было специально предусмотрено поле ToS (Type of Service) размером один байт.
Поле ToS может быть заполнен классификатором IP Precedence или DSCP в зависимости от задачи.
IP precedence (IPP) имеет размерность 3 бита, может принимать значения 0-7, т.е. можно говорить о 8-ми классах обслуживания. Изначально использовался классификатор IPP, но со временем появилась необходимость разделять трафиик на большее чем 8 классов обслуживания, следствием чего явилась разработка классификатора DSCP.
DSCP состоит из 6 бит (значения 0-63). Использование дополнительных 3-х бит позволяют ввести большее количество классов. DSCP обратно совместим с IPP. Важно понимать, что оборудование должно поддерживать обработку поля ToS заполненого классификатором DSCP, на старом оборудование с этим могут возникнуть проблемы.
Сравнение IPP и DSCP.
Per-Hop Behaviors (PHB)
Разберем более подробно понятие PHB.
Существуют 4 стандартизованных PHB.
1.Default PHB
Применяется для передачи Best-Efforts (негарантированая доставка) трафика, т.е. нет никакой маркировки, а точнее биты DSCP с 5 по 7 равны 000. Используется для совместимости с сетевыми устройствами, не поддерживающими маркировку или если она не используется.
Распределение бит DSCP в Default PHB.
2.Expedited Forwarding PHB (EF)
Используется для передачи трафика, чувствительного к задержкам. Биты DSCP с 5 по 7 равны 101. Пакеты, помеченные как EF, передаются с наименьшей задержкой в очереди.
Распределение бит DSCP в EF PHB.
3.Assured Forwarding PHB (AF)
Используется для гарантированной доставки. Значение бит DSCP с 5 по 7 может принимать 4 значения (001, 010, 011, 100), следовательно получается четыре стандартных класса AF (AF1, AF2, AF3, AF4), а внутри каждого класса может существует три уровня сбросса пакетов (low, medium, high).
Распределение бит DSCP в AF PHB.
4.Class Selector PHB (CS)
Значение бит DSCP со 2 по 4 равны 000, что дает обратную совместимось с полем ToS, заполненым классификатором IPP.
Распределение бит DSCP в Class Selector PHB.
Ниже приведу таблицу сравнения DSCP и IP Precedence.
Сравнительная таблица DSCP и IPP.
Вот и все. Я попытался коротко рассказать о QoS и понятиях, входящих в него, таких как Best Effort Service, IntServ, DiffServ, PHB, ToS, CoS, IPP, DSCP, AF, EF, Default PHB.
1″ :pagination=»pagination» :callback=»loadData» :options=»paginationOptions»>
Qos cos что такое
Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.
В различных операционных системах и сетевых устройствах механизмы QoS реализованы по-разному:
Содержание
[править] Основные понятия
[править] Классификация и маркировка трафика
[править] IP Precedence
Изначально в поле ToS были выделены 3 бита, которые были названы IP Precedence (IPP). Ещё 4 бита определяли флаги, которые могли быть выставлены для указания конкретного сервиса QoS.
Значения поля IP Precedence и соответствующие названия:
Имя | Десятичное значение | Двоичное значение |
---|---|---|
Routine | Precedence 0 | 000 |
Priority | Precedence 1 | 001 |
Immediate | Precedence 2 | 010 |
Flash | Precedence 3 | 011 |
Flash Override | Precedence 4 | 100 |
Critic/Critical | Precedence 5 | 101 |
Internetwork Control | Precedence 6 | 110 |
Network Control | Precedence 7 | 111 |
[править] Differentiated Services
Позже был определен новый формат поля ToS.
Серия RFC, которые определяют новую трактовку поля ToS и возможности связанные с этим, называется Differentiated Services (DiffServ):
[править] Терминология
[править] Per-Hop Behaviors
DiffServ описывает каким образом должны быть обработаны пакеты по пути их передачи. Осуществляется это заданием соответствия между конкретным значением DSCP в IP-пакете и тем, каким образом пакет будет обрабатываться на каждом узле сети. Описание конкретного типа обработки пакетов называется Per-Hop Behaviors (PHB).
PHB на сетевом узле реализуется, например, с помощью обслуживания очередей на исходящем интерфейсе на основе weighted round-robin (WRR) или управления приоритетом отбрасывания пакетов.
Некоторые PHB определены в RFC:
В RFC описаны рекомендованные для использования соответствия DSCP и PHB, но в любом DS-домене могут быть определены другие соответствия.
[править] Default PHB
Для того чтобы сетевые узлы, которые не маркируют трафик, могли передавать данные по сети используется значение DSCP 000000, которое называется Default PHB. Пакеты, которые изначально были промаркированы для Default PHB, могут быть перемаркированы на другом узле сети при передаче данных.
[править] Class Selector PHB
Для совместимости с предыдущим определением поля ToS (IP Precedence), в DiffServ определены специальные значения, которые совместимы с IPP.
Сетевые узлы, которые трактуют поле ToS как IPP, прочитают только первые три бита из DSCP и трафик будет обслужен в соответствии с приоритетами IPP. Хотя узлы, которые работают с использованием DiffServ, могут, получив пакет с таким же значением DSCP, обрабатывать его дополнительно.
В RFC2474 определены требования к Class Selector PHB — это минимальные требования к набору PHB, которые соответствуют тому как обрабатываются пакеты на основании поля IP Precedence.
Кроме того, определены значения DSCP Class Selector Codepoints, которые обязательно должны соответствовать Class Selector PHB.
Могут быть определены другие, более детальные, процедуры PHB для зарезервированных значений DSCP. Другие значения DSCP могут ссылаться на Class Selector PHB.
[править] Expedited Forwarding PHB
RFC2598 описывает значение 46 DSCP, которое называется Expedited Forwarding (EF).
Пакеты, которые промаркированы значением EF, должны получать приоритет в очереди таким образом, чтобы для них было минимальное время ожидания (latency) и др.
[править] Assured Forwarding PHB
Assured Forwarding (AF) Per-Hop-Behavior (PHB) Group — обеспечивает доставку IP-пакетов в четырех независимо передаваемых AF-классах.
В каждом классе IP-пакету может быть присвоено одно из трёх различных уровней drop precedence.
DS-узел не меняет порядок IP-пакетов в одном микропотоке, если они принадлежат одному AF-классу.
[править] Классификация и маркировка трафика на канальном уровне
При передаче IP-пакета по сети, пакет инкапсулируется в различные заголовки на канальном уровне. В заголовках канального уровня есть поля, которые могут использоваться для классификации и маркировки трафика.
[править] Class of Service
В Ethernet-заголовке может передаваться значение приоритета только если трафик содержит тег 802.1Q.
Стандарт IEEE 802.1Q определяет 3 бита в теге, которые называются user-priority bits. Однако чаще, применимо к этому полю, используется термин Class of Service.
Class of Service (CoS) способ управления трафиком, который позволяет группировать трафик одного типа вместе и затем обрабатывать его по-разному, в зависимости от приоритета.
QoS предоставляет различные уровни сервиса на основании bandwidth и времени доставки (delivery time) (например, с помощью bandwidth prioritization или traffic shaping), а CoS — приоритета доставки трафика.