Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Содержание

Описание

QoS (Quality of Service) – это удобный и гибкий механизм для управления потоками данных, проходящими через устройство. Можно создать до 200 логических каналов QoS, характеризующихся различными свойствами (такими как уровень приоритета и скорость передачи данных), а затем назначать этим каналам потоки данных в соответствии со специальными правилами. Пакеты, проходя по разным каналам, изменяют свои свойства и свойства соответствующих им потоков данных.

Синтаксис:

option [-]rtp [-]dot1p [-]dscp [-]tos [-]tcpack [-]icmp [-]strict [-]tunnel [-]pppoe [-]mpls

classN {max=N} | {clear}

chN [max=N[%]|0] [ceil=N[%]|0] [ceilprio=N|0] [latency=N|0]
    [[add]pri=[N] | setpri=[N]] [[no]strict]] [pps=N|0] [to=ADDR]
    [vlan=[N|-1]] [dot1p=[N|-1]] [dscp=[N|-1]] [classN] [info="STRING"]
    clear

stat [full] [clear]
del  RULE_NUMBER
dump RULE_NUMBER
mov  RULE_A RULE_B
rearrange [STEP]
add[out] [NUM] [IFNAME] chN rules...

rules: [{setpri|addpri}=[N]] [pass]
   [vlan={N|any|$ACL}] [dot1p=N] [swg=N] [ether={X|any}] [dscp=N|tos=N] [prf]
   -f "pcap filter expression"
   |
   PROTO from [not] ADDR [PORTs] to [not] ADDR [PORTs]

   PROTO: [all] | tcp | udp | icmp | arp | proto NUMBER
   ADDR: IP | $LOCAL | $ROUTE | $ACL | mac x:x:x:x:x:x }
   PORTS: NUM[:NUM] [NUM] ...

Параметры

ПараметрыОписание

option [-]rtp [-]dot1p [-]dscp [-]tos [-]tcpack [-]icmp [-]strict [-]tunnel [-]pppoe [-]mpls

С помощью данного параметра осуществляется управление автоматическим назначением приоритетов потокам данных в устройстве.

  • "rtp" - включение/отключение автоматического назначения приоритетов пакетам реального времени.
  • "dot1p" - включение/отключение автоматического назначения приоритетов пакетам с меткой приоритета стандарта IEEE 802.1p.
    Схема соответствия приоритетов MINT и стандарта IEEE 802.1p приведена ниже:
MINTIEEE 802.1p
QM_PRIO_REGULAR0 BE Best Effort
QM_PRIO_BACKGROUND1 BK Background
QM_PRIO_BUSINESS12 EE Excellent Effort
QM_PRIO_QOS13 CA Critical Applications
QM_PRIO_VIDEO4 VI Video
QM_PRIO_VOICE5 VO Voice
QM_PRIO_NETCRIT6 IC Internetwork Control
QM_PRIO_SYS17 NC Network Control

Например, на сетевом узле настроена автоматическая приоритизация пакетов с меткой приоритета стандарта IEEE 802.1p. На узел приходит пакет с меткой приоритета IEEE 802.1p «5 VO Voice», узел в этом случае назначит ему приоритет «QM_PRIO_VOICE». 

  • "tos" - включение/отключение автоматического назначения приоритетов пакетам с меткой TOS.
  • "dscp" - включение/отключение автоматического назначения приоритетов пакетам с меткой DiffServ.
  • "tcpack" - включение/отключение автоматического назначения приоритетов пакетам TCP ACK.
  • "icmp" - включение/отключение автоматического назначения приоритетов пакетам ICMP.
  • "strict" - включение/отключение политики строгой приоритизации трафика "Strict Priority" (пакеты из очереди с более низким приоритетом не обрабатываются до тех пор, пока не будут обработаны все пакеты из очереди с более высоким приоритетом). В противном случае, по умолчанию применяется политика взвешенной приоритизации "Weighted Fair Queuing" (используются весовые коэффициенты для каждой очереди интерфейса, что позволяет последовательно обрабатывать пакеты из различных очередей в определенном соотношении, зависящем от весовых коэффициентов). Например, 4 пакета из очереди с приоритетом 1, затем 1 пакет из очереди с приоритетом 2 и т.д.
  • "tunnel" - включение/отключение автоматической приоритизации для туннелированного трафика. Разрешает приоритизацию внутри туннелей.
  • "pppoe" - включение/отключение автоматического назначения приоритетов пакетам внутри туннелей PPPoE.
  • "mpls" - включение/отключение автоматического назначения приоритетов пакетам с меткой MPLS.

classN {max=N} | {clear}

Создание класса обслуживания и определение его полосы пропускания. Используется для распределения пропускной способности между различными каналами.

  • "max=N" - значение полосы пропускания в Кбит/с.
  • "clear" - удаление класса обслуживания.

