В этой серии статей я расскажу о настройке QoS на коммутаторах 2960, 3560 и 3750. Объединил я их потому, что архитектура QoS и возможности у них примерно одинаковы (родоначальником явился 3750, потом были выпущены 2960 и 3560). Поскольку 3560 и 3750 – свичи 3-го уровня, они умеют немного больше, чем 2960.
Как-то в личной переписке с Сержем (Fedia) я сказал, что следующая моя статья на Антициске будет называться «Как настроить QoS на 3750 и не свихнуться» 🙂 Пусть теперь это будет кодовым названием серии статей – отдельно поговорим о классификации и маркировке, системе очередности, полисинге и VLAN-based QoS на 3560/3750.
Несмотря на то, что 2960 — коммутатор уровня доступа и «наследник» 2950, умеет он значительно больше своего предшественника. Во первых, он понимает все 64 возможных значения DSCP, а не 13 выборочных, как 2950. Например, таблица преобразования DSCP -> CoS выглядит так:
sw#sh mls qos maps dscp-cos
Dscp-cos map:
d1 : d2 0 1 2 3 4 5 6 7 8 9
---------------------------------------
0 : 00 00 00 00 00 00 00 00 01 01
1 : 01 01 01 01 01 01 02 02 02 02
2 : 02 02 02 02 03 03 03 03 03 03
3 : 03 03 04 04 04 04 04 04 04 04
4 : 05 05 05 05 05 05 05 05 06 06
5 : 06 06 06 06 06 06 07 07 07 07
6 : 07 07 07 07
Например, во что преобразуется DSCP 46? Смотрим четверочку по горизонтали, шестерку по вертикали, получаем CoS 5. Просто как 101110 🙂
В 2950 любая маркировка приводилась к «общему знаменателю» — Internal DSCP. Здесь общий знаменатель называется QoS Label – и он может быть как DSCP, так и CoS – этакий двуликий Янус. Это зависит от того, какое значение (DSCP или CoS) мы будем использовать для распределения пакетов по исходящим очередям и порогам сброса. Теперь в каждой исходящей очереди мы можем настроить по 3 порога сброса для разных значений маркировок – получится WTD – взвешенный tail-drop.
Семейство 2960/3560/3750 понимает IP Precedence (есть таблички преобразования IPP -> DSCP, и можно писать match ip precedence в класс-мапе). Еще есть DSCP-мутация – не пугайтесь, это всего лишь преобразование одного значения DSCP в другое значение DSCP:
sw#sh mls qos maps dscp-mutation
Dscp-dscp mutation map:
Default DSCP Mutation Map:
d1 : d2 0 1 2 3 4 5 6 7 8 9
---------------------------------------
0 : 00 01 02 03 04 05 06 07 08 09
1 : 10 11 12 13 14 15 16 17 18 19
2 : 20 21 22 23 24 25 26 27 28 29
3 : 30 31 32 33 34 35 36 37 38 39
4 : 40 41 42 43 44 45 46 47 48 49
5 : 50 51 52 53 54 55 56 57 58 59
6 : 60 61 62 63
Исходящий DSCP также ищем на пересечении строки и столбца.
В class-map теперь можно писать несколько условий и ставить match-all или match-any.
Классификация по аксесс-листам теперь понимает диапазон портов (то есть создаем ACL с range и скармливаем его класс-мапу – match access-group <номер ACL>
Появились входящие очереди, и поменялся алгоритм работы исходящих очередей – теперь это SRR (Shaped Round Robin).
Напоследок — очень важный момент, который иногда забывается – на всех коммутаторах семейства надо писать в глобальном конфиге mls qos – иначе весь QoS будет настроен, но работать он не будет.
Дисклеймер: все фичи и настройки проверялись на 2-х представителях семейства (2960 и 3750) с версией IOS 12.2(55)SE1.
Итак, кратенький обзор закончен, теперь:
Про классификацию и маркировку,
Про полисинг (coming soon),
Про 3560/3750 и VLAN-based QoS (coming soon).
--
С уважением,
Евгений Киселев aka Stratosphere
Метки: 2960, 3560, 3750, QoS, качество обслуживания, коммутаторы
Опубликовано: Маршрутизаторы и коммутаторы
Евгений, спасибо большое за серию статей.
Это как раз та тема, до которой все никак по серьезному не получалось добраться самому) Вы сильно облегчили труд. С нетерпением жду продолжения.
Спасибо за оценку! продолжение вот уже совсем скоро-))
Евгений есть практический вопрос по QOS на коммутаторах, как с вами можно связаться?
Приветствую!
ответил в почту.
«Например, во что преобразуется DSCP 46? Смотрим четверочку по горизонтали, шестерку по вертикали, получаем CoS 5»
а не наоборот?
Приветствую!
если бы было сначала по вертикали, было бы так: DSCP 95 преобразуется в CoS 7. Но ведь у нас нет DSCP 95, зато есть DSCP 59! 🙂
Последнее валидное значение DSCP (если смотреть сначала по горизонтали, а потом по вертикали) как раз получается 63.
Здравствуйте!
Немного не по теме Вашего поста, но все же 🙂
Имеется cat 3550, на нем:
interface FastEthernet0/X
switchport access vlan Y
switchport trunk encapsulation dot1q
wrr-queue bandwidth 25 10 25 40
wrr-queue cos-map 1 0 1
wrr-queue cos-map 2 4
wrr-queue cos-map 3 3 5
wrr-queue cos-map 4 2 6 7
получается, что в 4 выходные очереди становятся пакеты с назначенными значениями CoS в соответствии с cos-map, это понятно.
Вопрос: очереди являются выходными относительно именно этого конкретного сконфигурированного порта, то есть все что с него «уйдет» в сторону конечного устройства (в данном случае) будет обработано согласно конфигу?
При недоверенном режиме на порту с входящих пакетов не снимается метка CoS (C2960). Свитч для теста использую как трубу. Думала, что на выходе будет 0, ан нет. Воз и ныне там. То есть метка. Можете помочь? Пока подробностями засорять пост не берусь