Вопрос: Примеры настройки Quality of Service (QoS)

Ответ: 
Примеры настройки Quality of Service (QoS) Скачать (PDF)
 
Сети с коммутацией пакетов на основе протокола IP не обеспечивают гарантированной пропускной способности, поскольку не обеспечивают гарантированной доставки. Для приложений, где не важен порядок и интервал прихода пакетов, время задержек между отдельными пакетами не имеет решающего значения. Для приложений чувствительных к задержкам, в сети должны быть реализованы механизмы качества обслуживания (Quality of Service, QoS).
 
Механизмы QoS, работающие непосредственно с трафиком пользователя, включают управление очередями (буферами), предотвращение перегрузки, маркировку пакетов, организацию очередей и диспетчеризацию, классификацию трафика, контроль трафика.
Наиболее распространенная модель QoS в IP-сетях — это модель DiffServ. В ее основе лежит принцип обработки пакетов на основе их класса обслуживания (class of service, CoS), указанного в IP-заголовке. 
 
Для обеспечения QoS на канальном уровне модели OSI коммутаторы поддерживают стандарт IEEE 802.1р. Стандарт IEEE 802.1р позволяет задать до 8 уровней приоритетов (от 0 до 7, где 7 — наивысший), определяющих способ обработки кадра, используя 3 бита поля приоритета тега IEEE 802.1Q.
 
Для обеспечения QoS на сетевом уровне в заголовке протокола IP предусмотрено специальное 8-битное поле. В IPv4 оно называется Type of Service (ToS), в IPv6 - Traffic Class (ТС). В модели DiffServ это поле называется полем DS (RFC 2474). Первые 6 бит поля DS называются Differentiated Services Codepoint (DSCP) и  ассоциируются с классами обслуживания. Классы определяют политику обслуживания пакета на каждом промежуточном устройстве (коммутаторе, маршрутизаторе), через которое пакет проходит. Поле DS позволяет задать до 64 (от 0 до 63) значений.
Первым шагом в реализации QoS является идентификация трафика в сети, определение важности различных типов трафика и его требований к параметрам QoS сети. Как только коммутатор получает кадр, он выполняет его классификацию с целью отнесения к одному из классов обслуживания. Кадры классифицируются на основе анализа приоритетов 802.1р. Классифицировать трафик в локальной сети можно и на основе нескольких полей пакета, например, МАС-адреса, IP-адреса, номера порта TCP/UDP, тега VLAN. Для такой классификации могут использоваться списки управления доступом (Access Control List, ACL). Результатом классификации является очередь, в которую будет помещен пакет.
 
После классификации трафика коммутатор может осуществить маркировку пакетов. Маркировка пакетов определяет способ записи или перезаписи значений битов приоритета (DSCP, 802.1p или IP Precedence) входящих пакетов. 
 
По умолчанию в коммутаторах D-Link используется следующая карта привязки пользовательских приоритетов 802.1р к аппаратным очередям:
 
Приоритет
0
1
2
3
4
5
6
7
Номер очереди
Q2
Q0
Q1
Q3
Q4
Q5
Q6
Q7
 
Очереди нумеруются от 0 (низший приоритет) до 7 (наивысший приоритет).
 
Программное обеспечение коммутаторов позволяет настраивать карты привязки приоритетов 802.1р, ToS, DSCP к очередям в соответствии с требованиями пользователей.
 
По умолчанию на коммутаторе D-Link со стандартным CLI существует следующая привязка DSCP к CoS (приоритетам 802.1p):
 
Значение CoS
0
1
2
3
4
5
6
7
Значение DSCP
0-7
8-15
16-23
24-31
32-39
40-47
48-55
56-63
 
Примечание к настройке
Рассматриваемый пример настройки подходит для следующих серий коммутаторов: DGS-1250, DGS-1510, DGS-1520, DGS-3130, DGS-3630, DXS-3610.
 
Задача 1
 
В локальной сети нужно реализовать QoS таким образом, чтобы кадры от рабочих станций без поддержки 802.1p коммутатор помещал в менее приоритетную очередь, а кадры с установленным приоритетом от серверов — в более приоритетную.
 