chN [max=N[%]|0] [ceil=N[%]|0] [ceilprio=N|0] [latency=N|0]
[[add]pri=[N] | setpri=[N]] [[no]strict]] [pps=N|0] [to=ADDR]
[vlan=[N|-1]] [dot1p=[N|-1]] [dscp=[N|-1]] [classN] [info="STRING"]
clear


Команда описывает один канал. На основе каналов "qm" осуществляется сквозная приоритизация в сети MINT:

  • "chN" - номер канала (1...200).
  • "max=N[%]|0" - максимальная скорость потока для данного канала в Кбит/с (от 10 до 100000) или в процентах от полосы пропускания класса, к которому привязан данный канал. При установке значения 0 (ноль) отменяет ограничение по скорости.
  • "ceil=N[%]|0" - максимальная негарантированная скорость канала, привязанного к классу. Если пропускная способность класса, к которому привязан канал, используется не полностью, то скорость канала может увеличиться вплоть до заданного значения N. Значение данного параметра указывается в Кбит/с или в процентах от полосы пропускания класса. Для отключения параметра нужно установить значение 0.
  • "ceilprio=N|0" - устанавливает приоритет перераспределения неиспользованной пропускной способности между каналами. Диапазон значений приоритета 1..10. Значение 0 (ноль) - отключает данный параметр.
  • "latency=N|0" - максимальное время нахождения пакета в канале. Если время ожидания пакета в очереди канала превысит данное время, то пакет будет отброшен. Измеряется в миллисекундах. Для отключения параметра нужно поставить значение 0.При необходимости, на выходе из сети MINT можно назначить требуемые параметры
  • "[add]pri=[N]" - повышение приоритета пакета до указанного значения только в том случае, если новый приоритет выше, чем был установлен ранее.
  • "setpri=[N]" - явно устанавливает новый приоритета независимо от того, какой приоритет он имел до этого.

ВНИМАНИЕ

Для всех функций автоматической приоритизации должен использоваться аргумент "addpri". Таким образом приоритеты будут устанавливаться в следующем порядке:

  1. приоритет dot1p (addpri);
  2. приоритет, указанный в правиле qm (addpri или setpri);
  3. приоритет dscp/tos и т.д., если он выше текущего (addpri);
  4. значение, указанное в канале (addpri или setpri)

После этого будет применен тот же порядок для исходящих пакетов, если существуют соответствующие правила.

  • "strict" - включение политики строгой приоритизации трафика "Strict Priority" (пакеты из очереди с более низким приоритетом не обрабатываются до тех пор, пока не будут обработаны все пакеты из очереди с более высоким приоритетом). В противном случае (по умолчанию) применяется политика взвешенной приоритизации "Weighted Fair Queuing" (используются весовые коэффициенты для каждой очереди интерфейса, что позволяет последовательно обрабатывать пакеты из различных очередей в определенном соотношении, зависящем от весовых коэффициентов). Например, 4 пакета из очереди с приоритетом 1, затем 1 из очереди с приоритетом 2 и т.д.

  • "pps=N|0" - максимальное количество пакетов в секунду для данного потока. Для отключения нужно установить значение 0.
  • "to=ADDR" - перенаправление всего потока на другой адрес, вне зависимости от сложившихся условий маршрутизации. Адрес ADDR должен быть достижим непосредственно через один из интерфейсов устройства (без дополнительной маршрутизации). Данный аргумент можно применять, например, в случае использования устройства в качестве блока доступа к сети, когда два независимых клиента хотят пользоваться услугами разных провайдеров через один блок.
  • "vlan=[N|-1]" - VLAN ID (допустимые значения 0-4095). Значение “-1” удаляет аргумент.
  • "dot1p=N" - приоритизация для пактов с меткой приоритета IEEE 802.1p (допустимые значения 0-7). Значение “-1” удаляет аргумент.
  • "dscp=N" - приоритизация для DSCP  (допустимые значения 0-63). Значение “-1” удаляет аргумент.
  • "classN" - номер класса обслуживания. Можно указать этот аргумент, привязав данный канал к классу обслуживания N. В этом случае ограничение скорости будет не жёстким: если пропускная способность интерфейса, указанного для класса N, не используется полностью, то ограничение скорости канала может быть превышено, вплоть до полной загрузки класса. При одновременной работе нескольких каналов, связанных с данным классом, они поровну поделят всю полосу пропускания.

ПРЕДОСТЕРЕЖЕНИЕ

На платформе H02 при одновременной работе нескольких каналов, связанных с данным классом, вся полоса пропускания будет поделена пропорционально их начальным ограничениям по скорости потока.

  • "info="STRING" - краткое описание созданного канала.
  • "clear" - удаление всех установок и освобождение канала.

ВНИМАНИЕ

