antiCisco blogs


блоги по технологиям и оборудованию cisco от инструкторов

Опубликовано 29 Апрель , 2011

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

Большая часть настроек классификации и маркировки наследуется от 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
 

Метки: , , , , ,
Опубликовано: Маршрутизаторы и коммутаторы

 

» Оставить комментарий

Вы должны войти чтобы прокомментировать.