Задача решается настройкой приоритетов по умолчанию портов, к которым подключены рабочие станции, и пользовательской карты привязки приоритетов 802.1p к аппаратным очередям на коммутаторе второго уровня.
 
Схема сети показана на рисунке. Рабочие станции без поддержки 802.1p подключены к портам 1/0/2 и 1/0/4. Серверы с поддержкой 802.1p подключены к портам 1/0/6 и 1/0/8. Во всех исходящих с серверов кадрах установлен приоритет 802.1p равный 5. Немаркированные кадры от рабочих станций коммутатор должен помещать в очередь 3.
 
Рис. 1 Схема подключения
Настройка коммутатора
  1. Настройте приоритет по умолчанию для портов 1/0/2 и 1/0/4:
Switch# configure terminal
Switch(config)# interface range ethernet 1/0/2, 1/0/4
Switch(config-if-range)# mls qos cos 3
Switch(config-if-range)#exit
 
Примечание
По умолчанию значение приоритетов 802.1р портов равно 0 и кадры помещаются в очередь 2. Чтобы кадры помещались в очередь 3 — меняем значения приоритетов 802.1р портов 1/0/2 и 1/0/4 на 3.

  1. Настройте карту привязки приоритетов 802.1p к аппаратным очередям коммутатора, чтобы кадры с приоритетом 5 помещались в очередь 6:
Switch(config)# priority-queue cos-map 6 5
 
Примечание
Посмотреть привязку приоритетов 802.1p к аппаратным очередям можно с помощью команды show mls qos queuing.
Посмотреть значения приоритетов, которые назначаются немаркированным входящим кадрам можно с помощью команды show mls qos interface INTERFACE-ID cos, где INTERFACE-ID - идентификатор интерфейса.

 
Задача 2
 
Провайдер подключает компанию, у которой существует собственная политика маркировки DSCP. Провайдер не возражает сохранить ее, но распределять входящие пакеты по очередям он планирует в соответствии со своей собственной политикой.
 
Задача решается настройкой карты привязки DSCP к очередям приоритетов на коммутаторе доступа провайдера.
 
Схема сети показана на рисунке 2.
 
На коммутаторе доступа провайдера настраивается следующая карта привязки DSCP к очередям приоритетов:
  • пакеты со значениями DSCP 46 помещаются в самую приоритетную очередь 6 (пользовательский приоритет 802.1p 6);
  • пакеты со значениями DSCP 40 помещаются в очередь 5 (пользовательский приоритет 802.1p 5);
  • пакеты со значениями DSCP 10 помещаются в очередь 3 (пользовательский приоритет 802.1p 3);
  • пакеты со значениями DSCP 0 помещаются в очередь 2 (пользовательский приоритет 802.1p 0).
 
Рис. 2 Схема сети
  1. Настройте привязку приоритетов DSCP к очередям коммутатора. Пакеты со значениями DSCP 46 помещаются в самую приоритетную очередь 6, а пакеты со значением DSCP 10 — в очередь 3:
Switch# configure terminal
Switch(config)# interface ethernet 1/0/8
Switch(config-if)# mls qos map dscp-cos 46 to 6
Switch(config-if)# mls qos map dscp-cos 10 to 3
  1. Настройте доверие значению DSCP входящего пакета на порту:
Switch(config-if)# mls qos trust dscp
 
Примечание
Когда интерфейс настроен на доверие значению DSCP входящего пакета, оно будет использоваться для последующих операций QoS. Значение DSCP будет сопоставлено с внутренним значением CoS (приоритета 802.1p), которое будет использоваться для определения аппаратной очереди.
Привязка приоритетов DSCP  40 и 0 к очередям коммутатора соответствует значению по умолчанию.
Посмотреть состояние доверия портов можно с помощью команды show mls qos interface ethernet INTERFACE-ID trust, где INTERFACE-ID - идентификатор интерфейса.
Посмотреть карту привязки DSCP к СoS можно с помощью команды show mls qos interface ethernet INTERFACE-ID map dscp-cos.

 
Задача 3
 