При одновременном указании нескольких аргументов, порядок обработки следующий: сначала отрабатывается ограничение по скорости, затем переадресация, потом приоритет. При одновременном указании аргументов "vlan" и "dot1p", сначала обрабатывается "vlan", затем "dot1p".

Каждому каналу может быть присвоен приоритет (0…16). Назначенный приоритет будет автоматически обрабатываться каждым узлом при перемещении пакета внутри сети MINT.

КаналПриоритет
QM_PRIO_NETCRIT0
QM_PRIO_VOICE    1
QM_PRIO_VOICE22
QM_PRIO_VIDEO3
QM_PRIO_VIDEO24
QM_PRIO_QOS15
QM_PRIO_QOS26
QM_PRIO_QOS37
QM_PRIO_QOS48
QM_PRIO_BUSINESS19
QM_PRIO_BUSINESS210
QM_PRIO_BUSINESS311
QM_PRIO_BUSINESS412
QM_PRIO_BUSINESS513
QM_PRIO_BUSINESS614
QM_PRIO_REGULAR15
QM_PRIO_BACKGROUND16

Приоритеты 1 и 2 подвергаются дополнительной обработке как голосовые. По умолчанию пакеты получают приоритет "QM_PRIO_REGULAR=15" и обрабатываются соответственно.

Классификация пакетов может также выполняться с помощью фильтров "pcap".

ПРЕДОСТЕРЕЖЕНИЕ

Реальная приоритизация внутри сети MINT осуществляется по приоритету, заданному параметром "pri=N". Метка DSCP прозрачно передаётся через сеть MINT в любом режиме её работы. Приоритет 802.1p прозрачно передаётся только при работе в режиме коммутатора. При необходимости, для исходящих через определенный интерфейс устройства пакетов могут быть назначены требуемые параметры "dot1p" и "dscp", по желанию оператора.

stat [full] [clear]

Статистика работы конкретного канала (только для каналов с ограничением по скорости):

  • full” - расширенная статистика работы канала.
  • "clear” - сброс статистики.
qm ch1 max=128 cur=127 packets=12345 (1234) bytes=1234567 (12345)

Числа в скобках отображают количество отброшенных единиц.

ВНИМАНИЕ

Команда “qm stat” показывает статистику по пакетам в секунду (PPS), только если для потока задано максимальное количество пакетов в секунду (qm chN pps=N).

del RULE_NUMBER

Удаление указанного правила из списка.
dump RULE_NUMBERОтображает скомплированный превдо-код правила, заданного в формате PCAP. Позволяет визуально оценить сложность/оптимальность, либо корректность полученного правила. 

mov RULE_A RULE_B

Изменение правила с номера «A» на «B».

rearrange [STEP]

Перенумерация всех правил с шагом N (по умолчанию 5). Номера правил можно посмотреть командой "config show".

add[out] [NUM] [IFNAME] chN rules..

Команда позволяет добавить поступающий на устройство пакет, удовлетворяющий правилу к каналу N.

  • "out" -  обработка исходящих с устройства пакетов.
  • "num" -  указание порядкового номера правила в списке (необязательный параметр).
  • "IFNAME" - имя интерфейса, через который пакет попадает в систему (дополнительный параметр).

ВНИМАНИЕ

Все манипуляции с заголовками пакетов, например смена метки dscp или 802.1p, возможны только с помощью команды "qm addout", то есть, только для покидающих устройство пакетов.


rules: [{setpri|addpri}=[N]] [pass]
[vlan={N|any|$ACL}] [dot1p=N] [swg=N] [ether={X|any}] [dscp=N|tos=N] [prf]
-f "pcap filter expression"
|
PROTO from [not] ADDR [PORTs] to [not] ADDR [PORTs]


PROTO: [all] | tcp | udp | icmp | arp | proto NUMBER
ADDR: IP | $LOCAL | $ROUTE | $ACL | mac x:x:x:x:x:x }
PORTS: NUM[:NUM] [NUM] ...


Синтаксис правил полностью соответствует синтаксису команды "ipfw" (см. раздел "Команда ipfw (IP Firewall)").

ВНИМАНИЕ

Следует иметь в виду, что во время работы каждый пакет, проходящий через систему, проверяется на соответствие правилам строго по порядку, от первого до последнего, пока не встретится правило удовлетворяющее свойствам пакета.

Благодаря правилам, "tos" и "dscp" можно направлять входящие потоки в подходящий канал.

qm ch1 pri=6
qm add ch1 all from x/x to y/y
qm add ch1 dscp=31 all from a to b
qm add ch1 dscp=42

ПРЕДОСТЕРЕЖЕНИЕ

Ключевые слова и значения параметров пишутся слитно, без пробелов до и после "=".

Примеры

Ограничить весь исходящий трафик клиента величиной 64 Кбит/с на абонентском терминале.

