Глава 3. Policing: различия между версиями

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску
м
 
(не показано 37 промежуточных версий этого же участника)
Строка 1: Строка 1:
== В общем ==
{{#description2: Основы policing. Shaping. Single-rate two-color policer. Tricolor marking policers. Two-rate tricolor marking policy. Color-blind mode. Color-aware mode. Policing с использованием firewall filter.Информация для подготовки к экзаменам Juniper.}}
*Первая ступень управления трафиком при заторах. Использует bandwidth threshold and max burst size. Может управлять трафиком, который превысил оба порога (не только шейпить).
==Основы policing==
*Первая ступень управления трафиком при заторах. Использует bandwidth threshold and max burst size. Может управлять трафиком (назначать PLP, forw-class), который превысил оба порога (не только шейпить).
*Применяются ограничения bandwidth для вх и исх трафика.
*Применяются ограничения bandwidth для вх и исх трафика.
*Обеспечивает соблюдение SLA.
*Обеспечивает соблюдение SLA.
*Определяет трафик как: in-profile (трафик не превысивший threshold) и out-profile (трафик, превысивший threshold).
*Определяет трафик как: in-profile (трафик не превысивший threshold) и out-profile (трафик, превысивший threshold).


=== Особенности ===
===Особенности===
- Для создания policer:
- Для создания policer:
:-bandwidth threshold + max burst size
:-bandwidth threshold + max burst size
Строка 18: Строка 19:


'''Soft''': Трафик который превышает лимит:  
'''Soft''': Трафик который превышает лимит:  
#Он "поступает" на устройство, но направляется в определенный forwarding class.
#не дропается, но направляется в определенный forwarding class.
#Он попадает на устройство, но ему присваивается определенное значение PLP, по которому в случае заторов он будет отброшен шедулерами.
#не дропается, но ему присваивается определенное значение PLP, по которому в случае заторов он будет отброшен шедулерами.


=== Параметры ===
=== Параметры ===


'''CIR, CBS''': commited information rate (бит/с) / burst size (байт): зеленый - кол-во трафика < CBS - точняк пройдет.
'''CIR, CBS''': commited information rate (бит/с) / burst size (байт): зеленый - кол-во трафика < CBS - точняк пройдет (in-profile).


'''PIR, PBS/EBS''': peak information rate (бит/с), peak/exceed burst size (байт): то, что < PBS - пройдет, но в случае заторов пакеты могут быть дропнуты. То что больше - будет дропаться.
'''PIR, PBS/EBS''': peak information rate (бит/с), peak/exceed burst size (байт): то, что < PBS - пройдет, но в случае заторов пакеты могут быть дропнуты. То что больше - будет дропаться (out-of-profile).


== Single-rate two-color policer ==
== Single-rate two-color policer ==
*One rate threshold (CIR)
*Один threshold по скорости ('''CIR''')
*One burst size threshold, creates 2 colors. (CBS)
*Один burst threshold, с помощью которого создается 2 цвета, в которые может быть "окрашен" трафик. ('''CBS''')
*Traffic exceed CIR + CBS => discard / set forwarding class / set PLP
*Трафик, превышающий CIR + CBS => '''discard / set forwarding class / set PLP / out-of-profile'''


Config
'''Конфигурация'''
  blair> show configuration firewall policer ''100m''                                                                      
  set firewall policer ''100m'' if-exceeding bandwidth-limit 100m     = '''CIR'''
if-exceeding {
set firewall policer ''100m'' if-exceeding burst-size-limit 2.5m    = '''CBS'''
    bandwidth-limit 100m;
  set firewall policer ''100m'' if-exceeding then '''discard'''
    burst-size-limit 2500000; }
  then ''discard'';


== Tricolor marking policers ==
== Tricolor marking policers ==
Судя по всему, призван не тупо дропать трафик, а назначать PLP в зависимости от значений CIR, PIR, CBS, EBS.
Также не только дропает трафик, а можно задавать PLP в зависимости от значений CIR, PIR, CBS, EBS.
 
Зеленые пакеты могут стать желтыми.
=== Single-rate tricolor marking policy===
=== Single-rate tricolor marking policy===
Policing основан на двух burst thresholds.
Полисинг основан на двух burst thresholds.
*One rate threshold (CIR)
*Один threshold по скорости ('''CIR''')
*Two burst size threshold (CBS, EBS). Creates 3 colors.
*Два burst size threshold ('''CBS, EBS'''). Что дает создать 3 цвета для "окраски" трафика.
*Markings:  
*Назначение цветов:  
:*< CBS - green = low PLP
:*< CBS - зеленый = low PLP
:*CBS < x < EBS - yellow = medium-high PLP
:*CBS < x < EBS - желтый = medium-high PLP
:*> EBS - red - high PLP
:*> EBS - красный - high PLP
'''Конфигурация'''
set firewall three-color-policer 100m logical-interface-policer
set firewall three-color-policer 100m action loss-priority high then discard
set firewall three-color-policer 100m single-rate committed-information-rate 90m = '''CIR'''
set firewall three-color-policer 100m single-rate committed-burst-size 10m      = '''CBS'''
set firewall three-color-policer 100m single-rate excess-burst-size 100m        = '''EBS'''
set firewall family inet filter 100m term 1 then three-color-policer single-rate 100m


  [edit firewall]
  set interfaces xe-0/0/0 unit 100 family inet filter input 100m
three-color-policer 100m {
single-rate {
(color-aware|color-blind);
committed-information-rate 90m;
committed-burst-size 10m;
excess-burst-size 100m;}
logical-interface-policer;
action {
loss-priority high then discard; }}
family inet {
filter 100m {
term 1 {
then {
three-color-policer 100m;}}}}
[edit interfaces]
ge-0/0/0 {
unit 110 {
family inet {
filter {
input 100m; }}}}}


===Two-rate tricolor marking policy===
===Two-rate tricolor marking policy===
Policing основан на bandwidth thresholds.
Полисинг основан на bandwidth thresholds.
*Two rates (CIR, PIR). Creating 3 colors.
*Два thresholds по скорости ('''CIR, PIR'''). Это уже создает 3 цвета для "окраски" трафика.
*Two burst size threshold (CBS, PBS).  
*Два burst size threshold ('''CBS, PBS''').  
*Markings:
*Markings:
:*< CIR+CBS - green = low PLP
:*< CIR+CBS - зеленый = low PLP
:*CIR+CBS < x < PIR+PBS - yellow = medium-low PLP
:*CIR+CBS < x < PIR+PBS - желтый = medium-low PLP
:*> PIR+PBS - red = high PLP
:*> PIR+PBS - красный = high PLP
 
'''Конфигурация'''
set firewall three-color-policer 50-60m two-rate committed-information-rate 50m
set firewall three-color-policer 50-60m two-rate committed-burst-size 1m
set firewall three-color-policer 50-60m two-rate peak-information-rate 60m
set firewall three-color-policer 50-60m two-rate peak-burst-size 1m
set firewall three-color-policer 50-60m logical-interface-policer
set firewall three-color-policer 50-60m action loss-priority high then discard
 
set firewall family inet filter 50-60m term 1 then three-color-policer two-rate 50-60m
 
set interfaces xe-0/0/0 unit 100 family inet filter input 50-60m


===Color-blind mode===
===Color-blind mode===
Строка 87: Строка 88:
Policer учитывает предыдущую окраску пакета.
Policer учитывает предыдущую окраску пакета.


При обработке single-rate tricolor и two-rate tricolor на выходе получается пакет с результирующей меткой + учитывается текущее прохождение пакета.
При обработке single-rate tricolor и two-rate tricolor на выходе получается пакет с результирующей меткой PLP + учитывается текущее прохождение пакета.


PLP может увеличиваться, оставаться прежним, но не уменьшаться.
PLP может увеличиваться, оставаться прежним, но не уменьшаться.
Применение:
set firewall three-color-policer 100m single-rate ''(color-aware|color-blind)''
или
set firewall three-color-policer 50-60m two-rate ''(color-aware|color-blind)''


'''По умолчанию tricolor mode включён только на М120 и МХ серии.'''
'''По умолчанию tricolor mode включён только на М120 и МХ серии.'''
Строка 97: Строка 103:
     tri-color;
     tri-color;


===Config===
== Применение полисеров==
blair# top show | compare                                     
[edit firewall]
  three-color-policer 50-60m {
      two-rate {
          committed-information-rate 50m;
          committed-burst-size 1500;
          peak-information-rate 60m;
          peak-burst-size 1500; }}
 
== Application ==
 
=== Interface policers ===
=== Interface policers ===
*Не часть firewall filter.
*Не часть firewall filter.
*Можно применить к: protocol family, logical int, physical int.
*Можно применить к: protocol family, logical int, physical int.
*Можно применить на input и output.
*Можно применить на input и output.
====Configuration====
'''Конфигурация'''
Для '''protocol family''':
Для '''protocol family''':
  blair# top show | compare
  set interfaces ge-0/0/0 unit 500 family inet policer input 100m
[edit interfaces ge-0/0/0 unit 110 family inet]
set interfaces ge-0/0/0 unit 500 family inet policer output 100m
      policer {
 
          input 100m;
  set firewall policer 100m if-exceeding bandwidth-limit 100m
          output 100m; }
set firewall policer 100m if-exceeding burst-size-limit 250k
  [edit firewall]
set firewall policer 100m then loss-priority low
  policer 100m {
      if-exceeding {
          bandwidth-limit 100m;
          burst-size-limit 250k; }
      then ''discard | forwarding-class | loss-priority''; }


В таком случае threshold по трафику на каждую '''family''' будет 100 Мбит.
В таком случае threshold по трафику на каждую '''family''' будет 100 Мбит.
Строка 134: Строка 124:
  +  logical-interface-policer;
  +  logical-interface-policer;


=== Policing using a firewall filter ===
=== Policing с использованием firewall filter ===
*Можно применять полисеры внутри ff: тогда в ''then'' нужно указать не терминирующее действие.
*Можно применять полисеры внутри ff: тогда в ''then'' нужно указать не терминирующее действие, а назначение policer.
*Могут применяться только к ''family''
*Могут применяться только к ''family''
*Могут применяться на in/out
*Могут применяться на in/out


====Configuration====
'''Конфигурация'''


''hard'':
''hard'':
  [edit firewall family inet]
  set firewall family inet filter hard term 1 from source-address 10.200.86.3/32 except
    filter hard {
set firewall family inet filter hard term 1 then policer hard-100m
        term 1 {
set firewall family inet filter hard term 1 then accept
            from {
set firewall family inet filter hard term all-accept then accept
                source-address {
 
                    10.200.86.3/32 except; }}
  set firewall policer hard-100m if-exceeding bandwidth-limit 100m
            then {
set firewall policer hard-100m if-exceeding burst-size-limit 250k
                policer hard-100m;
set firewall policer hard-100m then discard
                accept; }}
        term all-accept {
            then accept; }}
  [edit firewall]
  policer hard-100m {
      if-exceeding {
          bandwidth-limit 100m;
          burst-size-limit 250k;}
      then '''discard''';}


''soft'':
''soft'':
  [edit firewall family inet]
  set firewall family inet filter soft term 1 from source-address 10.200.86.3/32 except
    filter soft {
set firewall family inet filter soft term 1 then policer soft-100m
        term 1 {
set firewall family inet filter soft term 1 then forwarding-class expedited-forwarding
            from {
set firewall family inet filter soft term 1 then accept
                source-address {
  set firewall family inet filter soft term all-accept then accept
                    10.200.86.3/32 except; }}
            then {
                policer soft-100m;
                forwarding-class expedited-forwarding;
                accept; }}
        term all-accept {
            then accept; }}
  [edit firewall]
  policer soft-100m {
      if-exceeding {
          bandwidth-limit 100m;
          burst-size-limit 250k; }
      then forwarding-class best-effort; }


В этом случае трафику, in-of-profile будет назначен fw-class expedited-forwarding, а трафику попадающему в out-of-profile - best-effort.
set firewall policer soft-100m if-exceeding bandwidth-limit 100m
set firewall policer soft-100m if-exceeding burst-size-limit 250k
set firewall policer soft-100m then forwarding-class best-effort
 
В этом случае трафику, in-profile будет назначен fw-class expedited-forwarding, а трафику попадающему в out-of-profile - best-effort (default).


'''Filter-specific policer''': применяется к ''term'', на все термы суммарно будет одно общее ограничение. Применяется для выделения разных типов трафика, но policing над ними будет делаться как над одним потоком.
'''Filter-specific policer''': применяется к ''term'', на все термы суммарно будет одно общее ограничение. Применяется для выделения разных типов трафика, но policing над ними будет делаться как над одним потоком.
Строка 196: Строка 168:
  set firewall family inet filter hard-f term B then accept
  set firewall family inet filter hard-f term B then accept
  set firewall family inet filter hard-f term all-other then accept
  set firewall family inet filter hard-f term all-other then accept
set interfaces ge-0/0/0 unit 110 family inet filter hard-f
В случае с '''single-rate/two-rate tricolor marking''' полисеры и фильтры выглядят по-другому:
set firewall three-color-policer srTCM-A single-rate color-blind
set firewall three-color-policer srTCM-A single-rate committed-information-rate 500m
set firewall three-color-policer srTCM-A single-rate committed-burst-size 1m
set firewall three-color-policer srTCM-A single-rate excess-burst-size 5m
set firewall family inet filter TCM-fil term A then three-color-policer single-rate srTCM-A
set interfaces ge-0/0/0 unit 110 family int filter TCM-fil
====Physical interface policer====
ну и для '''two-rate''' не сложно догадаться как будет выглядеть.


=== Physical interface policer ===
=== Physical interface policer ===
Строка 241: Строка 196:


'''Исх. трафик''' будет обрабатываться: 1.filter => 1.policer
'''Исх. трафик''' будет обрабатываться: 1.filter => 1.policer
== Shaping ==
Помимо policing, можно лишний трафик обрезать шейпером. В Основном shaping делается на выходе (к исх трафику).
Разница:
* policing на вх и вых | shaping на вых
* policing - hard: дропает лишний трафик, soft: меняет forwarding class, который в последующем скорей всего дропнется.
* shaping - лишний трафик кладет в буфер и чуть позже его передаст. Не хорошо для сервисов, чувствительных к задержке.
* policing может влиять ну судьбу трафика за пределами роутера, назначая forw class
* shaping не влияет на судьбу трафика за пределами роутера, т.к. кроме буферизации ничего не делает.
==Дополнительная информация==
*[[Глава 1. QoS]]
*[[Глава 2. Packet classification]]
*[[Глава 7. CoS-based forwarding]]
*[[Глава 8. Packet flow]]

Текущая версия на 18:19, 15 июля 2021

Основы policing

  • Первая ступень управления трафиком при заторах. Использует bandwidth threshold and max burst size. Может управлять трафиком (назначать PLP, forw-class), который превысил оба порога (не только шейпить).
  • Применяются ограничения bandwidth для вх и исх трафика.
  • Обеспечивает соблюдение SLA.
  • Определяет трафик как: in-profile (трафик не превысивший threshold) и out-profile (трафик, превысивший threshold).

Особенности

- Для создания policer:

-bandwidth threshold + max burst size
-действие: reject, discard, ...

- Применяется:

- на интерфейс.
- в качестве действия внутри firewall filter, firewall filter вешается на интерфейс.

- Использует token-bucket алгоритм: есть некий burst, до того, как начать влиять на трафик.

Hard/Soft

Hard: Все что выходит за рамки ограничения - дропается.

Soft: Трафик который превышает лимит:

  1. не дропается, но направляется в определенный forwarding class.
  2. не дропается, но ему присваивается определенное значение PLP, по которому в случае заторов он будет отброшен шедулерами.

Параметры

CIR, CBS: commited information rate (бит/с) / burst size (байт): зеленый - кол-во трафика < CBS - точняк пройдет (in-profile).

PIR, PBS/EBS: peak information rate (бит/с), peak/exceed burst size (байт): то, что < PBS - пройдет, но в случае заторов пакеты могут быть дропнуты. То что больше - будет дропаться (out-of-profile).

Single-rate two-color policer

  • Один threshold по скорости (CIR)
  • Один burst threshold, с помощью которого создается 2 цвета, в которые может быть "окрашен" трафик. (CBS)
  • Трафик, превышающий CIR + CBS => discard / set forwarding class / set PLP / out-of-profile

Конфигурация

set firewall policer 100m if-exceeding bandwidth-limit 100m      = CIR
set firewall policer 100m if-exceeding burst-size-limit 2.5m     = CBS
set firewall policer 100m if-exceeding then discard

Tricolor marking policers

Также не только дропает трафик, а можно задавать PLP в зависимости от значений CIR, PIR, CBS, EBS.

Зеленые пакеты могут стать желтыми.

Single-rate tricolor marking policy

Полисинг основан на двух burst thresholds.

  • Один threshold по скорости (CIR)
  • Два burst size threshold (CBS, EBS). Что дает создать 3 цвета для "окраски" трафика.
  • Назначение цветов:
  • < CBS - зеленый = low PLP
  • CBS < x < EBS - желтый = medium-high PLP
  • > EBS - красный - high PLP

Конфигурация

set firewall three-color-policer 100m logical-interface-policer
set firewall three-color-policer 100m action loss-priority high then discard
set firewall three-color-policer 100m single-rate committed-information-rate 90m = CIR
set firewall three-color-policer 100m single-rate committed-burst-size 10m       = CBS
set firewall three-color-policer 100m single-rate excess-burst-size 100m         = EBS

set firewall family inet filter 100m term 1 then three-color-policer single-rate 100m
set interfaces xe-0/0/0 unit 100 family inet filter input 100m

Two-rate tricolor marking policy

Полисинг основан на 2х bandwidth thresholds.

  • Два thresholds по скорости (CIR, PIR). Это уже создает 3 цвета для "окраски" трафика.
  • Два burst size threshold (CBS, PBS).
  • Markings:
  • < CIR+CBS - зеленый = low PLP
  • CIR+CBS < x < PIR+PBS - желтый = medium-low PLP
  • > PIR+PBS - красный = high PLP

Конфигурация

set firewall three-color-policer 50-60m two-rate committed-information-rate 50m
set firewall three-color-policer 50-60m two-rate committed-burst-size 1m
set firewall three-color-policer 50-60m two-rate peak-information-rate 60m
set firewall three-color-policer 50-60m two-rate peak-burst-size 1m
set firewall three-color-policer 50-60m logical-interface-policer
set firewall three-color-policer 50-60m action loss-priority high then discard
set firewall family inet filter 50-60m term 1 then three-color-policer two-rate 50-60m
set interfaces xe-0/0/0 unit 100 family inet filter input 50-60m

Color-blind mode

Policer не рассматривает предыдущее окрашивание пакета. Любые прежние настройки - игнорируются. PLP назначайся в соответствии с настройками policer.

Color-aware mode

Policer учитывает предыдущую окраску пакета.

При обработке single-rate tricolor и two-rate tricolor на выходе получается пакет с результирующей меткой PLP + учитывается текущее прохождение пакета.

PLP может увеличиваться, оставаться прежним, но не уменьшаться.

Применение:

set firewall three-color-policer 100m single-rate (color-aware|color-blind)
или
set firewall three-color-policer 50-60m two-rate (color-aware|color-blind)

По умолчанию tricolor mode включён только на М120 и МХ серии.

Для остальных включается руками:

[edit class-of-service]
   tri-color;

Применение полисеров

Interface policers

  • Не часть firewall filter.
  • Можно применить к: protocol family, logical int, physical int.
  • Можно применить на input и output.

Конфигурация Для protocol family:

set interfaces ge-0/0/0 unit 500 family inet policer input 100m
set interfaces ge-0/0/0 unit 500 family inet policer output 100m
set firewall policer 100m if-exceeding bandwidth-limit 100m
set firewall policer 100m if-exceeding burst-size-limit 250k
set firewall policer 100m then loss-priority low

В таком случае threshold по трафику на каждую family будет 100 Мбит.

Для Logical interface policers: полисер применяется к family на интерфейсе, но threshold теперь применяется ко всем family в unit сразу. То есть в нашем случае в общем на ge-0/0/0.110 будет ограничение 100m.

[edit firewall policer 100m]
+   logical-interface-policer;

Policing с использованием firewall filter

  • Можно применять полисеры внутри ff: тогда в then нужно указать не терминирующее действие, а назначение policer.
  • Могут применяться только к family
  • Могут применяться на in/out

Конфигурация

hard:

set firewall family inet filter hard term 1 from source-address 10.200.86.3/32 except
set firewall family inet filter hard term 1 then policer hard-100m
set firewall family inet filter hard term 1 then accept
set firewall family inet filter hard term all-accept then accept
set firewall policer hard-100m if-exceeding bandwidth-limit 100m
set firewall policer hard-100m if-exceeding burst-size-limit 250k
set firewall policer hard-100m then discard

soft:

set firewall family inet filter soft term 1 from source-address 10.200.86.3/32 except
set firewall family inet filter soft term 1 then policer soft-100m
set firewall family inet filter soft term 1 then forwarding-class expedited-forwarding
set firewall family inet filter soft term 1 then accept
set firewall family inet filter soft term all-accept then accept
set firewall policer soft-100m if-exceeding bandwidth-limit 100m
set firewall policer soft-100m if-exceeding burst-size-limit 250k
set firewall policer soft-100m then forwarding-class best-effort

В этом случае трафику, in-profile будет назначен fw-class expedited-forwarding, а трафику попадающему в out-of-profile - best-effort (default).

Filter-specific policer: применяется к term, на все термы суммарно будет одно общее ограничение. Применяется для выделения разных типов трафика, но policing над ними будет делаться как над одним потоком.

set firewall policer hard filter-specific
set firewall policer hard if-exceeding bandwidth-limit 100m
set firewall policer hard if-exceeding burst-size-limit 250k
set firewall policer hard then discard
set firewall family inet filter hard-f term A from source-address 10.200.86.5/32
set firewall family inet filter hard-f term A then policer hard
set firewall family inet filter hard-f term A then accept
set firewall family inet filter hard-f term B from source-address 10.200.86.3/32
set firewall family inet filter hard-f term B then policer hard
set firewall family inet filter hard-f term B then accept
set firewall family inet filter hard-f term all-other then accept

Physical interface policer

Дает возможность создать аггрегированный полисер для одного физического интерфейса. Может быть полезным, если хочется создать общий полисер для разных family и разных unit на одном физическом интерфейсе.

set firewall policer int-poli physical-interface-policer
set firewall policer int-poli if-exceeding bandwidth-limit 100m
set firewall policer int-poli if-exceeding burst-size-limit 200k
set firewall policer int-poli then forwarding-class best-effort
set firewall family inet filter phys-int physical-interface-filter
set firewall family inet filter phys-int term A then policer int-poli
set firewall family inet filter phys-int term A then accept
set interfaces ge-1/0/5 unit 0 family inet filter input phys-int
set interfaces ge-1/0/5 unit 0 family inet6 filter input phys-int
set interfaces ge-1/0/5 unit 2 family inet filter input phys-int
set interfaces ge-1/0/5 unit 2 family inet6 filter input phys-int

В этом случае полисер 100 Мбит будет общим для всего физического интерфейса.

Policiers + Firewalls

Можно одновременно повесить на интерфейс и policer и filter.

Вх. трафик будет обрабатываться: 1.policer => 2.filter

Исх. трафик будет обрабатываться: 1.filter => 1.policer

Shaping

Помимо policing, можно лишний трафик обрезать шейпером. В Основном shaping делается на выходе (к исх трафику).

Разница:

  • policing на вх и вых | shaping на вых
  • policing - hard: дропает лишний трафик, soft: меняет forwarding class, который в последующем скорей всего дропнется.
  • shaping - лишний трафик кладет в буфер и чуть позже его передаст. Не хорошо для сервисов, чувствительных к задержке.
  • policing может влиять ну судьбу трафика за пределами роутера, назначая forw class
  • shaping не влияет на судьбу трафика за пределами роутера, т.к. кроме буферизации ничего не делает.

Дополнительная информация