Перейти к содержанию

QOS

QOS - совокупность методов для обеспечения приоритета в обслуживании определенным типам трафика. QoS позволяет в условиях высокой нагрузки на сеть оптимизировать использование сетевых ресурсов и гарантировать отказоустойчивость для отдельных сервисов.

Все входящие кадры классифицируются в класс обслуживания (CoS), который используется в системе очередей при распределении ресурсов, при арбитраже между входными и выходными очередями и в планировщике исходящего трафика (egress scheduler) при выборе следующего кадра для передачи.

Существует взаимно однозначное соответствие между терминами CoS, класс QoS, очередь и приоритет. CoS равный нулю имеет самый низкий приоритет.

Управление пропускной способностью в очередях может осуществляться с помощью policer и shaper.

Помимо policer и shaper, можно настроить различные механизмы планирования в зависимости от того, как обрабатываются разные приоритетные очереди в системе QoS.

Взвешенное раннее случайное обнаружение (WRED, Weighted Random Early Detection) может быть настроено глобально для предотвращения перегрузок и отбрасывания кадров с DPL больше нуля при заполнении очередей.

Storm policer могут использоваться на глобальном уровне для контроля количества широковещательных кадров. Также существует возможность настройки storm policer на порт.

Классификация QoS:

  • Базовый QoS - включает предопределенные схемы обработки CoS, уровня приоритета отбрасывания (DPL), кодовых точек приоритета (PCP), индикатора возможности отбрасывания (DEI), идентификатора класса обслуживания (CoSID) и кодовых точек дифференцированных услуг DSCP:
    • Классификация CoS и DPL на основе PCP и DEI для тегированных кадров. Таблица отображения PCP и DEI в CoS и DPL создаются для каждого порта;
    • Классификация CoS и DPL на основе DSCP;
    • Трансляция DSCP;
    • Перемаркировка DSCP на основе CoS;
    • Конфигурация CoS и DPL на порту для нетегированных и не IP-кадров;
    • Конфигурация CoSID на порту. CoSID - это значение, которое может использоваться как селектор в картах исходящего трафика (egress maps). Оно никак не связано с CoS;
    • Общая классификация с использованием входной карты (ingress map);
    • Общая перемаркировка с использованием выходной карты (egress map);
  • Расширенный QoS - использует списки управления QoS (QCL), которые обеспечивают гибкую классификацию:
    • Поля протоколов верхних уровней для сопоставления правил;
    • Действия включающие реклассификацию значений CoS, DPL, PCP, DEI, DSCP и политик ACL. Также возможна реклассификация с использованием входной карты (ingress map).

Policer ограничивает пропускную способность принимаемых кадров, превышающих настраиваемые скорости. Они могут быть настроены на уровне очереди или на уровне порта.

Формирование исходящего трафика может быть реализовано с помощью bandwidth shaper. Shaper могут быть настроены на уровне очереди или на уровне порта.

На уровне порта возможны два типа распределения ресурсов:

  • Strict Priority (Строгий приоритет) - алгоритм планирования, при котором в первую очередь обрабатываются пакеты из очереди с наивысшим приоритетом, а после того как она опустеет, начинается обработка очередей с меньшим приоритетом;
  • DWRR (Дефицитное взвешенное циклическое обслуживание) - планирование основано на весах, настроенных для каждой очереди. Предусмотрена настройка количества очередей, которые могут работат в режиме DWRR. В режиме DWRR можно включать от двух до восьми очередей. Если количество очередей меньше восьми, то очереди с наименьшим приоритетом переводятся в режим DWRR, а очереди с более высоким приоритетом остаются в режиме сторогого приоритета. Например, если для DWRR выбрано две очереди, то Queue 0 И Queue 1 устанавливаются в режим DWRR, а остальные очереди работают в режиме strict priority.

Перегрузок в системе очередей можно избежать, включив и настроив функцию взвешанного раннего случайного обнаружения (WRED). WRED может отбрасывать кадры с DPL больше нуля.

Существует три отдельные группы WRED, и каждый порт принадлежит к одной из этих групп.

Настройка включает в себя включение WRED для группы, очереди и DPL, а также установку минимального и максимального пороговых значений.

