Дерево страниц

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

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Комментарий: Довгопол Д. Добавоено "Механизм работы полисера"

...

ШагОписаниеКомандаКлючи
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-пакетах, соответствующих конфигурируемому классу

(невозможно назначать одновременно с полями IP Precedence и CoS) (при необходимости перемаркировки).

esr(config-class-map)# match dscp <DSCP>

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

6

Задать значение кода IP Precedence, которое будет установлено в IP-пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями DSCP и CoS) (при необходимости перемаркировки).

esr(config-class-map)# set ip-precedence <IPP>

<IPP> – значение кода IP Precedence, принимает значения [0..7].

7

Задать значение 802.1p приоритета, которое будет установлено в пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями DSCP и IP Precedence) (при необходимости перемаркировки).

esr(config-class-map)# set сos <COS>

<COS> – значение 802.1p приоритета, принимает значения [0..7].

8

Создать политику QoS и осуществить переход в режим настройки параметров политики.

esr(config)# policy-map <NAME>

esr(config-policy-map)#

<NAME> – имя создаваемой политики, задается строкой до 31 символа.

9

Задать описание политики QoS (не обязательно).

esr(config-policy-map)# description <description>

<description> – до 255 символов.

10

Установить гарантированную полосу пропускания исходящего трафика для политики в целом.

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 Кбайт.

11Включить работу полисера (при необходимости)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-ACTION> - действие, которое необходимо выполнить с пакетом, для которого имеются токены conform корзины, принимает значения { permit | deny | set-cos <COS> | set-dscp <DSCP> };

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

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

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

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

12

Включить автоматическое распределение полосы пропускания между классами, в которых нет настройки полосы пропускания, включая класс по умолчанию (в случае необходимости).

esr(config-policy-map)# shape auto-distribution


1213

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

esr(config-policy-map)# class <NAME>

esr(config-class-policy-map)#

<NAME> – имя привязываемого класса, задается строкой до 31 символа. При указании значения «class-default» в данный класс попадает трафик, не классифицированный на входе.

1314

Включить политику QoS в класс QoS для создания иерархического QoS.

esr(config-class-policy-map)# service-policy <NAME>

<NAME> – имя политики, задается строкой до 31 символа. Вкладываемая политика должна быть уже создана.

1415

Установить гарантированную полосу пропускания исходящего трафика для класса в рамках политики (при необходимости).

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 Кбайт.

1516

Установить разделяемую полосу пропускания исходящего трафика для определенного класса. Данную полосу класс может занять, если менее приоритетный класс не занял свою гарантированную полосу (при необходимости).

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 Кбайт.

1617

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

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.

1718

Задать приоритет класса в WRR-процессе (при необходимости).

esr(config-class-policy-map)# priority class <PRIORITY>

<PRIORITY> – приоритет класса в WRR-процессе, принимает значения [1..8].

Классы с наибольшим приоритетом обрабатываются в первую очередь.

1819

Перевести класс в режим StrictPriority и задать приоритет класса (при необходимости).

esr(config-class-policy-map)# priority level <PRIORITY>

<PRIORITY> – уровень приоритета в StrictPriority-процессе, принимает значения [1..8].

Классы с наибольшим приоритетом обрабатываются в первую очередь. Значение по умолчанию: класс работает в режиме WRR, приоритет не задан.

1920

Задать значение кода DSCP, которое будет установлено в IP-пакетах, соответствующих конфигурируемому классу

(невозможно назначать одновременно с полями IP Precedence и CoS) (при необходимости перемаркировки параметрами класса в рамках политики).

esr(config-class-map)# match dscp <DSCP>

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

2021

Задать значение кода IP Precedence, которое будет установлено в IP-пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями DSCP и CoS) (при необходимости перемаркировки параметрами класса в рамках политики).

esr(config-class-map)# set ip-precedence <IPP>

<IPP> – значение кода IP Precedence, принимает значения [0..7].

2122

Задать значение 802.1p приоритета, которое будет установлено в пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями DSCP и IP Precedence) (при необходимости перемаркировки параметрами класса в рамках политики).

esr(config-class-map)# set сos <COS>

<COS> – значение 802.1p приоритета, принимает значения [0..7].

2223

Определить предельное количество виртуальных очередей (не обязательно).

esr(config-class-policy-map)# fair-queue <QUEUE-LIMIT>

<QUEUE-LIMIT> – предельное количество виртуальных очередей, принимает значения в диапазоне [16..4096].

Значение по умолчанию: 16.

2324

Определить предельное количество пакетов для виртуальной очереди (не обязательно).

esr(config-class-policy-map)# queue-limit <QUEUE-LIMIT>

<QUEUE-LIMIT> – предельное количество пакетов в виртуальной очереди, принимает значения в диапазоне [2..4096].

Значение по умолчанию: 127.

2425

Определить параметры 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>

2526

Определить параметры 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>

2627

Включить протокол компрессии tcp-заголовков для трафика отдельного класса (при необходимости).

esr(config-class-policy-map)# compression header ip tcp


2728

Включить сервис QoS на интерфейсе/туннеле/сетевом мосту.

esr(config-if-gi)# qos enable


2829

Назначить политику QoS на сконфигурируемом интерфейсе/туннеле/сетевом мосту для классификации входящего (input) или приоритизации исходящего (output) трафика.

esr(config-if-gi)# service-policy { input | output } <NAME>

<NAME> – имя QoS-политики, задаётся строкой до 31 символа.

...

Блок кода
esr# do show qos policy statistics gigabitethernet 1/0/20

Механизм работы полисера

Механизм полисера реализован в виде Single Rate Three Color Marker.

У такого механизма есть два ведра токенов (первое conform, второе exceed), каждое из которых имеет свой размер. Conform ведро наполняется токенами определенным размером с течением времени. Ведро exceed наполняется излишками токенов ведра conform.

Image Added

Обрабатываемый ЕСР трафик забирает из корзин токены размером соотвестующим размеру пакета. Если размер пришедшего пакета покрывает токены ведра conform, то пакет окрасится в “зелёный” и для пакета применится действие соответствующие настройке conform-action. Если токенов в первом ведре не хватило, но есть достаточно токенов в ведре exceed, то пакет окрасится в “жёлтый” и применится действие exceed-action. Если токенов недостаточно в обоих корзинах, то пакет будет окрашен в “красный” и применится действие violate-action. Действия  exceed-action, violate-action определяются одним из следющих вариантов : пропустить (permit), отбросить (deny) или пометить (set cos, set dscp).