Поговорим теперь о классификации и маркировке на коммутаторах этого семейства. Круговорот маркировок там выглядит так:
Большая часть настроек классификации и маркировки наследуется от 2950 плюс новые возможности. Если вы не читали мою предыдущую статью по QoS на 2950, рекомендую прочесть в качестве базы.
Порт можно настроить в один из следующих режимов доверия:
- Безусловное доверие CoS (с перемаркировкой DSCP)
- Безусловное доверие CoS (с сохранением DSCP)
- Доверие CoS при наличии IP-телефона (Extended Trust Boundary)
- Безусловное доверие DSCP
- Безусловное доверие IP Precedence
- Недоверенный режим (режим работы по умолчанию)
Как мы видим, возможные режимы доверия и их настройки наследуются от 2950, плюс еще появилась возможность доверять IP Precedence (есть соответствующая табличка преобразования IP Precedence -> DSCP)
Посмотреть, какой режим доверия настроен, можно с помощью команды:
cat3750#sh mls qos int gi1/0/1
Актуальную статистику круговорота маркировок показывает команда
cat3750#sh mls qos int gi1/0/1 statistics
GigabitEthernet1/0/1 (All statistics are in packets)
dscp: incoming
-------------------------------
0 - 4 : 0 0 0 0 0
5 - 9 : 0 0 0 10970 0
10 - 14 : 0 0 0 0 0
15 - 19 : 0 0 0 0 0
20 - 24 : 0 0 0 0 0
25 - 29 : 0 0 0 0 0
30 - 34 : 0 0 0 0 0
35 - 39 : 0 0 0 0 0
40 - 44 : 0 0 0 0 0
45 - 49 : 0 0 0 0 0
50 - 54 : 0 0 0 0 0
55 - 59 : 0 0 0 0 0
60 - 64 : 0 0 0 0
dscp: outgoing
-------------------------------
0 - 4 : 19886 0 0 0 0
5 - 9 : 0 0 0 0 0
10 - 14 : 0 0 0 0 0
15 - 19 : 0 0 0 0 0
20 - 24 : 0 0 0 0 0
25 - 29 : 0 0 0 0 0
30 - 34 : 0 0 0 0 0
35 - 39 : 0 0 0 0 0
40 - 44 : 0 0 0 0 0
45 - 49 : 0 0 0 0 0
50 - 54 : 0 0 0 0 0
55 - 59 : 0 0 0 0 0
60 - 64 : 0 0 0 0
cos: incoming
-------------------------------
0 - 4 : 0 33605 0 3 0
5 - 7 : 0 0 112
cos: outgoing
-------------------------------
0 - 4 : 35721 0 0 0 0
5 - 7 : 0 0 0
output queues enqueued:
queue: threshold1 threshold2 threshold3
-----------------------------------------------
queue 0: 0 0 0
queue 1: 35722 0 3
queue 2: 0 0 0
queue 3: 0 0 0
output queues dropped:
queue: threshold1 threshold2 threshold3
-----------------------------------------------
queue 0: 0 0 0
queue 1: 0 0 0
queue 2: 0 0 0
queue 3: 0 0 0
Policer: Inprofile: 0 OutofProfile: 0
Как это читать применительно к маркировкам? На вход идет трафик, промаркированный DSCP 8 (10970 пакетов). На выходе того же порта – трафик с нулевым DSCP (19886 пакетов). Очистить можно командой
cat3750#clear mls qos int gi1/0/1 statistics
Дефолтные настройки порта (на примере 3750):
cat3750#sh mls qos int gi1/0/1
GigabitEthernet1/0/1
trust state: not trusted
trust mode: not trusted
trust enabled flag: ena
COS override: dis
default COS: 0
DSCP Mutation Map: Default DSCP Mutation Map
Trust device: none
qos mode: port-based
Как видим, коммутатор не доверяет входящей маркировке, и назначает Default CoS=0. Эксперименты с железом показали, что вынутый из коробки и воткнутый в сеть чистенький свеженький коммутатор не портит маркировку проходящего трафика – ведь там же не настроен mls qos! Но стоит в глобальном конфиге вколотить mls qos, как на выходе значения СoS и DSCP будут обнуляться, ибо нефиг 🙂
Расширенная граница доверия (распознавание IP-телефона Cisco по протоколу CDPv2) работает так же, как и в 2950. На порту надо настроить:
cat3750 (config-if)#mls qos trust device cisco-phone
cat3750 (config-if)#mls qos trust cos
Коммутатор будет доверять значению CoS только при наличии телефона.
cat3750#sh mls qos int gi1/0/1
GigabitEthernet1/0/1
trust state: not trusted
trust mode: trust cos
trust enabled flag: dis
COS override: dis
default COS: 0
DSCP Mutation Map: Default DSCP Mutation Map
Trust device: cisco-phone
qos mode: port-based
Все верно, телефона нет, CoS обнуляется, а вслед за ним и DSCP (по таблице преобразования CoS -> DSCP).
Теперь настроим безусловное доверие CoS (mls qos trust cos без всяких там device), и подадим на вход трафик, промаркированный, например, CoS 5 и DSCP 46. Видим, что DSCP тоже меняется – по таблице (выходное значение 40 – наследство 2950). Но для настройки этого поведения в отличие от 2950 используется другая команда:
cat3750(config)#no mls qos rewrite ip dscp
Тогда порт будет работать в режиме доверия CoS, но DSCP при этом меняться не будет.
Теперь ставим порт в недоверенный режим, и ставим default CoS, отличное от 0:
cat3750 (config-if)#no mls qos trust
cat3750 (config-if)#mls qos cos 3
На выходе опять нули на обоих уровнях (CoS и DSCP) – почему? Ну конечно – забыли сделать
cat3750 (config-if)#mls qos cos override
Только при наличии этой команды он будет назначать на весь входящий трафик дефолтный CoS 3, и вычислять соответственно по таблице DSCP=24 (mls qos rewrite ip dscp снова включен, как по умолчанию).
cat3750#sh mls qos int gi1/0/1
GigabitEthernet1/0/1
trust state: cos override
trust mode: cos override
trust enabled flag: ena
COS override: ena
default COS: 3
DSCP Mutation Map: Default DSCP Mutation Map
Trust device: none
qos mode: port-based
Безусловное доверие DSCP настраивается так же, как и в 2950:
cat3750 (config-if)#mls qos trust dscp
Безусловное доверие IP Precedence (и преобразование в DSCP по табличке):
cat3750 (config-if)#mls qos trust ip-precedence
Теперь включим на полную мощь генную инженерию 2960/3560/3750 – заставим DSCP мутировать 🙂 Сначала в глобальном конфиге пишем DSCP-mutation map:
cat3750(config)#mls qos map dscp-mutation TEST 24 to 25
cat3750(config)#mls qos map dscp-mutation TEST 8 to 9
Смотрим, что получилось:
cat3750#sh mls qos map dscp-mutation
Dscp-dscp mutation map:
TEST:
d1 : d2 0 1 2 3 4 5 6 7 8 9
---------------------------------------
0 : 00 01 02 03 04 05 06 07 09 09
1 : 10 11 12 13 14 15 16 17 18 19
2 : 20 21 22 23 25 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, не охваченные нашим вниманием, будут мутировать сами в себя, то есть не будут меняться.
Потом ставим порт в режим доверия DSCP и вешаем мутационную мапу:
cat3750 (config-if)#mls qos trust dscp
cat3750 (config-if)#mls qos dscp-mutation TEST
Смотрим настройки QoS на порту:
cat3750#sh mls qos int gi1/0/1
GigabitEthernet1/0/1
trust state: trust dscp
trust mode: trust dscp
trust enabled flag: ena
COS override: dis
default COS: 0
DSCP Mutation Map: TEST
Trust device: none
qos mode: port-based
Произвольная классификация и маркировка c помощью классов и политик делается принципиально так же, как на 2950 EI, но с расширенными возможностями.
Классифицировать можно:
- По ACL (поддерживаются ACL с диапазоном портов)
- По входящему интерфейсу (только на 2960/3750 – для VLAN-based QoS)
- По DSCP (IPv6 — сюда же)
- По IP Precedence (IPv6 — сюда же)
В политике с трафиком определенного класса можно делать следующее:
- Полисить, то есть ограничивать скорость (об этом отдельно),
- Выставлять маркировку DSCP и IP Precedence (пишите set dscp или set precedence – это повлияет на IP обеих версий),
- Менять режим доверия (CoS, DSCP или IP Precedence) для трафика данного класса.
- На 3560/3750 можно делать иерархические политики при настройке VLAN-based QoS – об этом позже.
Коллеги, если есть вопросы/уточнения/дополнения/исправления/пожелания – пишите сюда или в личку. Следующая статья – про настройку очередей.
Вернуться в начало цикла статей по QoS на 2960/3560/3750
--
С уважением,
Евгений Киселев aka Stratosphere
Метки: 2960, 3560, 3750, QoS, качество обслуживания, коммутаторы
Опубликовано: Маршрутизаторы и коммутаторы
» Оставить комментарий
Вы должны войти чтобы прокомментировать.