Классификация трафика

Для настройки классификации в 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