Глава 3. Policing: различия между версиями
м  | 
				|||
| (не показаны 24 промежуточные версии этого же участника) | |||
| Строка 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.}}  | ||
==Основы policing==  | |||
*Первая ступень управления трафиком при заторах. Использует bandwidth threshold and max burst size. Может управлять трафиком (назначать PLP, forw-class), который превысил оба порога (не только шейпить).  | *Первая ступень управления трафиком при заторах. Использует bandwidth threshold and max burst size. Может управлять трафиком (назначать PLP, forw-class), который превысил оба порога (не только шейпить).  | ||
*Применяются ограничения bandwidth для вх и исх трафика.  | *Применяются ограничения bandwidth для вх и исх трафика.  | ||
| Строка 5: | Строка 6: | ||
*Определяет трафик как: 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.  | ||
#  | #не дропается, но ему присваивается определенное значение PLP, по которому в случае заторов он будет отброшен шедулерами.  | ||
=== Параметры ===  | === Параметры ===  | ||
| Строка 30: | Строка 31: | ||
*Один threshold по скорости ('''CIR''')  | *Один threshold по скорости ('''CIR''')  | ||
*Один burst threshold, с помощью которого создается 2 цвета, в которые может быть "окрашен" трафик. ('''CBS''')  | *Один burst threshold, с помощью которого создается 2 цвета, в которые может быть "окрашен" трафик. ('''CBS''')  | ||
*Трафик, превышающий CIR + CBS => '''discard / set forwarding class / set PLP'''  | *Трафик, превышающий 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'''  | |||
  then ''discard''  | |||
== Tricolor marking policers ==  | == Tricolor marking policers ==  | ||
Также не только   | Также не только дропает трафик, а можно задавать PLP в зависимости от значений CIR, PIR, CBS, EBS.  | ||
Зеленые пакеты могут стать желтыми.  | |||
=== Single-rate tricolor marking policy===  | === Single-rate tricolor marking policy===  | ||
Полисинг основан на двух burst thresholds.  | Полисинг основан на двух burst thresholds.  | ||
| Строка 49: | Строка 50: | ||
:*CBS < x < EBS - желтый = medium-high PLP  | :*CBS < x < EBS - желтый = medium-high PLP  | ||
:*> EBS - красный - 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===  | ===Two-rate tricolor marking policy===  | ||
| Строка 80: | Строка 69: | ||
:*CIR+CBS < x < PIR+PBS - желтый = medium-low PLP  | :*CIR+CBS < x < PIR+PBS - желтый = medium-low PLP  | ||
:*> PIR+PBS - красный = 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;  | ||
====  | == Применение полисеров==  | ||
=== Interface policers ===  | === Interface policers ===  | ||
*Не часть firewall filter.  | *Не часть firewall filter.  | ||
*Можно применить к: protocol family, logical int, physical int.  | *Можно применить к: protocol family, logical int, physical int.  | ||
*Можно применить на input и output.  | *Можно применить на input и output.  | ||
'''Конфигурация'''  | |||
Для '''protocol family''':  | Для '''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 Мбит.  | В таком случае threshold по трафику на каждую '''family''' будет 100 Мбит.  | ||
| Строка 144: | Строка 124: | ||
  +   logical-interface-policer;  |   +   logical-interface-policer;  | ||
=== Policing   | === Policing с использованием firewall filter ===  | ||
*Можно применять полисеры внутри ff: тогда в ''then'' нужно указать не терминирующее действие.  | *Можно применять полисеры внутри ff: тогда в ''then'' нужно указать не терминирующее действие, а назначение policer.  | ||
*Могут применяться только к ''family''  | *Могут применяться только к ''family''  | ||
*Могут применяться на in/out  | *Могут применяться на in/out  | ||
'''Конфигурация'''  | |||
''hard'':  | ''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'':  | ''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  | В этом случае трафику, in-profile будет назначен fw-class expedited-forwarding, а трафику попадающему в out-of-profile - best-effort (default).  | ||
'''Filter-specific policer''': применяется к ''term'', на все термы суммарно будет одно общее ограничение. Применяется для выделения разных типов трафика, но policing над ними будет делаться как над одним потоком.  | '''Filter-specific policer''': применяется к ''term'', на все термы суммарно будет одно общее ограничение. Применяется для выделения разных типов трафика, но policing над ними будет делаться как над одним потоком.  | ||
| Строка 206: | Строка 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  | ||
=== Physical interface policer ===  | === Physical interface policer ===  | ||
| Строка 251: | Строка 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: Трафик который превышает лимит:
- не дропается, но направляется в определенный forwarding class.
 - не дропается, но ему присваивается определенное значение 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 не влияет на судьбу трафика за пределами роутера, т.к. кроме буферизации ничего не делает.