QoS в ProCurve

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

Автор: Наташа Самойленко

Содержание

[править] Основные понятия

  • Quality of Service (QoS)
  • Class of Service (CoS)
  • Type of Service (ToS)
  • Differentiated Services Code Point (DSCP) — RFC 2474
  • Differentiated Services (DiffServ) — RFC 2475 (An Architecture for Differentiated Services)

[править] Терминология

Политика DSCP

[править] Принципы работы на оборудовании ProCurve

Note-icon.gif

В коммутаторах 3500, 5400 и 8200, начиная с версии K.14.01, появилась новая возможность по классификации трафика с помощью специальной политики (classifier-based policy).

Политика QoS на коммутаторах может быть задана двумя способами:

  • настроена глобально с помощью глобальных критериев классификации,
  • настроена с помощью политики на основе классификатора (classifier-based. Не на всех моделях коммутаторов)

Icon-caution.gif

Очередь, которая соответствует пакетам, определяется на основании приоритета 802.1p.

Если пакет маркирован на 3 уровне согласно стандарту DiffServ, то, для того чтобы поставить ему в соответствие очередь, используется политика DSCP. В ней должны быть назначены соответствия между значением поля DSCP и 802.1p. А значение 802.1p, в свою очередь, будет определять то, в какую очередь попадет пакет.

На моделях 3500, 5400 и 8200 некоторые соответствия созданы по умолчанию. Эти соответствия называются DSCP map.

Поэтому во всех настройках, которые описываются далее, предполагается, что до использовании конкретного значения маркировки DSCP, создается соответствие для этого значения в DSCP map (если его нет по умолчанию).

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

[править] Глобальные критерии классификации

Глобальные настройки применяются ко всему трафику.

В качестве глобальных критериев классификации могут использоваться:

  • IP-адрес отправителя и получателя,
  • Маркировка на канальном уровне 802.1p,
  • Протокол 3го уровня,
  • Номера TCP/UDP портов,
  • Номер VLAN,
  • Входящий порт коммутатора,
  • Layer 3 IPv6 Traffic Class

Note-icon.gif

Рекомендуется использовать минимальное количество глобальных правил QoS. Увеличение количества правил повышает сложность возможных результатов и расходует ресурсы коммутатора.

Если настроено несколько глобальных критериев классификации, то они просматриваются в следующем порядке:

  1. Номера TCP/UDP портов
  2. IP-адрес отправителя и получателя
  3. Значение IP precedence
  4. Значение DSCP
  5. Протокол 3го уровня
  6. Номер VLAN
  7. Входящий порт коммутатора
  8. Маркировка на канальном уровне 802.1p

Когда пакет совпадает по нескольким критериям, то применяется маркировка только для самого приоритетного критерия, из всех совпавших.

Icon-caution.gif

Политика на основе классификатора, после применения на интерфейсе или VLAN имеет больший приоритет, чем глобальные настройки. Поэтому, если настроена политика на основе классификатора, то она перебивает:

  • глобальные настройки QoS,
  • глобальные настройки rate-limit.

Типы маркировок, которые поддерживаются при использовании глобальных критериев классификации:

Глобальный критерий классификации Только приоритет 802.1p DSCP policy: DSCP и 802.1p
Номера TCP/UDP портов Поддерживается Поддерживается
IP-адрес отправителя и получателя Поддерживается Поддерживается
Значение IP precedence Поддерживается* Не поддерживается
Значение DSCP Поддерживается Поддерживается
Протокол 3го уровня Поддерживается Не поддерживается
Номер VLAN Поддерживается Поддерживается
Входящий порт коммутатора Поддерживается Поддерживается

[править] Классификация по номерам TCP/UDP портов

Можно создать 50 правил (в новых версиях больше, проверить можно командой sh qos resources) классификации по TCP/UDP портам.

Указанному TCP/UDP порту можно поставить в соответствие:

  • 802.1p
  • Политику DSCP (присвоить новое значение DSCP и соответствующий приоритет 802.1p)

Для конкретного TCP/UDP порта можно указать только один из параметров (802.1p или политику DSCP). Но разным портам могут быть присвоены разные параметры.

Правило с указанием TCP/UDP порта будет касаться как трафика отправленного с указанного порта или диапазона, так и трафику отправленного на указанный порт или диапазон.

[править] Настройка приоритета 802.1p

Синтаксис команды для задания приоритета 802.1p:

sw(config)# qos <udp-port|tcp-port> [ipv4|ipv6|ip-all] <port-number|range start end> priority <0-7>

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

  • может использоваться только 6 политик с диапазонами портов (реально получилось создать 7 диапазонов). Если в ACL используются диапазоны портов, то это значение ещё меньше.
  • Фактически одно созданное правило с диапазоном портов забирает два правила из ресурсов коммутатора.
  • Если количество правил превысило допустимое, будет отображена ошибка: Unable to add this QoS rule. Maximum number of range resources reached.

[править] Настройка политики DSCP

Когда коммутатор присваивает политику DSCP, он выполняет такие действия:

  1. Выбирает входящие IP-пакеты на основании TCP/UDP портов и правил, которые им соответствуют.
  2. Переписывает входящее значение поля DSCP соответствующим настроенным значением.
  3. Присваивает приоритет 802.1p, который соответствует новому значению DSCP.
  4. Передает пакет через очередь, которая соответствует присвоенному значению 802.1p.

Синтаксис команды для задания приоритета DSCP:

sw(config)# qos <udp-port | tcp-port> <port-number | range start end> dscp <codepoint>

[править] Просмотр правил

Просмотреть правила классификации, которые используют в качестве критерия TCP/UDP порты:

sw(config)# sh qos tcp-udp-port-priority 

  TCP/UDP port based priorities

           | IP Packet Application            |                   
  Protocol | Type      Port        Apply rule | DSCP   Priority   
  -------- + --------- ----------- ---------- + ------ -----------
  UDP      | IPV4      23          Priority   |        4          
  UDP      | IPV4      1024-2000   Priority   |        1          
  TCP      | IPV4      22          Priority   |        7          
  UDP      | IPV4      2024-3000   Priority   |        1          
  UDP      | IPV4      3024-4000   Priority   |        1          
  UDP      | IPV4      4024-5000   Priority   |        1          
  UDP      | IPV4      5024-6000   Priority   |        1          
  UDP      | IPV4      7024-8000   Priority   |        1          
  UDP      | IPV4      8024-9000   Priority   |        1          
  TCP      | IPV4      23          DSCP       | 001010 1          
  TCP      | IPV4      80          DSCP       | 101110 7          

[править] Классификация по IP-адресу отправителя или получателя

Можно создать 300 правил классификации по IP-адресам. Поддерживаются IPv4 и IPv6 адреса.

Указанному IP-адресу можно поставить в соответствие:

  • 802.1p
  • Политику DSCP (присвоить новое значение DSCP и соответствующий приоритет 802.1p)

Для конкретного IP-адреса можно указать только один из параметров (802.1p или политику DSCP). Но разным IP-адресам могут быть присвоены разные параметры.

Правило с указанием IP-адреса будет касаться как трафика отправленного с указанного адреса, так и трафику отправленного на указанный адрес.

[править] Настройка приоритета 802.1p

Синтаксис команды для задания приоритета 802.1p:

sw(config)# qos device-priority <address/mask> priority <0-7>

[править] Настройка политики DSCP

Когда коммутатор присваивает политику DSCP, он выполняет такие действия:

  1. Выбирает входящие IP-пакеты на основании IP-адресов и правил, которые им соответствуют.
  2. Переписывает входящее значение поля DSCP соответствующим настроенным значением.
  3. Присваивает приоритет 802.1p, который соответствует новому значению DSCP.
  4. Передает пакет через очередь, которая соответствует присвоенному значению 802.1p.

Синтаксис команды для задания приоритета DSCP:

sw(config)# qos device-priority <address/mask> dscp <codepoint>

[править] Просмотр правил

Просмотреть правила классификации, которые используют в качестве критерия IP-адреса устройств:

sw(config)# sh qos device-priority 

  Device priorities

  Device Address                                Apply rule | DSCP   Priority   
  --------------------------------------------  ---------- + ------ -----------
  10.0.1.1                                      Priority   |        2          
  10.0.1.2                                      DSCP       | 101000 5          
  10.0.1.5                                      Priority   |        7          
  10.0.1.10                                     DSCP       | 101110 7          

[править] Классификация по значению IP precedence

Классификация по IP precedence не требует дополнительных настроек политики DSCP, так как каждому значению IP precedence поставлено в соответствие значение 802.1p и очередь.

Таблица соответствий значений IP precedence и 802.1p:

