...
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | Создать списки доступа для определения трафика, к которому должен быть применен расширенный QoS. | См. раздел Настройка списков доступа (ACL). | |
| 2 | Создать класс QoS и перейти в режим настройки параметров класса. | esr(config)# class-map <NAME> | <NAME> – имя создаваемого класса, задается строкой до 31 символа. |
| 3 | Задать описание класса QoS (необязательно). | esr(config-class-map)# description <description> | <description> – до 255 символов. |
| 4 | Определить трафик, относящийся к конфигурируемому классу по списку контроля доступа (ACL). | esr(config-class-map)# match access-group <NAME> | <NAME> – имя списка контроля доступа, задаётся строкой до 31 символа. |
| 5 | Задать значение для классификации по полю DSCP в заголовке IP-пакета для конфигурируемого класса. | esr(config-class-map)# match dscp <DSCP> | <DSCP> – значение кода DSCP, принимает значения [0..63]. |
| 6 | Задать значение для классификации по полю EXP в MPLS заголовке для конфигурируемого класса. | esr(config-class-map)# match mpls experimental topmost <EXP> | <EXP> – значение поля EXP, принимает значения [0..7]. |
7 | Определить трафик протокола NHRP в туннеле GRE к конфигурируемому классу. | esr(config-class-map)# match protocol nhrp | |
8 | Задать значение кода IP Precedence, которое будет установлено в IP-пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями DSCP и CoS) (при необходимости перемаркировки). | esr(config-class-map)# set ip-precedence <IPP> | <IPP> – значение кода IP Precedence, принимает значения [0..7]. |
| 9 | Задать значение 802.1p приоритета, которое будет установлено в пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями DSCP и IP Precedence) (при необходимости перемаркировки). | esr(config-class-map)# set сos <COS> | <COS> – значение 802.1p приоритета, принимает значения [0..7]. |
10 | Задать значение кода DSCP, которое будет установлено в IP-пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями IP Precedence и CoS) (при необходимости перемаркировки). | esr(config-class-map)# set dscp <DSCP> | <DSCP> – значение кода DSCP, принимает значения [0..63]. |
11 | Создать политику QoS и осуществить переход в режим настройки параметров политики. | esr(config)# policy-map <NAME> esr(config-policy-map)# | <NAME> – имя создаваемой политики, задается строкой до 31 символа. |
12 | Задать описание политики QoS (необязательно). | esr(config-policy-map)# description <description> | <description> – до 255 символов. |
| 13 | Установить гарантированную полосу пропускания исходящего трафика для политики в целом. | esr(config-policy-map)# shape average { <BANDWIDTH> | percent <BANDWIDTH_PERCENT> } [BURST] | <BANDWIDTH> – гарантированная полоса трафика в Кбит/с, принимает значение [64..10000000]; <BANDWIDTH_PERCENT> – гарантированная полоса трафика в %, рассчитывается от (в порядке от более приоритетного к менее приоритетному значению):
Принимает значение [1..100]. <BURST> – размер сдерживающего порога в Кбайт, принимает значение [128..16000]. По умолчанию 128 Кбайт. |
14 | Включить работу полисера (при необходимости). | esr(config-policy-map)# police <RATE> [burst-conforming <BURST-CONFORM>] [conform-action <CONFORM-ACTION>] [exceed-action <EXCEED-ACTION>] [burst-excess <BURST-EXCEED> [violate-action <VIOLATE-ACTION>]] | <RATE> – скорость пополнения токенами conform-корзины в Кбит/с; <BURST-CONFORM> – размер conform-корзины в байтах; <BURST-EXCEED> – размер excess-корзины в байтах; <VIOLATE<CONFORM-ACTION> ACTION> – действие, которое необходимо выполнить с пакетом, для которого имеются токены conform-корзины, принимает значения <CONFORM<EXCEED-ACTION> ACTION> – действие, которое необходимо выполнить с пакетом, если исчерпаны токены conform-корзины, но имеются токены excess-корзины, принимает значения { permit | deny | set-cos <COS> | set-dscp <DSCP>}; <EXCEED<VIOLATE-ACTION> ACTION> – действие, которое необходимо выполнить с пакетом, для которого исчерпаны токены excess-корзины, принимает значения <COS> – классификатор обслуживания в теге 802.1q пакета, принимает значения [0..7]; <DSCP> – значение кода DSCP, принимает значения [0..63]. |
15 | Включить автоматическое распределение полосы пропускания между классами, в которых нет настройки полосы пропускания, включая класс по умолчанию (в случае необходимости). | esr(config-policy-map)# shape auto-distribution | |
16 | Включить указанный QoS-класс в политику и осуществить переход в режим настройки параметров класса в рамках политики. | esr(config-policy-map)# class <NAME> | <NAME> – имя привязываемого класса, задается строкой до 31 символа. При указании значения «class-default» в данный класс попадает трафик, не классифицированный на входе. |
17 | Включить политику QoS в класс QoS для создания иерархического QoS. | esr(config-class-policy-map)# service-policy <NAME> | <NAME> – имя политики, задается строкой до 31 символа. Вкладываемая политика должна быть уже создана. |
18 | Установить гарантированную полосу пропускания исходящего трафика для класса в рамках политики (при необходимости). | esr(config-class-policy-map)# shape average { <BANDWIDTH> | percent <BANDWIDTH_PERCENT> } [BURST] | <BANDWIDTH> – гарантированная полоса трафика в Кбит/с, принимает значение [64..10000000]; <BANDWIDTH_PERCENT> – гарантированная полоса трафика в %, рассчитывается от (в порядке от более приоритетного к менее приоритетному значению):
Принимает значение [1..100]. <BURST> – размер сдерживающего порога в Кбайт, принимает значение [4..16000]. По умолчанию 128 Кбайт. |
| 19 | Установить разделяемую полосу пропускания исходящего трафика для определенного класса. Данную полосу класс может занять, если менее приоритетный класс не занял свою гарантированную полосу (при необходимости). | esr(config-class-policy-map)# shape peak { <BANDWIDTH> | percent <BANDWIDTH_PERCENT> } [BURST] | <BANDWIDTH> – общая для priority class полоса трафика в Кбит/с, конкуренция происходит на основании приоритета класса, принимает значение [64..10000000]; <BANDWIDTH_PERCENT> – общая для priority class полоса трафика в %, конкуренция происходит на основании приоритета класса, рассчитывается от (в порядке от более приоритетного к менее приоритетному значению):
Принимает значение [1..100]. <BURST> – размер сдерживающего порога в Кбайт, принимает значение [4..16000]. По умолчанию 128 Кбайт. |
20 | Включить работу полисера для определенного класса (при необходимости). | esr(config-class-policy-map)# police <RATE> [burst-conforming <BURST-CONFORM>] [conform-action <CONFORM-ACTION>] [exceed-action <EXCEED-ACTION>] [burst-excess <BURST-EXCEED> [violate-action <VIOLATE-ACTION>]] | <RATE> – скорость пополнения токенами conform-корзины Кбит/с; <BURST-CONFORM> – размер conform-корзины в байтах; <BURST-EXCEED> – размер excess-корзины в байтах; <VIOLATE<CONFORM-ACTION> – действие, которое необходимо выполнить с пакетом, для которого имеются токены conform-корзины, принимает значения <CONFORM<EXCEED-ACTION> – действие, которое необходимо выполнить с пакетом, если исчерпаны токены conform-корзины, но имеются токены excess-корзины, принимает значения { permit | deny | set-cos <COS> | set-dscp <DSCP>}; <EXCEED<VIOLATE-ACTION> – действие, которое необходимо выполнить с пакетом, для которого исчерпаны токены excess-корзины, принимает значения <COS> – классификатор обслуживания в теге 802.1q пакета, принимает значения [0..7]; <DSCP> – значение кода DSCP, принимает значения [0..63]. |
21 | Определить режим работы класса (необязательно). | esr(config-class-policy-map)# mode <MODE> | <MODE> – режим класса:
Значение по умолчанию: FIFO. |
22 | Задать приоритет класса в WRR-процессе (при необходимости). | esr(config-class-policy-map)# priority class <PRIORITY> | <PRIORITY> – приоритет класса в WRR-процессе, принимает значения [1..8]. Классы с наибольшим приоритетом обрабатываются в первую очередь. |
| 23 | Перевести класс в режим StrictPriority и задать приоритет класса (при необходимости). | esr(config-class-policy-map)# priority level <PRIORITY> | <PRIORITY> – уровень приоритета в StrictPriority-процессе, принимает значения [1..8]. Классы с наибольшим приоритетом обрабатываются в первую очередь. Значение по умолчанию: класс работает в режиме WRR, приоритет не задан. |
24 | Задать значение кода DSCP, которое будет установлено в IP-пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями IP Precedence и CoS) (при необходимости перемаркировки параметрами класса в рамках политики). | esr(config-class-map)# match dscp <DSCP> | <DSCP> – значение кода DSCP, принимает значения [0..63]. |
25 | Задать значение кода IP Precedence, которое будет установлено в IP-пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями DSCP и CoS) (при необходимости перемаркировки параметрами класса в рамках политики). | esr(config-class-map)# set ip-precedence <IPP> | <IPP> – значение кода IP Precedence, принимает значения [0..7]. |
26 | Задать значение 802.1p приоритета, которое будет установлено в пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями DSCP и IP Precedence) (при необходимости перемаркировки параметрами класса в рамках политики). | esr(config-class-map)# set сos <COS> | <COS> – значение 802.1p приоритета, принимает значения [0..7]. |
27 | Определить предельное количество виртуальных очередей (необязательно). | esr(config-class-policy-map)# fair-queue <QUEUE-LIMIT> | <QUEUE-LIMIT> – предельное количество виртуальных очередей, принимает значения в диапазоне [16..4096]. Значение по умолчанию: 16. |
28 | Определить предельное количество пакетов для виртуальной очереди (необязательно). | esr(config-class-policy-map)# queue-limit <QUEUE-LIMIT> | <QUEUE-LIMIT> – предельное количество пакетов в виртуальной очереди, принимает значения в диапазоне [2..4096]. Значение по умолчанию: 127. |
29 | Определить параметры RED (Random Early Detection) (при необходимости). | esr(config-class-policy-map)# random-detect <LIMIT> <MIN> <MAX> <APS> <APS-NUM> <PROBABILITY> | <LIMIT> – предельный размер очереди в байтах, принимает значения в диапазоне [1..1000000]; При указании значений должны выполняться следующие правила: <MAX>> 2 * <MIN> |
| 30 | Определить параметры GRED (Generalized Random Early Detection) (при необходимости). | esr(config-class-policy-map)# random-detect queue <QUEUE-NUM> | <QUEUE-NUM> – номер очереди [1..16]; При указании значений должны выполняться следующие правила: <MAX>> 2 * <MIN> |
31 | Определить очередь по умолчанию для механизма GRED. | esr(config-class-policy-map)# random-detect queue default <QUEUE-NUM> | Данной командой определяется очередь по умолчанию для механизма GRED. Для применения данной команды предварительно необходимо настроить команду random-detect queue <QUEUE-NUM> dscp <DSCP>/precedence <0-7> <LIMIT> <MIN> <MAX> <APS> <APS-NUM> <PROBABILITY>. После применения команд random-detect queue <QUEUE-NUM> dscp <DSCP>/precedence <0-7> <LIMIT> <MIN> <MAX> <APS> <APS-NUM> <PROBABILITY> и random-detect queue default <QUEUE-NUM> поля dscp/precedence в заголовке IP-пакетов данной очереди будут игнорироваться. <QUEUE-NUM> – номер очереди [1..16]; <DSCP> – классификатор обслуживания в IP-заголовке пакета, принимает значения [0..63]; <IPP> – значение кода IP Precedence, принимает значения [0..7]; <PRECEDENCE> – значение IP Precendence [0..7]; <LIMIT> – предельный размер очереди в байтах, принимает значения в диапазоне [1..1000000]; <MIN> – минимальный размер очереди в байтах, принимает значения в диапазоне [1..1000000]; <MAX> – максимальный размер очереди в байтах, принимает значения в диапазоне [1..1000000]; <APS> – средний размер пакета в байтах, принимает значение в диапазоне [1..10000000]; <APS-NUM> – количество пакетов среднего размера, разрешенных для кратковременного пропускания, принимает значение в диапазоне [0..10000000]; <PROBABILITY> – вероятность отбрасывания пакетов, принимает значения [0..100]. |
| 32 | Включить протокол компрессии tcp-заголовков для трафика отдельного класса (при необходимости). | esr(config-class-policy-map)# compression header ip tcp | |
33 | Включить сервис QoS на интерфейсе/туннеле/сетевом мосту. | esr(config-if-gi)# qos enable | |
| 34 | Назначить политику QoS на сконфигурируемом интерфейсе/туннеле/сетевом мосту для классификации входящего (input) или приоритизации исходящего (output) трафика. | esr(config-if-gi)# service-policy { input | output } <NAME> | <NAME> – имя QoS-политики, задаётся строкой до 31 символа. |
...
- пропустить (permit);
- отбросить (deny);
- пропустить и изменить cos/dscp (set cos, set dscp).
Scroll Pagebreak
MPLS QoS
QoS в MPLS позволяет реализовать управление приоритетами трафика внутри MPLS-домена путём использования EXP-поля в заголовке MPLS. Это даёт возможность классифицировать, маркировать и обрабатывать трафик в соответствии с политиками DiffServ, обеспечивая нужный уровень сервиса для критически важных приложений в L3VPN и других сценариях. Рассмотрим Рассмотрим поведение маршрутизатора по умолчанию с полями DSCP и EXP EXP в различных сценариях:
Если ESR выступает в роли PE-маршрутизатора:
- При инкапсуляции IP в MPLS происходит наследование старших трех битов DSCP битов DSCP исходного IP-заголовка в поле EXP EXP сервисной и транспортной меток;
- При инкапсуляции IP в MPLS, а затем в GRE, наследуется наследуются старшие три бита исходного IP-заголовка в поле EXP EXP сервисной и транспортной меток. Значение DSCP исходного IP-заголовка наследуется в поле DSCP внешнего IP-заголовка;
- При декапсуляции MPLS , значение поля DSCP исходного IP-пакета не изменяется.
Если ESR выступает в роли P-маршрутизатора:
- При операции При операции Swap label значение поля EXP EXP будет унаследовано;
- При операции операции Explicit null значение поля EXP EXP будет унаследовано;
- При инкапсуляции в GRE происходит наследование поля поля EXP в три старших бита поля DSCP внешнего внешнего IP-заголовка.
Если ESR выступает в роли ASBR-маршрутизатора:
- При операции операции push label (добавление новых меток) значение поля поля EXP будет наследовано в в поле EXP всех новых меток;
- При операции pop label значение поля поля EXP не не будет унаследовано в стек нижестоящих MPLS меток.