...
В расширенном режиме на маршрутизаторах ESR классификация поступающего трафика возможна как на входящем, так и на исходящем интерфейсах.
| Шаг | Описание | Команда | Ключи | |||||
|---|---|---|---|---|---|---|---|---|
| 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 | Задать значение кода IP Precedence, которое будет установлено в IP-пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями | IP Precedence DSCP и CoS) (при необходимости перемаркировки). | esr(config-class-map)# | match dscp <DSCP>set ip-precedence <IPP> | <IPP> | <DSCP> – значение кода | DSCPIP Precedence, принимает значения [0.. | 637]. |
68 | Задать значение кода IP Precedence802.1p приоритета, которое будет установлено в IP- пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями DSCP и CoSIP Precedence) (при необходимости перемаркировки). | esr(config-class-map)# set ip-precedence <IPP>сos <COS> | <COS> – значение 802.1p приоритета<IPP> – значение кода IP Precedence, принимает значения [0..7].7 | |||||
9 | Задать значение 802.1p приоритетакода DSCP, которое будет установлено в IP-пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями DSCP и IP Precedence и CoS) (при необходимости перемаркировки). | esr(config-class-map)# set сos <COS><DSCP> | <COS> <DSCP> – значение 802.1p приоритетакода DSCP, принимает значения [0..763]. | |||||
810 | Создать политику QoS и осуществить переход в режим настройки параметров политики. | esr(config)# policy-map <NAME> esr(config-policy-map)# | <NAME> – имя создаваемой политики, задается строкой до 31 символа. | |||||
911 | Задать описание политики QoS (не обязательно). | esr(config-policy-map)# description <description> | <description> – до 255 символов. | |||||
1012 | Установить гарантированную полосу пропускания исходящего трафика для политики в целом. | esr(config-policy-map)# shape average { <BANDWIDTH> | percent <BANDWIDTH_PERCENT> } [BURST] | <BANDWIDTH> – гарантированная полоса трафика в Кбит/с, принимает значение [64..10000000]; <BANDWIDTH_PERCENT> – гарантированная полоса трафика в %, рассчитывается от (в порядке от более приоритетного к менее приоритетному значению):
Принимает значение [1..100]. <BURST> – размер сдерживающего порога в Кбайт, принимает значение [128..16000]. По умолчанию 128 Кбайт. | 11|||||
| 13 | Включить работу полисера (при необходимости). | 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-корзины, принимает значения <CONFORM-ACTION> – действие, которое необходимо выполнить с пакетом, если исчерпаны токены conform-корзины, но имеются токены excess-корзины, принимает значения { permit | deny | set-cos <COS> | set-dscp <DSCP>}; <EXCEED-ACTION> – действие, которое необходимо выполнить с пакетом, для которого исчерпаны токены excess-корзины, принимает значения <COS> – классификатор обслуживания в теге 802.1q пакета, принимает значения [0..7]; <DSCP> – значение кода DSCP, принимает значения [0..63]. | |||||
1214 | Включить автоматическое распределение полосы пропускания между классами, в которых нет настройки полосы пропускания, включая класс по умолчанию (в случае необходимости). | esr(config-policy-map)# shape auto-distribution | ||||||
1315 | Включить указанный QoS-класс в политику и осуществить переход в режим настройки параметров класса в рамках политики. | esr(config-policy-map)# class <NAME> | <NAME> – имя привязываемого класса, задается строкой до 31 символа. При указании значения «class-default» в данный класс попадает трафик, не классифицированный на входе. | |||||
1416 | Включить политику QoS в класс QoS для создания иерархического QoS. | esr(config-class-policy-map)# service-policy <NAME> | <NAME> – имя политики, задается строкой до 31 символа. Вкладываемая политика должна быть уже создана. | |||||
1517 | Установить гарантированную полосу пропускания исходящего трафика для класса в рамках политики (при необходимости). | esr(config-class-policy-map)# shape average { <BANDWIDTH> | percent <BANDWIDTH_PERCENT> } [BURST] | <BANDWIDTH> – гарантированная полоса трафика в Кбит/с, принимает значение [64..10000000]; <BANDWIDTH_PERCENT> – гарантированная полоса трафика в %, рассчитывается от (в порядке от более приоритетного к менее приоритетному значению):
Принимает значение [1..100]. <BURST> – размер сдерживающего порога в Кбайт, принимает значение [4..16000]. По умолчанию 128 Кбайт. | |||||
1618 | Установить разделяемую полосу пропускания исходящего трафика для определенного класса. Данную полосу класс может занять, если менее приоритетный класс не занял свою гарантированную полосу (при необходимости). | 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 Кбайт. | 17|||||
| 19 | Включить работу полисера для определенного класса (при необходимости). | 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-ACTION> – действие, которое необходимо выполнить с пакетом, для которого имеются токены conform-корзины, принимает значения <CONFORM-ACTION> – действие, которое необходимо выполнить с пакетом, если исчерпаны токены conform-корзины, но имеются токены excess-корзины, принимает значения { permit | deny | set-cos <COS> | set-dscp <DSCP>}; <EXCEED-ACTION> – действие, которое необходимо выполнить с пакетом, для которого исчерпаны токены excess-корзины, принимает значения <COS> – классификатор обслуживания в теге 802.1q пакета, принимает значения [0..7]; <DSCP> – значение кода DSCP, принимает значения [0..63]. | |||||
1820 | Определить режим работы класса (не обязательно). | esr(config-class-policy-map)# mode <MODE> | <MODE> – режим класса:
Значение по умолчанию: FIFO. | |||||
1921 | Задать приоритет класса в WRR-процессе (при необходимости). | esr(config-class-policy-map)# priority class <PRIORITY> | <PRIORITY> – приоритет класса в WRR-процессе, принимает значения [1..8]. Классы с наибольшим приоритетом обрабатываются в первую очередь. | |||||
2022 | Перевести класс в режим StrictPriority и задать приоритет класса (при необходимости). | esr(config-class-policy-map)# priority level <PRIORITY> | <PRIORITY> – уровень приоритета в StrictPriority-процессе, принимает значения [1..8]. Классы с наибольшим приоритетом обрабатываются в первую очередь. Значение по умолчанию: класс работает в режиме WRR, приоритет не задан. | |||||
| 23 | Задать значение кода DSCP, которое будет установлено в IP-пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями IP Precedence и CoS) (при необходимости перемаркировки параметрами класса в рамках политики). | esr(config-class-map)# match dscp <DSCP> | <DSCP> – значение кода DSCP, принимает значения [0..63]. | 22|||||
24 | Задать значение кода IP Precedence, которое будет установлено в IP-пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями DSCP и CoS) (при необходимости перемаркировки параметрами класса в рамках политики). | esr(config-class-map)# set ip-precedence <IPP> | <IPP> – значение кода IP Precedence, принимает значения [0..7]. | |||||
25 | Задать значение 802.1p приоритета, которое будет установлено в пакетах, соответствующих конфигурируемому классу (невозможно назначать одновременно с полями DSCP и IP Precedence) (при необходимости перемаркировки параметрами класса в рамках политики). | esr(config-class-map)# set сos <COS> | <COS> – значение 802.1p приоритета, принимает значения [0..7]. | |||||
2426 | Определить предельное количество виртуальных очередей (не обязательно). | esr(config-class-policy-map)# fair-queue <QUEUE-LIMIT> | <QUEUE-LIMIT> – предельное количество виртуальных очередей, принимает значения в диапазоне [16..4096]. Значение по умолчанию: 16. | |||||
2527 | Определить предельное количество пакетов для виртуальной очереди (не обязательно). | esr(config-class-policy-map)# queue-limit <QUEUE-LIMIT> | <QUEUE-LIMIT> – предельное количество пакетов в виртуальной очереди, принимает значения в диапазоне [2..4096]. Значение по умолчанию: 127. | |||||
2628 | Определить параметры RED (Random Early Detection) (при необходимости). | esr(config-class-policy-map)# random-detect <LIMIT> <MIN> <MAX> <APS> <APS-NUM> <PROBABILITY> | <LIMIT> – предельный размер очереди в байтах, принимает значения в диапазоне [1..1000000]; При указании значений должны выполняться следующие правила: <MAX>> 2 * <MIN> | |||||
2729 | Определить параметры GRED (Generalized Random Early Detection) (при необходимости). | esr(config-class-policy-map)# random-detect queue <QUEUE-NUM> | <QUEUE-NUM> – номер очереди [1..16]; При указании значений должны выполняться следующие правила: <MAX>> 2 * <MIN> | 28|||||
| 30 | Определить очередь по умолчанию для механизма 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]. | |||||
2931 | Включить протокол компрессии tcp-заголовков для трафика отдельного класса (при необходимости). | esr(config-class-policy-map)# compression header ip tcp | ||||||
| 32 | Включить сервис QoS на интерфейсе/туннеле/сетевом мосту. | esr(config-if-gi)# qos enable | ||||||
3133 | Назначить политику QoS на сконфигурируемом интерфейсе/туннеле/сетевом мосту для классификации входящего (input) или приоритизации исходящего (output) трафика. | esr(config-if-gi)# service-policy { input | output } <NAME> | <NAME> – имя QoS-политики, задаётся строкой до 31 символа. |
...
Классифицировать приходящий трафик по подсетям (10.0.11.0/24, 10.0.12.0/24), произвести маркировку по DSCP (38 и 42) и разграничение по подсетям (40 Мбит/с и 60 Мбит/с), ограничить общую полосу до 250 Мбит/с, остальной трафик обрабатывать через механизм SFQ.
| Scroll Pagebreak |
|---|
Решение:
Настроим списки доступа для фильтрации по подсетям, выходим в глобальный режим конфигурации:
...
Для просмотра статистики используется команда:
| Блок кода |
|---|
esr# do show qos policy statistics gigabitethernet 1/0/20 |
Scroll Pagebreak
Механизм работы работы полисера
Механизм полисера реализован по алгоритму односкоростного трехцветного полисера (Single Rate Three Color Marker/Policers).
...
