Глава 2. Packet classification: различия между версиями
Строка 76: | Строка 76: | ||
MF лучше применять на ingress (в самом начале попадания пакета в сеть). | MF лучше применять на ingress (в самом начале попадания пакета в сеть). | ||
Config (можно писать несколько term, определяя по разным параметрам трафик и запихивая его в разные очереди) | |||
[edit interfaces ge-0/0/0 unit 80 family inet] | |||
filter { | |||
input qos-tv-data;} | |||
[edit] | |||
firewall { | |||
family inet { | |||
filter qos-tv-data { | |||
term 1 { | |||
from { | |||
source-address { | |||
239.30.30.0/24;}} | |||
then { | |||
forwarding-class tv-data; | |||
accept;}} | |||
term all-accept { | |||
then accept; }}}} | |||
== BA classification == | == BA classification == |
Версия 20:26, 15 января 2017
About
Цель классификации пакетов: исследовать трафик, разделить трафик по разным классам и разместить его в разные очереди. Далее назначить forwardin class и packet loss priority.
Т.е.: определение и назначение forwarding class = помещение пакта в нужную очередь.
4 дефолтных класса:
- BF (Best effort) = 0 queue - default for PHB.
- EF (Expedited forwarding) = 1 - low loss, low delay, low jitter - voice.
- AF (assured forwarding) = 2 - концентрация в основном на packet loss.
- NC (network control) = 3
Можно создавать свои:
blair> show class-of-service forwarding-class Forwarding class ID Queue Policing priority be 0 0 normal ef 1 1 normal voice 2 2 normal tv-data 3 3 normal
config
blair# show class-of-service forwarding-classes class be queue-num 0; class ef queue-num 1; class voice queue-num 2; class tv-data queue-num 3;
MX, T, M7i/M10i с CFEB-E: до 16 классов, до 8 очередей.
Packet loss priority (PLP)
Определяет вероятность отбрасывания при заторах. Пакет с наибольшим PLP будет отброшен первым.
PLP назначается на ingress, когда используем классификаторы. Однако, PLP также можно назначить и позднее с помощью policer.
PLP может принимать 4 значения: low, medium-low, medium-high, high. По умолчанию JunoOS использует 2: low, high.
Если смотреть на default classifier, можно менять их в конфигурации:
000 - best-effor (low)
001 - best effort (high)
010 - exp-forwarding (low)
011 - exp-forwarding (high)
...
110 - network-control (low)
111 - network-control (high)
lower-priority = high drop eligibility
Виды классификаций
Fixed classification (Interface based)
Один forwarding class назначается на unit (vlan) и применяется ко всем входящим пакетам.
Классификация очень грубая.
Такую схему хорошо использовать, если нужно особым способом обработать весь трафик клиента на одном интерфейсе.
Или если upstream узел ненадежный и нужно перекрасить весь трафик, приходящий на этот порт (обычно BE в подобных ситуациях).
Config
blair# show class-of-service interfaces ge-0/0/0 { unit 60 { forwarding-class voice;}}
MF (multifield) classification
Классификация основана на 1 или более полей в заголовке пакета: port, IP, prefix, mac.
Для выделения нужного трафика по определенным полям используется обычный firewall-filter.
MF лучше применять на ingress (в самом начале попадания пакета в сеть).
Config (можно писать несколько term, определяя по разным параметрам трафик и запихивая его в разные очереди)
[edit interfaces ge-0/0/0 unit 80 family inet] filter { input qos-tv-data;} [edit] firewall { family inet { filter qos-tv-data { term 1 { from { source-address { 239.30.30.0/24;}} then { forwarding-class tv-data; accept;}} term all-accept { then accept; }}}}
BA classification
BA классификация основана на уже заданного у пакета значении QoS, т.е. пакет уже был ранее классифицирован другим устройством и присвоил конкретную QoS метку.
Здесь напрямую приводится соответствие: CoS <> Forwarding class + PLP => более эффективный способ по сравнению с MF (не нужно тратить ресурсы на классификацию).
Применяется к unit (vlan).
Обрабатывает все пакеты с одинаковой CoS меткой - одинаково.
Обеспечивает одинаковый приоритет трафика на всей сети.
Хорош для core device.
Может работать на основании: IPv4 DSCP, IPv6 DSCP, IP precedence bits, MPLS EXP bits, IEEE 802.1p CoS bits, IEEE 802.1ad drop eligible indicator (DEI).
Все логические интерфейсы по умолчанию используют ipprec-compatibility => если включить MPLS на интерфейсе - он будет использовать exp-default классификатор.
Если хотите использовать другой (или несколько других), то в class-of-service interfaces нужно их применить к интерфейсу.
При создании собственных классификаторов, для простоты можно использовать дефолтные классификаторы как шаблон и заменить некоторые правила на свои. (в режиме конфигурации классификатора: import <default classifier>)
BA классификатор лучше применять внутри сети (не на входе в сеть).
На интерфейс можно повесть как MF, так и BA классификатор.
- -Сначала производится классификация по BA, потом по MF.
- -При этом если трафик подойдет под оба классификатора, то так как последним будет MF, то и трафик классифицируется по его правилам.