Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

ШагОписаниеКомандаКлючи
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> – гарантированная полоса трафика в %, рассчитывается от (в порядке от более приоритетного к менее приоритетному значению):

  • значения shape average корневой политики;
  • значения traffic-shape на сетевом интерфейсе, bridge, туннеле;
  • значения speed сетевого интерфейса.

Принимает значение [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-корзины, принимает значения
{ permit | deny | set-cos <COS> | set-dscp <DSCP> };

<CONFORM<EXCEED-ACTION> ACTION> – действие, которое необходимо выполнить с пакетом, если исчерпаны токены conform-корзины, но имеются токены excess-корзины, принимает значения { permit | deny | set-cos <COS> | set-dscp <DSCP>};

<EXCEED<VIOLATE-ACTION> ACTION> – действие, которое необходимо выполнить с пакетом, для которого исчерпаны токены excess-корзины, принимает значения
{ permit | deny | set-cos <COS> | set-dscp <DSCP> };

<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>

esr(config-class-policy-map)#

<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> – гарантированная полоса трафика в %, рассчитывается от (в порядке от более приоритетного к менее приоритетному значению):

  • значения shape average корневой политики;
  • значения traffic-shape на сетевом интерфейсе, bridge, туннеле;
  • значения speed сетевого интерфейса.

Принимает значение [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 полоса трафика в %, конкуренция происходит на основании приоритета класса, рассчитывается от (в порядке от более приоритетного к менее приоритетному значению):

  • значения shape average корневой политики;
  • значения traffic-shape на сетевом интерфейсе, bridge, туннеле;
  • значения speed сетевого интерфейса.

Принимает значение [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-корзины, принимает значения
{ permit | deny | set-cos <COS> | set-dscp <DSCP> };

<CONFORM<EXCEED-ACTION> – действие, которое необходимо выполнить с пакетом, если исчерпаны токены conform-корзины, но имеются токены excess-корзины, принимает значения { permit | deny | set-cos <COS> | set-dscp <DSCP>};

<EXCEED<VIOLATE-ACTION> – действие, которое необходимо выполнить с пакетом, для которого исчерпаны токены excess-корзины, принимает значения
{ permit | deny | set-cos <COS> cos <COS> |  setset-dscp <DSCP> dscp <DSCP> };

<COS> – классификатор обслуживания в теге 802.1q пакета, принимает значения [0..7];

<DSCP> – значение кода DSCP, принимает значения [0..63].

21

Определить режим работы класса (необязательно).

esr(config-class-policy-map)# mode <MODE>

<MODE> – режим класса:

  • fifo – режим FIFO (First In, First Out);
  • gred – режим GRED (Generalized RED);
  • red – режим RED (Random Early Detection);
  • sfq – режим SFQ (очередь SFQ распределяет передачу пакетов на базе потоков).

Значение по умолчанию: 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];
<MIN> – минимальный размер очереди в байтах, принимает значения в диапазоне [1..1000000];
<MAX> – максимальный размер очереди в байтах, принимает значения в диапазоне [1..1000000];
<APS> – средний размер пакета в байтах, принимает значение в диапазоне [1..10000000];
<APS-NUM> – количество пакетов среднего размера разрешенных для кратковременного пропускания,
принимает значение в диапазоне [0..10000000];
<PROBABILITY> – вероятность отбрасывания пакетов, принимает значения [0..100].

При указании значений должны выполняться следующие правила:

<MAX>> 2 * <MIN>
<LIMIT>> 3 * <MAX>

30

Определить параметры GRED (Generalized Random Early Detection) (при необходимости).

esr(config-class-policy-map)# random-detect queue <QUEUE-NUM>
[ dscp <DSCP> | precedence <IPP> ] <LIMIT> <MIN> <MAX> <APS> <APS-NUM> <PROBABILITY>

<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]

При указании значений должны выполняться следующие правила:

<MAX>> 2 * <MIN>
<LIMIT>> 3 * <MAX>

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 в различных сценариях: 

Если ESR выступает в роли PE-маршрутизатора:

  •    При При инкапсуляции IP в MPLS  происходит наследование старших трех битов  DSCP  битов DSCP исходного IP-заголовка в поле EXP  EXP сервисной и транспортной меток;
  •    При При инкапсуляции IP в MPLS, а затем в GRE наследуется , наследуются старшие три бита исходного IP-заголовка в поле EXP  EXP сервисной и транспортной меток. Значение DSCP исходного IP-заголовка наследуется во внешний DSCP заголовокв поле DSCP внешнего IP-заголовка;
  • При декапсуляции MPLS значение поля DSCP исходного IP-пакета не изменяется.

Если ESR выступает в роли P-маршрутизатора:

  • При   операции  При операции Swap label label  значение поля EXP  EXP будет унаследовано;
  • При операции  операции Explicit null значение поля EXP  EXP будет унаследовано;
  • При инкапсуляции в GRE происходит наследование  наследование поля EXP в три старших бита поля DSCP внешнего DSCP  в IP-заголовке.  заголовка.  

Если ESR выступает в роли ASBR-маршрутизатора:

  • При операции push label (добавление новых меток) значение поля EXP будет наследовано в поле EXP всех новых меток;
  • При операции pop label значение поля EXP не будет унаследовано в стек нижестоящих MPLS меток.