Классификация трафика
Для настройки классификации в EcoRouterOS необходимо использовать специальные карты классов, создать соответствующий профиль трафика и привязать его к экземпляру сервиса (service-instance). В таком случае входящие в service-instance пакеты могут быть классифицированы, т.е. обработаны и рассмотрены другим QoS-функционалом.
Карты классов создаются в конфигурационном режиме при помощи команды class-map <NAME>
, где NAME может быть любой строкой, но рекомендуемый формат имени — все буквы заглавные.
Пример:
ecorouter(config)# class-map VIDEO
ecorouter(config)# class-map IPVOICE
ecorouter(config)# class-map MYCLASS
При создании карты класса пользователь оказывается в режиме её конфигурирования.
Пример:
ecorouter(config)# class-map VOICE
ecorouter(config-cmap)#?
Traffic classifier configuration commands:
exit Exit from the current mode to the previous mode
help Description of the interactive help system
match Classification criteria
no Negate a command or set its defaults
set Set marking values
show Show running system information
В режиме конфигурации карты классов пользователю доступна команда match
, которая позволит выделять определённые пакеты из общего потока трафика путём указания значения поля или его наименования в заголовках Ethernet, MPLS или IP. По значениям этих полей будет осуществляться классификация трафика. Ввод нескольких правил match
будет соответствовать логической операции «ИЛИ».
Пример:
ecorouter(config-cmap)#match ?
cos IEEE 802.1Q class of service priority values
dscp Match DSCP in IP packets
exp Match MPLS experimental
ecorouter(config-cmap)#match cos ?
RANGE Enter class-of-service values: 1-3,6 or 1-3,5-7
ecorouter(config-cmap)#match dscp ?
RANGE Enter DSCP values: 1-3,32 or 1-3,33-44
af11 Assured Forwarding class for value 10
af12 Assured Forwarding class for value 12
af13 Assured Forwarding class for value 14
af21 Assured Forwarding class for value 18
af22 Assured Forwarding class for value 20
af23 Assured Forwarding class for value 22
af31 Assured Forwarding class for value 26
af32 Assured Forwarding class for value 28
af33 Assured Forwarding class for value 30
af41 Assured Forwarding class for value 34
af42 Assured Forwarding class for value 36
af43 Assured Forwarding class for value 38
cs0 Class Selector Routine for value 0
cs1 Class Selector Priority for value 8
cs2 Class Selector Immediate for value 16
cs3 Class Selector Flash for value 24
cs4 Class Selector Flash override for value 32
cs5 Class Selector Critical for value 40
cs6 Class Selector Internetwork Control for value 48
cs7 Class Selector Network Control for value 56
ef Expedited Forwarding DSCP for value 46
ecorouter(config-cmap)#match exp ?
RANGE Enter MPLS exp values: 1-3,6 or 1-3,5-7
Как видно из примера, классификация в EcoRouterOS может осуществляется по полям cos, dscp и exp. Значения могут задаваться в десятичном виде, либо, как в случае с dscp, прямым указанием класса согласно стандарту RFC 4594. Можно задавать набор значений, используя в качестве разделителя запятую «,» и диапазоны, используя в качестве разделителя дефис «-».
Также пользователю доступна команда set
. Она необходима для того, чтобы присвоить отобранным командой match
пакетам новый класс обслуживания. Команда позволяет присвоить исходящим пакетам такие же как и при использовании команды match
значения классов трафика: Ethernet — cos
; MPLS — exp
и IP — dscp
. Подробней об этом читайте в подразделе «Перемаркировка трафика».
R3(config-cmap)#set ?
cos IEEE 802.1Q class of service priority values
dscp Set DSCP in IP packets
exp Set MPLS experimental
Для создания профилей трафика используется команда traffic-profile <NAME>
, где NAME может быть любым наименованием, рекомендуемый формат имени — цифры или все буквы заглавные.
При создании профиля трафика пользователь оказывается в режиме его конфигурирования.
Пример:
ecorouter(config)# traffic-profile 1
ecorouter(config-traffic-profile)# ?
Traffic profile configuration commands:
class Select a class to configure
exit Exit from the current mode to the previous mode
help Description of the interactive help system
no Negate a command or set its defaults
show Show running system information
Для привязки классов трафика к профилю используется команда class
с указанием имени ранее сконфигурированной карты классов.
После имени карты классов можно указать ограничения объёма трафика в различных единицах измерения.
Пример:
ecorouter(config-traffic-profile)#class VOICE ?
gbps Max bandwidth value in Gbps
kbps Max bandwidth value in Kbps
mbps Max bandwidth value in Mbps
percent Max bandwidth value as a percentage
<cr>
ecorouter(config-profile)#class VIDEO
ecorouter(config-profile)#class VOICE mbps 10
Для включения классификации, возможности обрабатывать пакеты отдельно друг от друга и применять различные политики в зависимости от типа поступающего трафика пользователь должен применить профиль трафика к заранее созданной политике. Сделать это можно с помощью команды в конфигурационном режиме service-policy <NAME>
, где NAME может быть любым наименованием, рекомендуемый формат имени — цифры или заглавные буквы.
Пример:
ecorouter(config)#service-policy ECO
ecorouter(config-policy)#traffic-profile 1
Далее необходимо применить политику на экземпляре сервиса (service-instance) во входящем направлении. Классификация трафика в исходящем направлении невозможна.
Пример:
ecorouter(config)#port ge1
ecorouter(config-port)#service-instance test
ecorouter(config-service-instance)#service-policy ECO in
Пример включения классификации голосового и видео-трафика во входящем направлении по отношении к порту ge1:
ecorouter(config)#class-map VIDEO
ecorouter(config-cmap)#match dscp 1
ecorouter(config-cmap)#exit
ecorouter(config)# class-map IPVOICE
ecorouter(config-cmap)#match dscp 2
ecorouter(config-cmap)#exit
ecorouter(config)#traffic-profile TEST
ecorouter(config-traffic-profile)#class VIDEO
ecorouter(config-traffic-profile)#class IPVOICE
ecorouter(config-cmap)#exit
ecorouter(config)#service-policy ECO
ecorouter(config-policy)#traffic-profile TEST
ecorouter(config)#port ge1
ecorouter(config-port)#service-instance test
ecorouter(config-service-instance)#service-policy ECO in
Для проверки сконфигурированных параметров можно воспользоваться командами:
ecorouter#sh class-map
Class map default
Class map IP0
Match dscp: 2
Class map IP1
Match dscp: 4
Class map IP2
Match dscp: 8
Class map IP3
Match dscp: 12
show traffic-profile
Traffic profile prof-dscp
Class IP0
Class IP1
Class IP2
Class IP3