Минимальный порог - это уровень заполнения очереди, при котором WRED начинает отбрасывать кадры.

Максимальный порог может быть настроен либо как вероятность отбрасывания (Drop Probability), либо как уровень заполнения (Fill Level). Если в качестве едницы измерения выбрана drop probability, то указанный порог будет соответствовать вероятности отбрасывания при уровне заполнения очереди близком к 100 процентам. Если в качестве единицы измерения выбран fill level, то он представляет собой уровень заполнения очереди, при котором вероятность отбрасывания равна 100 процентам.

Storm policer ограничивают количество лавинных кадров (кадров, поступающих с SMAC, которые не были изучены ранее), входящих в устройство. Настройки являются глобальными для всего устройства, а не для отдельных портов. Storm policer могут применяться отдельно для unicast, multicast, broadcast и лавинных пакетов.

Ingress Map (входная карта) - это таблица сопоставления, создаваемая для классификации значений на входе, таких как CoS, DPL, PCP, DEI, DSCP и CoSID, на основе ключевых значений в пакете (PCP, PCP/DEI, DSCP или PCP/DEI/DSCP).

Чтобы использовать входную карту, её необходимо сначала создать и настроить.

Настройка состоит из следующих параметров:

  • Ключ (Key) - какая часть пакета используется для поиска;
  • Действия (Actions) - какие типы значений подлежат классификации;
  • Сопоставление (Mappings) - фактическое значение, используемое для классификации каждого значения ключа.

Конкретная входная карта может быть связана с одним или несколькими портами. Использование входной карты всегда имеет приоритет над другими видами классификации на основе порта.

Egress map (выходная карта) - это таблица сопоставления, создаваемая для управления перезаписью пакетов на выходе. Такие значения, как PCP, DEI и DSCP, могут быть обновлены на основе классифицированных ключевых значений (CoSID, CoSID/DPL, DSCP или DSCP/DPL).

Чтобы использовать выходную карту, её необходимо сначала создать и настроить. Настройка состоит из следующих параметров:

  • Ключ (Key) - какие классифицированные значения используются для поиска;
  • Действия (Actions) - какие типы значений перезаписываются в пакетет;
  • Сопоставление (Mappings) - фактическое значение, используемое для перезаписи каждого значения ключа.

Конкретная выходная карта может быть связана с одним или несколькими портами.

Назначение применяемой команды/конфигурации

Команды в режиме глобальной конфигурации

qos map cos-dscp <0~7>

qos map dscp-classify { <0-63> | af11 | af12 | af13 | af21 | af22 | af23 | af31 | af32 | af33 | af41 | af42 | af43 | be | cs1 | cs2 | cs3 | cs4 | cs5 | cs6 | cs7 | ef | va }

qos map dscp-cos { <0-63> | af11 | af12 | af13 | af21 | af22 | af23 | af31 | af32 | af33 | af41 | af42 | af43 | be | cs1 | cs2 | cs3 | cs4 | cs5 | cs6 | cs7 | ef | va }

qos map dscp-egress-translation { <0-63> | af11 | af12 | af13 | af21 | af22 | af23 | af31 | af32 | af33 | af41 | af42 | af43 | be | cs1 | cs2 | cs3 | cs4 | cs5 | cs6 | cs7 | ef | va }

qos map dscp-ingress-translation { <0-63> | af11 | af12 | af13 | af21 | af22 | af23 | af31 | af32 | af33 | af41 | af42 | af43 | be | cs1 | cs2 | cs3 | cs4 | cs5 | cs6 | cs7 | ef | va }

qos map egress <0-511>
qos map ingress <0-255>

qos qce <1-256> [action | dmac | frame-type | inner-tag | interface | last | next | smac | tag]

qos qce refresh
qos qce update <1-256>

qos storm { broadcast | multicast | unicast }

qos wred group <1~3>

no qos map cos-dscp <0~7>

no qos map dscp-classify { <0-63> | af11 | af12 | af13 | af21 | af22 | af23 | af31 | af32 | af33 | af41 | af42 | af43 | be | cs1 | cs2 | cs3 | cs4 | cs5 | cs6 | cs7 | ef | va }