qm ch1 max=64
qm add eth0 ch1 all from 0/0 to 0/0

Назначить трафику сети 1.1.1.0/24 больший приоритет по отношению ко всем остальным потокам данных.

qm ch1 pri=5
qm add ch1 all from 1.1.1.0/24 to 0/0
qm add ch1 all from 0/0 to 1.1.1.0/24

Назначить трафику сети 1.1.1.0/24 меньший приоритет по отношению к всем остальным потокам данных. Обратите внимание на порядок правил. Последнее правило, которому удовлетворяет каждый пакет, должно стоять в конце списка.

qm ch1 pri=5
qm ch2 pri=10
qm add ch2 all from 1.1.1.0/24 to 0/0
qm add ch2 all from 0/0 to 1.1.1.0/24
qm add ch1 all from 0/0 to 0/0

Абоненты сети:

  • 1.1.1.0/24 должны работать через провайдера 10.10.10.10.
  • 2.2.2.0/24 через провайдера 20.20.20.20. 

В более сложном случае, когда маршрутизаторы провайдеров недостижимы непосредственно с данного узла, необходимо сначала организовать туннели до выбранных провайдеров, а уже потом выполнять переадресацию.

qm ch1 to=10.10.10.10
qm ch2 to=20.20.20.20
qm add ch1 all from 1.1.1.0/24 to 0/0
qm add ch2 all from 2.2.2.0/24 to 0/0

Отключить автоматическую приоритизацию пакетов реального времени и включить автоматическую приоритизацию TOS.

qm option –rtp tos

Приоритет всех пакетов будет увеличен до значения N, но только в случае если N превышает текущий приоритет пакета.

qm ch1 addpri=N

Всем пакетам будет присвоен указанный приоритет.

qm ch1 setpri=N

Канал 1 сбрасывает метки DSCP и приоритеты 802.1p.

qm ch1 dscp=0 dot1p=-1

Канал 2 устанавливает приоритет "QM_PRIO_BUSINESS1" и метку "DSCP 31"

qm ch2 pri=9 dscp=31

Канал 3 устанавливает приоритет "QM_PRIO_VIDEO" и метку "DSCP 11"

qm ch3 pri=3 dscp=11


Канал 4 устанавливает приоритет "QM_PRIO_BUSINESS8" и метку "DSCP 51"

qm ch4 pri=16 dscp=51

Для обнуления всех приоритетов пропустить весь трафик через канал 1.

qm add ch1 pass all from 0/0 to 0/0

Поместить часть трафика в канал 2.

qm add ch2 tcp from X.X.X.0/24 to 0/0

Другую часть трафика в канал 3.

qm add ch3 udp from X.X.X.0/24 PORT to 0/0

Оставшийся трафик будет обрабатываться как не приоритетный, либо назначить ему приоритет, поместив в канал 4.

qm add ch4 all from 0/0 to 0/0

Установить 802.1p приоритет пакетам в канале 25.

qm ch25 dot1p=5

Установить 802.1p приоритет и VLAN ID в канале 26. Заголовок VLAN будет добавлен автоматически в случае его отсутствия.

qm ch26 vlan=7 dot1p=4

Поместить исходящие пакеты, назначенные интерфейсу eth0 и помеченные меткой DSCP 11, в канал 25.

qm addout eth0 ch25 dscp=11 from 0/0 to 0/0

Поместить исходящие пакеты UDP, назначенные интерфейсу eth0, в канал 25 и промарикровать их меткой DSCP = 51.

qm ch25 dscp=51
qm addout eth0 ch25 udp from 0/0 to 0/0

Пример использования pcap-фильтра для классификации пакетов: в канал 5 будет добавлен весь ICMP трафик, направленный от или к хостам 1.1.1.1 и 1.1.1.5.

qm add ch5 –f “icmp and host (1.1.1.1 or 1.1.1.5)“

Пример использования класса обслуживания.

qm class1 max=1000
qm ch1 max=200 ceil=1000 class1 
qm ch2 max=400 ceil=1000 class1
qm ch3 max=100 ceil=300 class1
qm ch4 max=200 ceil=300 class1

Результатом выполнения этих команд будет следующая иерархия:

Gliffy Macro Error

Cannot find a diagram with these parameters:

  • Name: Каналы

  • Родительскому классу "Class 1" назначается максимальная пропускная способность 1000 Кбит/с.
  • Пропускная способность "Class 1" распределяется между "Channel 1", "Channel 2", "Channel 3" и "Channel 4" с соответствующими значениями пропускной способности и максимальной негарантированной скоростью канала 1000 Кбит/с (в случае, если пропускная способность "Class 1" будет использоваться не полностью, то скорость "Channel 1" и "Channel 2" может увеличиться вплоть до значения 1000 Кбит/с, а "Channel 3" и "Channel 4" до 300 Кбит/с)
  • No labels