Значение IP precedence Соответствующий приоритет 802.1p
000 1
001 2
010 0
011 3
100 4
101 5
110 6
111 7

[править] Значение DSCP

[править] Протокол 3го уровня

[править] Классификация по номерам VLAN

Указанному VLAN'у можно поставить в соответствие:

  • 802.1p
  • Политику DSCP (присвоить новое значение DSCP и соответствующий приоритет 802.1p)

Note-icon.gif

Глобальные критерии классификации проставляют приоритет только пакетам, которые получены в статических VLAN. Пакеты, которые были получены в динамических VLAN, созданных GVRP, не маркируются глобальными критериями классификации.

[править] Входящий порт коммутатора

[править] Политика на основе классификатора (Classifier-based policy)

Политика на основе классификатора позволяет применять дополнительные действия и применять их для входящего трафика к интерфейсу или VLAN. Кроме того, политика позволяет более гибко использовать различные критерии классификации, в том числе, несколько критериев одновременно.

В качестве критериев в политике на основе классификатора могут использоваться (начиная с версии K.14.01):

  • IP-адрес отправителя (IPv4 и IPv6),
  • IP-адрес получателя (IPv4 и IPv6),
  • IP-протокол (например, ICMP или SNMP),
  • Значение IP precedence,
  • Значение DSCP,
  • Номера TCP/UDP портов,
  • Номер VLAN.

Возможные действия:

  • установить значение 802.1p,
  • установить значение IP precedence,
  • установить значение DSCP,
  • установить ограничение rate-limit для входящего трафика на интерфейсе и VLAN.

Icon-caution.gif

Политика на основе классификатора, после применения на интерфейсе или VLAN имеет больший приоритет, чем глобальные настройки. Поэтому, если настроена политика на основе классификатора, то она перебивает:

  • глобальные настройки QoS,
  • глобальные настройки rate-limit.

[править] Настройка общих параметров

[править] Политика DSCP (DSCP map)

По умолчанию на коммутаторах 5400, 3500, 8212 настроены такие соответствия между классами DSCP и 802.1p:

PHB Class Drop Precedence Дес. значение Traffic class Соотв. очередь
AF Class 1 001 010 10 1 1
001 100 12 1 1
001 110 14 2 2
AF Class 2 010 010 18 0 3
010 100 20 0 3
010 110 22 3 4
AF Class 3 011 010 26 4 5
011 100 28 4 5
011 110 30 5 6
AF Class 4 100 010 34 6 7
100 100 36 6 7
100 110 38 7 8
EF 101 110 46 7 8

[править] Изменение количества очередей

Изменение количества очередей (возможно только на моделях 3500, 5400, 8200):

sw1(config)# qos queue-config < 2-queues | 4-queues | 8-queues >

Просмотр информации (по умолчанию используется 8 очередей):

sw(config)# show qos queue-config 

 Outbound Port Queue Configuration

         802.1p 
 Queue  Priority  Memory %
 -----  --------  --------
   1       1         10
   2       2         10
   3       0         30
   4       3         10
   5       4         10
   6       5         10
   7       6         10
   8       7         10

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

Пример выполнения команды:

sw(config)# qos queue-config 4-queues 

 CAUTION:
 This command will execute a 'write memory', followed by
 an immediate reboot, replacing the Startup configuration 
 with the content of the current Running configuration.

 The new configuration will:
  1. Remove any previously configured 'bandwidth-min output' settings
  2. Set the new number of outbound port queues
Do you want to save current configuration [y/n/^C]?  y
Device will be rebooted, do you want to continue [y/n]?  y

После изменения количества очередей на 4:

sw# show qos queue-config 

 Outbound Port Queue Configuration

         802.1p 
 Queue  Priority  Memory %
 -----  --------  --------
   1      1-2        10
   2      0,3        70
   3      4-5        10
   4      6-7        10

[править] Выбор режима работы с полем ToS (маркировка 3го уровня)

Включить режим diff-services. Поле ToS (Type of Service) в IP-пакетах классифицируется как DSCP (анализируются 6 бит поля):

sw1(config)# qos type-of-service diff-services 

Включить режим ip-precedence. Поле ToS (Type of Service) в IP-пакетах классифицируется как IP Precedence (анализируются 3 бита поля):

sw1(config)# qos type-of-service ip-precedence 

[править] Дополнительная информация

Источник — «http://xgu.ru/wiki/QoS_%D0%B2_ProCurve»