no qos map dscp-cos { <0-63> | af11 | af12 | af13 | af21 | af22 | af23 | af31 | af32 | af33 | af41 | af42 | af43 | be | cs1 | cs2 | cs3 | cs4 | cs5 | cs6 | cs7 | ef | va }

no qos map dscp-egress-translation { <0-63> | af11 | af12 | af13 | af21 | af22 | af23 | af31 | af32 | af33 | af41 | af42 | af43 | be | cs1 | cs2 | cs3 | cs4 | cs5 | cs6 | cs7 | ef | va }

no qos map dscp-ingress-translation { <0-63> | af11 | af12 | af13 | af21 | af22 | af23 | af31 | af32 | af33 | af41 | af42 | af43 | be | cs1 | cs2 | cs3 | cs4 | cs5 | cs6 | cs7 | ef | va }

no qos map egress <0-511>
no qos map ingress <0-255>

no qos qce <1-256>

no qos storm { broadcast | multicast | unicast }

no qos wred group <1~3>

Команды в режиме настройки qos map ingress

action class [cos | dei | dpl | dscp | pcp]

key dscp
key dscp-pcp-dei
key pcp
key pcp-dei

map dscp <0~63> { af11 | af12 | af13 | af21 | af22 | af23 | af31 | af32 | af33 | af41 | af42 | af43 | be | cs1 | cs2 | cs3 | cs4 | cs5 | cs6 | cs7 | ef | va }
map pcp <0~7>  

preset classes <1-8> [color-aware]

no action

Команды в режиме настройки qos map egress

action { dei | dscp | pcp }

key class
key class-dpl
key dscp
key dscp-dpl

map class <0~7>
map dscp { <0-63> | af11 | af12 | af13 | af21 | af22 | af23 | af31 | af32 | af33 | af41 | af42 | af43 | be | cs1 | cs2 | cs3 | cs4 | cs5 | cs6 | cs7 | ef | va }

preset classes <1-8> [color-aware]

no action

Команды в режиме настройки интерфейса

qos class <0-7>
qos cos <0-7>
qos cut-through queue <0-7>
qos dei <0-1>
qos dpl <0-3>
qos dscp-classify { any | selected | zero }
qos dscp-remark { remap | rewrite }
qos dscp-translate
qos egress-map <0-511>
qos ingress-map <0-255>
qos map cos-tag cos
qos map tag-cos pcp
qos pcp <0-7>
qos policer <1-13128147> { flowcontrol | fps | kbps | kfps | mbps }
qos policer <1-13128147>
qos queue-policer queue <0-7>
qos queue-shaper queue <0-7>
qos shaper <1-13107100> { kbps | mbps | rate-type }
qos shaper <1-13107100>
qos storm broadcast <1-13128147>
qos storm unicast <1-13128147>
qos storm unknown <1-13128147>
qos tag-remark { mapped | pcp <0-7> }
qos trust { dscp | tag }
qos wred-group <1-3>
qos wrr <1-100>

no qos class
no qos cos
no qos cut-through queue <0~7>
no qos dei
no qos dpl
no qos dscp-classify
no qos dscp-remark
no qos dscp-translate
no qos egress-map
no qos ingress-map
no qos map cos-tag cos
no qos map tag-cos pcp
no qos pcp
no qos policer
no qos queue-policer queue <0~7>
no qos queue-shaper queue <0~7>
no qos shaper
no qos storm broadcast
no qos storm unicast
no qos storm unknown
no qos tag-remark
no qos trust { dscp | tag }
no qos wred-group
no qos wrr

Команды отображения информации

