QOS НА КОММУТАТОРАХ CISCO.
QoS на коммутаторах Cisco.
1. Функции средств контроля качества (QoS) обслуживания коммутаторов Cisco Catalyst
2. Функции обеспечения качества обслуживания входящих данных (Ingress QoS)
2.1. Конфигурации QoS по умолчанию
2.2. Классификация и маркировка
2.2.1. Классификация и маркирование на базе портов
2.2.2. Классификация — настройка доверенных портов
2.2.3. Маркировка — настройка таблиц карт качества обслуживания (MLS QOS MAP)
2.2.4. Классификация и маркировка на базе MQC
2.3. Ограничение трафика (Policing)
2.3.1. Классификация, маркирование и ограничение трафика (действие при превышении — drop)
2.3.2. Классификация, маркирование и ограничение трафика (действие при превышении - policed-dscp-transmit)
2.4. Управление и предотвращение перегрузок
2.4.1. Формирование очередей, отбрасывание пакетов и планирование загрузки — конфигурация по умолчанию
2.4.2. Формирование очередей и планирование нагрузки
3. Функции обеспечения качества обслуживания (QoS) исходящего(egress) трафика
3.1. Команды управления качеством (QoS) для исходящей очереди
3.1.1. Конфигурация по умолчанию для egress qos
По умолчанию, в коммутаторах Cisco Catalyst контроль качества обслуживания
отключен. При отключенном QoS, все кадры
и пакеты передаются через коммутатор без изменений. Например, если кадр класса
обслуживания 5 и пакетом внутри кадра со значением DSCP, равным EF передается
коммутатору, метки класса обслуживания CoS и DSCP не изменяются. Данные отправляются
от коммутатора с теми же значениями класса обслуживания и DSCP, что и ранее.
Весь трафик, включая голосовой, доставляется с самым высоким приоритетом.
ALM-3750X-SRV#sh mls qos
QoS is disabled
QoS ip packet dscp
rewrite is enabled
После включения режима контроля качества
(QoS) обслуживания для коммутатора, некоторые функции контроля качества входной
и выходной сети включаются по умолчанию. На этой диаграмме показано
высокоуровневое представление архитектуры системы обеспечения качества
обслуживания коммутатора:
В этом разделе описаны различные способы
настройки средств качества обслуживания. В этом разделе рассматриваются
следующие темы:
·
Классификация и маркировка
·
Ограничение трафика (Policing)
2.1. Конфигурации QoS по умолчанию
Вот как коммутатор по умолчанию
обрабатывает кадры после включения QoS:
·
Кадр передается порту коммутатора, и он
непомечен (что означает, что порт — это access port и кадр принимается
коммутатором, не обладая при этом VLAN Header dot1q).
·
Коммутатор выполняет инкапсуляцию кадра
методом dot1q.
·
В состав тега кадра dot1q входят три бита,
которые называются битами приоритета 802.1p или, иначе, классом обслуживания.
Эти биты устанавливаются в значение 0.
·
После этого коммутатор определяет значение
DSCP в соответствии с таблицей CoS-DSCP. Согласно таблице, коммутатор
устанавливает значение DSCP равным 0. Значение DSCP находится в заголовке IP
пакета.
2.2. Классификация и маркировка
В коммутаторах Cisco Catalyst
классификация и маркирование уровней качества обслуживания выполняется иначе,
чем в маршрутизаторах. В маршрутизаторах Cisco можно классифицировать пакеты
при помощи:
·
MQC
·
либо на основе значения DSCP входящего пакета
·
либо на основе списка управления доступом
(ACL)
В коммутаторе Cisco Catalyst кадры можно классифицировать:
·
либо с учетом входящих значений CoS и DSCP
·
либо на основе списка управления доступом.
Настройка по входящему значению CoS и DSCP
достигается тремя различными способами:
·
Настройка каждого порта при помощи команд
интерфейса mls qos
·
Настройка на основе MQC с использованием
карты классов и карты политик
·
Настройка на базе VLAN
Можно использовать любой из этих методов, однако вместе использовать их нельзя.
При настройке порта с использованием команды service-policy input
<policy-map-name> происходит автоматическое удаление команды mls qos trust cos, .
2.2.1. Классификация и маркирование на базе портов
Иногда возникает недопонимание как
осуществляется классификация и маркировка трафика для коммутаторов Cisco
Catalyst, из-за того, что класс обслуживания CoS или значения DSCP (пакетов
внутри кадров) перемаркируются с использованием таблиц трансформаций.
Использование этих таблиц в маршрутизаторах Cisco недоступно. Функции,
связанные с использованием этих таблиц, доступны только в коммутаторах Cisco
Catalyst. Здесь я объясняю функции, которые предполагают использование этих
таблиц.
2.2.2. Классификация — настройка доверенных портов
Входящий пакет или кадр может уже обладать
меткой качества обслуживания. Могут возникнуть следующие вопросы:
·
Стоит ли доверять этой метке качества
обслуживания пакета/кадра, поступившего на порт?
·
Если к порту подключен IP-телефон и ПК, каким
меткам QoS нам доверять? Отправляемым с телефона, ПК или с обоих устройств?
В
этом разделе приводятся различные сценарии с примерами.
Параметры настройки доверия для порта
таковы:
Switch(config-if)#mls qos trust ?
cos cos keyword
device trusted device class
dscp dscp keyword
ip-precedence ip-precedence keyword
<cr>
Пример
1.
Если порт представляет собой порт доступа
(access port) или порт L3, необходимо настроить команду mls
qos trust dscp .
Нельзя использовать команду mls qos
trust cos, поскольку кадр от порта доступа или порта L3 не содержит тегов dot1q. Биты класса обслуживания CoS присутствуют только в кадрах dot1q или ISL.
interface GigabitEthernet1/0/1
description **** Layer 3 Port ****
no switchport
ip address 192.168.10.1
255.255.255.0
mls qos trust dscp
end
interface GigabitEthernet1/0/2
description **** Access Port ****
switchport access vlan 10
switchport mode access
mls qos
trust dscp
end
Пример 2.
Если
используемый порт является транковым, можно настроить:
·
либо команду mls qos
trust cos
·
либо mls
qos trust dscp
Таблица сопоставлений dscp-cos
используется для вычисления значения класса обслуживания CoS, если порт настроен на доверие DSCP. Таким же
образом, таблица сопоставлений cos-dscp используется для вычисления значения DCSP, если порт настроен на доверие
классу обслуживания CoS.
interface GigabitEthernet1/0/3
description **** Trunk Port ****
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk native vlan 5
switchport trunk allowed vlan 5,10,20,30,40,50
mls qos trust cos
interface GigabitEthernet1/0/12
description **** Cisco IP Phone ****
switchport access vlan 10
switchport mode access
switchport voice vlan 20
mls qos trust cos
spanning-tree portfast
end
!--- Cisco IP Phone использует IEEE 802.1Q фреймы
для трафика голосового VLAN.
Пример
3.
Если порт
является транковым и настроен при помощи команды mls qos trust
cos, то фреймы NATIVE VLAN будут иметь нулевые значения класса
обслуживания (CoS) и DSCP. Поскольку фреймы NATIVE VLAN не обладают тегами, а теги присваиваются только
после попадания кадра в коммутатор, коммутатор задает значение CoS по умолчанию
равным 0, а в таблице сопоставления CoS-DSCP значение DSCP также
устанавливается равным 0.
Примечание: Значение DSCP пакета, получаемого в NATIVE VLAN, будет установлено равным 0.
Можно также
настроить порт коммутатора на изменение нулевого значения класса обслуживания
по умолчанию для нетегированных кадров на любое другое в диапазоне от 0 до 7
при помощи команды mls qos cos <0-7> .
Эта команда не изменяет значений CoS для кадров, отмеченных
тегами.
Например,
порт GigabitEthernet1/0/12 настроен для как access port в VLAN 10 и передачи голосового трафика в
голосовом VLAN 20.
interface GigabitEthernet1/0/12
description **** Cisco IP Phone ****
switchport access vlan 10
switchport mode access
switchport voice vlan 20
mls qos trust cos
spanning-tree portfast
По умолчанию
компьютер не присваивает тегов отправляемым данным. Неотмеченный тегами трафик
от PC , подключенного к телефону Cisco IP Phone, проходит через телефон без
изменений, вне зависимости от состояния доверия порта доступа телефона на
коммутаторе.
Телефон
передает маркированные кадры dot1q с идентификатором голосовой VLAN 20(VID 20).
Поэтому, если порт настроен при помощи команды mls qos trust cos, он
доверяет значениям класса обслуживания кадров, отправляемых с телефона (кадры,
отмеченные тегами VID20), и обнуляет значения класса
обслуживания кадров, передаваемых от ПК (кадры, не отмеченные тегами). Затем
таблица сопоставлений CoS-DSCP обнуляет значение DSCP для пакета внутри кадра,
поскольку в таблице сопоставлений значению CoS "0" соответствует значение
DSCP "0".
Distribution1#show mls qos
maps cos-dscp
Cos-dscp map:
--------------------------------
dscp: 0 8
16 24 32 40 48 56
Distribution1#show 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, то это значение будет обнулено. При настройке
команды mls qos cos 3 для
этого порта, будет выполнена установка значения класса обслуживания CoS всех кадров от компьютера в значение "3", однако
это не изменит значение класса обслуживания CoS для кадров, передаваемых телефоном.
interface GigabitEthernet1/0/12
description **** Cisco IP Phone ****
switchport access vlan 10
switchport mode access
switchport voice vlan 20
mls qos trust cos
!--- Эта директива работает только для
непомеченного трафика поступающего на вход порта коммутатора
spanning-tree portfast
end
Если нам необходимо переопределить значения класса
обслуживания CoS для всех кадров ( как тегированных, так и нет) то нам поможет команда mls qos cos 3 override.
interface GigabitEthernet1/0/12
description **** Cisco IP Phone ****
switchport access vlan 10
switchport mode access
switchport voice vlan 20
mls qos trust cos
mls qos cos 3 override
!--- Эта директива переопределяет команду mls qos trust cos.
!--- Значение CoS 3 применяется для всех без исключения
фреймов во всех VLAN (vlan 10 и 20).
Пример 4.
Если
допустить такую ситуацию, что ПК присваивает своему кадру тег идентификатора
VLAN 20, а порт сконфигурирован следующим образом:
interface GigabitEthernet1/0/12
description **** Cisco IP Phone ****
switchport access vlan 10
switchport mode access
switchport voice vlan 20
mls qos trust cos
В этом
случае, мы имеем следующую ситуацию. Поскольку интерфейс настроен на доверие
значению класса обслуживания, весь трафик PC, получаемый через порт телефона IP Cisco Phone,
проходит через телефон без изменений. Коммутатор также доверяет и пропускает
трафик от ПК, предоставляя этому трафику тот же приоритет, что и трафику
IP-телефона. Такая конфигурация нас явно не устроит. Этого можно избежать при
помощи команды switchport priority
extend cos <cos-value> .
interface GigabitEthernet1/0/12
description **** Cisco IP Phone ****
switchport access vlan 10
switchport mode access
switchport voice vlan 20
mls qos trust cos
switchport priority extend cos 0
!--- Переписываем значения CoS для трафика PC в значение 0.
Команда switchport priority extend cos
<cos-value> выполняет настройку IP-телефона таким образом, что в нем
происходит обнуление значений класса обслуживания CoS трафика ПК.
Пример 5.
Например, если кто-то пытается реализовать
прямое подключение ПК к коммутатору и указать в кадрах dot1q данных ПК теги с
более высоким значением класса обслуживания CoS, чтобы получить более приоритетное обслуживание, то тогда
наша директива switchport priority extend cos 0 не будет работать, поскольку в разрыве уже
нет телефона, злоумышленник подключается напрямую в порт коммутатора.Этого
можно избежать при помощи указания команды mls qos trust device cisco-phone .
interface GigabitEthernet1/0/12
description **** Cisco IP Phone ****
switchport access vlan 10
switchport mode access
switchport voice vlan 20
mls qos trust cos
switchport priority extend cos 0
mls qos trust device cisco-phone
!--- Указываем что Cisco IP Phone является
единственным устройством которому мы доверяем.
Пример 6.
Например, на интерфейсе GigabitEthernet1/0/12
необходимо настроить доверие меткам класса обслуживания CoS, передаваемых от ПК. ПК подключен к VLAN 10. В этом
случае команда mls qos trust cos, не
сработает, поскольку пакет, передаваемый от ПК, не содержит необходимого
значения класса обслуживания CoS(он попросту
не тегирован). При этом фрейм имеет только значение DSCP. Коммутатор добавляет
кадр dot1q и устанавливает значение класса обслуживания CoS по умолчанию, равное 0. Затем при помощи таблицы CoS-DSCP
рассчитывается и сбрасывается в 0 значение DSCP.
Distribution1#show mls qos maps cos-dscp
Cos-dscp map:
cos: 0
1 2 3
4 5 6 7
--------------------------------
dscp: 0 8
16 24 32 40 48 56
Решить эту проблему можно двумя способами.
Первый способ — настроить классификацию и маркирование при помощи
MQC. Можно создать список управления доступом (ACL) для сопоставления трафика
ПК в зависимости от источника, IP-адреса назначения и исходных/целевых номеров
портов. После этого можно сопоставить этот список управления доступом в карте
классов. Можно создать карту политик для доверия этому типу трафика. Это
решение описывается в следующем разделе. В этом разделе описывается второй
метод.
Второй метод заключается в том, чтобы включить доверие метке DSCP
вместо метки CoS. После этого метка DSCP-CoS используется для вычисления и
установки значения класса обслуживания, которое соответствует значению DSCP.
interface GigabitEthernet1/0/12
description **** Cisco IP Phone ****
switchport mode access
switchport voice vlan 20
mls qos trust dscp
spanning-tree portfast
end
Первый метод является предпочтительным, поскольку не
рекомендуется доверять всем меткам класса обслуживания трафика.
2.2.3. Маркировка — настройка таблиц карт качества обслуживания (MLS QOS MAP)
После включения mls qos, таблицы карт создаются со
значениями по умолчанию и, затем, применяются.
Distribution1#show mls qos maps cos-dscp
Cos-dscp map:
cos: 0 1 2 3 4 5 6 7
--------------------------------
dscp: 0 8 16 24 32 40 48 56
Distribution1#show 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
Если порт настроен на доверие CoS, все входящие значения класса обслуживания становятся
доверенными, а значения DSCP перемаркируются согласно таблице сопоставления
класса обслуживания и DSCP. В соответствии с настройками сопоставления класса
обслуживания и DSCP по умолчанию, значения сопоставляются следующим образом:
Класс обслуживания (CoS)
|
DSCP (десятичное)
|
DSCP
|
0
|
0
|
По умолчанию
|
1
|
8
|
CS1
|
2
|
16
|
CS2
|
3
|
24
|
CS3
|
4
|
32
|
CS4
|
5
|
40
|
CS5
|
6
|
48
|
CS6
|
7
|
56
|
CS7
|
Интересный момент, который необходимо помнить.
Например, интерфейс GigabitEthernet1/0/12 настроен на
доверие CoS.
interface GigabitEthernet1/0/12
description **** Cisco IP Phone ****
switchport access vlan 10
switchport mode access
switchport voice vlan 20
mls qos trust cos
spanning-tree portfast
end
Телефон Cisco IP Phone отмечает полезную нагрузку значениями CoS 5 и DSCP EF при отправке трафика на коммутатор. При входе трафика в порт Gi 1/0/12, коммутатор
доверяет значению CoS. После этого, коммутатор смотрит в
таблицу COS-DSCP, которая
говорит ему о следующих соответствиях:
Distribution1#show mls qos maps cos-dscp
Cos-dscp map:
cos: 0 1 2 3 4 5 6 7
--------------------------------
dscp: 0 8 16 24 32 40 48 56
Т.е
сопоставляет значение DSCP CS5 (40) для значения CoS 5 из таблицы сопоставления класса обслуживания и
DSCP. Весь полезный голосовой трафик с классом обслуживания 5 маркируются коммутатором
значением DSCP, равным CS5. Т.е, изначально телефон промаркировал пакет
значением DSCP=EF(46), а на
выходе с коммутатора мы уже имеем CS5.
Использование этого значения нежелательно. Необходимое
значение DSCP для полезной голосовой нагрузки — DSCP EF. По умолчанию, другие
значения класса обслуживания сопоставляются значениям DSCP согласно
спецификациям RFC.
Чтобы этого избежать мы можем подкорректировать
таблицу сопоставления COS-DSCP, чтобы изменить значение DSCP, равное EF, таким
образом, что оно соответствовало CoS 5.
Distribution1(config)#mls qos map cos-dscp 0 8 16 24 32 46 48 56
!--- Значение DSCP 46 соответсвует EF и CoS
5
Теперь взглянем на нашу карту.
ALM-3750X-SRV#sh mls qos maps cos-dscp
Cos-dscp map:
cos: 0 1 2 3 4 5 6 7
--------------------------------
dscp: 0 8 16 24 32 46 48 56
Теперь трафик телефона в голосовом VLAN, будет маркироваться теми же значениями DSCP=EF, которые выставляет телефон. Если порт настроен на доверие DSCP, все входящие значения DSCP становятся доверенными, а значения COS перемаркируются согласно таблице сопоставления класса обслуживания и DSCP. В соответствии с настройками сопоставления DSCP и класса обслуживания по умолчанию, значения сопоставляются следующим образом:
Distribution1#show 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
В этом случае не требуется изменять эти значения по умолчанию!!!
Примечание: В одной сети все коммутаторы Cisco Catalyst должны обладать идентичными таблицами сопоставлений. Наличие различных таблиц в разных коммутаторах приведет к нежелательным последствиям!!!
В разделе "Классификация и маркирование" описывается метод классификации и маркировки при помощи MQC. Вместо настройки для каждого порта можно использовать MQC. Можно также маркировать входящие пакеты при помощи карты политик.
Требования
в этом примере таковы:
·
Необходимо установить доверие к значениям CoS трафика, передаваемого
IP телефоном.
·
Необходимо пометить значение DSCP для пакетов программного
приложения на ПК, подключенного к IP-телефону значением AF21.
·
Отключить доверительное отношение ко всему другому трафику идущего
с ПК.
На
диаграмме ниже показана карта политик, закрепленная на входном интерфейсе
коммутатора. Нельзя применить карту политик к исходящему трафику любого
интерфейса коммутатора Catalyst. В этом разделе не уделено особого внимания той
составляющей функции обеспечения контроля качества, которая основывается на
очередях. Раздел посвящен MQC, который применяется для интерфейса.
Комментариев нет:
Отправить комментарий