Провайдер подключает компанию, у которой существует собственная политика маркировки DSCP. Провайдер не доверяет маркировке DSCP клиента и перемаркировывает пакеты на своем граничном коммутаторе.
 
Задача выбора пакетов для перемаркировки решается при помощи списков контроля доступа (Access Control List, ACL), а затем производится замена значений в поле DSCP при помощи политик обработки пакетов.
 
Схема сети показана на рисунке 3.
 
Перемаркировка выполняется по следующим правилам:
  • в пакетах с DSCP 40 (CS5) изменять значение поля на 10 (AF11);
  • в пакетах с DSCP 10 (AF11) изменять значение поля на 12 (AF12).
Рис. 3 Схема сети
  1. Создайте с помощью списков контроля доступа (ACL) классификаторы для политики QoS. Первый ACL разрешает весь трафик с DSCP 40 (CS5). Второй ACL разрешает весь трафик с DSCP 10 (AF11):
Switch# configure terminal
Switch(config)# expert access-list extended dscp_40
Switch(config-exp-nacl)# permit any any any any dscp cs5
Switch(config-exp-nacl)# exit
Switch(config)# expert access-list extended dscp_10
Switch(config-exp-nacl)# permit any any any any dscp af11
Switch(config-exp-nacl)# exit
  1. Создайте карты класса (class map) с именами remap_DSCP40 и remap_DSCP10. В класс remap_DSCP40 помещаются все IP-пакеты с DSCP 40 (CS5). В класс remap_DSCP10 помещаются все IP-пакеты с  DSCP 10 (AF11). Для классификации используются созданные ранее ACL:
Switch(config)# class-map match-all remap_DSCP40
Switch(config-cmap)# match access-group name dscp_40
Switch(config-cmap)# exit
Switch(config)# class-map match-all remap_DSCP10
Switch(config-cmap)# match access-group name dscp_10
Switch(config-cmap)# exit
 
Примечание
Класс трафика содержит одну или несколько команд match, которые используются для определения критериев соответствия пакетов определенным условиям на основе типа протокола или приложения. Если команд  match несколько, важен порядок, в котором они расположены в карте класса. Ключевое слово match-any указывает на то, что должен совпасть любой из определенных командами  match критериев. Ключевое слово match-all указывает на то, что должны совпадать все критерии. По умолчанию существует только класс class-default. В него попадают все пакеты, если другие классы не определены, или пакеты, которые не соответствуют условиям, определенным в других классах

  1. Создайте карту политики обработки пакетов (policy-map) с именем remap_DSCP. Для созданных классов remap_DSCP40 и remap_DSCP10 настройте изменение значений DSCP во входящих IP-пакетах:
Switch(config)# policy-map remap_DSCP
Switch(config-pmap)# class remap_DSCP40
Switch(config-pmap-c)# set dscp 10
Switch(config-pmap-c)# exit
Switch(config-pmap)# class remap_DSCP10
Switch(config-pmap-c)# set dscp 12
Switch(config-pmap-c)# exit
Switch(config-pmap)# class class-default
Switch(config-pmap-c)# set dscp 0
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
 
Примечание
Карта политики содержит классы трафика и политики QoS, применяемые к пакетам соответствующих классов.
Если в карту политики помещается несколько классов, порядок, в котором они в ней расположены, важен. Рекомендуется размещать классы в порядке убывания их приоритета.
Класс по умолчанию (class-default) создается всегда, когда настраивается политика QoS. Он добавляется в конец карты политики и служит для обработки трафика, который не соответствует предыдущим классам.

  1. Примените карту политики remap_DSCP к входящему на порт 1/0/8 трафику:
Switch(config)# interface ethernet 1/0/8
Switch(config-if)# service-policy input remap_DSCP
Switch(config-if)# exit
 
Примечание
Посмотреть созданные карты класса можно с помощью команды show class-map [NAME], где NAME - названием карты класса.
Посмотреть созданные карты политики можно с помощью команды show policy-map [POLICY-NAME | interface ethernet INTERFACE-ID], где POLICY-NAME - название карты политики, INTERFACE-ID - идентификатор интерфейса.