show qos
show qos interface { * | GigabitEthernet | 25GigabitEthernet }
show qos maps cos-dscp [ dscp-classify | dscp-cos | dscp-egresstranslation | dscp-ingress-translation | egress | ingress ]
show qos maps dscp-classify [ cos-dscp | dscp-cos | dscp-egresstranslation | dscp-ingress-translation | egress | ingress ]
show qos maps dscp-cos [ cos-dscp | dscp-classify | dscp-egresstranslation | dscp-ingress-translation | egress | ingress ]
show qos maps dscp-egress-translation [ cos-dscp | dscp-classify | dscpcos | dscp-ingress-translation | egress | ingress ]
show qos maps dscp-ingress-translation [ cos-dscp | dscp-classify | dscpcos | dscp-egress-translation | egress | ingress ]
show qos maps egress [ <0-511> | cos-dscp | dscp-classify | dscp-cos | dscp-egress-translation | dscp-ingress-translation | ingress ]
show qos maps ingress [ <0-255> | cos-dscp | dscp-classify | dscp-cos | dscp-egress-translation | dscp-ingress-translation | egress ]
show qos maps ingress
show qos qce <1-256>
show qos storm
show qos wred

Пример конфигурирования

Схема соединений

Схема соединений для примера настройки QOS

Настройка

Шаг 1. Создание VLAN 10 и настройка его SVI

1
2
3
4
5
6
7
SW1# configure terminal
SW1(config)# vlan 10
SW1(config-vlan)# name Test_vlan
SW1(config-vlan)# exit
SW1(config)# interface vlan 10
SW1(config-if-vlan)# ip address 192.168.1.200 255.255.255.0
SW1(config-if-vlan)# exit

Шаг 2. Настройка трансляции DSCP 24 в DSCP 46

SW1(config)# qos map dscp-ingress-translation 24 to 46

Шаг 3. Настройка интерфейса GigabitEthernet 1/1

1
2
3
SW1(config)# interface GigabitEthernet 1/1
SW1(config-if)# switchport mode trunk
SW1(config-if)# switchport trunk allowed vlan 10

Шаг 4. Включение трансляции DSCP на входе, внутренняя замена DSCP 24 на 46

SW1(config-if)# qos dscp-translate

Шаг 5. Настройка интерфейса GigabitEthernet 1/2

1
2
3
SW1(config)# interface GigabitEthernet 1/2
SW1(config-if)# switchport mode trunk
SW1(config-if)# switchport trunk allowed vlan 10

Шаг 6. Перезапись DSCP на выходе, коммутатор записывает внутреннее значение DSCP в заголовок пакета

SW1(config-if)# qos dscp-remark rewrite

Полный вывод выполненных конфигураций

!
vlan 10
 name Test_vlan
!
qos map dscp-ingress-translation 24 to 46
!
interface GigabitEthernet 1/1
 switchport trunk allowed vlan 10
 switchport mode trunk
 qos dscp-translate
!
interface GigabitEthernet 1/2
 switchport trunk allowed vlan 10
 switchport mode trunk
 qos dscp-remark rewrite
!
interface vlan 10
 ip address 192.168.1.200 255.255.255.0

Изучение состояния устройства

Просмотр конфигурации

SW1# show qos maps dscp-ingress-translation

qos map dscp-ingress-translation:
=================================
DSCP       Translated DSCP
---------  ---------------
0  (BE)    0  (BE)
1          1
2          2
3          3
4          4
5          5
6          6
7          7
8  (CS1)   8  (CS1)
9          9
10 (AF11)  10 (AF11)
11         11
12 (AF12)  12 (AF12)
13         13
14 (AF13)  14 (AF13)
15         15
16 (CS2)   16 (CS2)
17         17
18 (AF21)  18 (AF21)
19         19
20 (AF22)  20 (AF22)
21         21
22 (AF23)  22 (AF23)
23         23
24 (CS3)   46 (EF)
25         25
26 (AF31)  26 (AF31)
27         27
28 (AF32)  28 (AF32)
29         29
30 (AF33)  30 (AF33)
31         31
32 (CS4)   32 (CS4)
33         33
34 (AF41)  34 (AF41)
35         35
36 (AF42)  36 (AF42)
37         37
38 (AF43)  38 (AF43)
39         39
40 (CS5)   40 (CS5)
41         41
42         42
43         43
44         44
45         45
46 (EF)    46 (EF)
47         47
48 (CS6)   48 (CS6)
49         49
50         50
51         51
52         52
53         53
54         54
55         55
56 (CS7)   56 (CS7)
57         57
58         58
59         59
60         60
61         61
62         62
63         63