Глава 6. Rewrite rules: различия между версиями

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «=== Overview === Процесс происходит в конце всего цикла QoS. Когда пакет понятно куда и как отпра…»)
 
м
 
(не показано 11 промежуточных версий этого же участника)
Строка 1: Строка 1:
=== Overview ===
{{#description2: Основы Rewrite rules. Default rewrite tables. Custom rewrite tables. Где использовать rewrite rules. Rewrite для комбинации разных протоколов. Информация для подготовки к экзаменам Juniper.}}
=Основы Rewrite rules=


Процесс происходит в конце всего цикла QoS. Когда пакет понятно куда и как отправится, маршрутизатор помечает его. Эта метка потом будет использоваться другим устр-вом.
Процесс происходит в конце всего цикла QoS. Когда понятно куда и как отправится пакет, маршрутизатор может записать в заголовок пакета - code point bits.


Передача QoS profile пакета следующему устройству: заполняются QoS биты в пакете, основанные на forwarding class и PLP.
Способствует целостности и непрерывности QoS на всей сети.
 
Набор rewrite rules образует rewrite table.  


Способствует целостности и непрерывности QoS на всей сети.
Процесс rewrite:
#Считывается исходный Forw class и PLP.
#Исходя из этого находит в table соответствующий code-point.
#Записывает в заголовок пакета новый code-point.


Поддерживается для: DSCP (IPv4, IPv6), IP precedence bit, MPLS EXP bits, 802.1p CoS bits, 802.1ad DEI bits.
Поддерживается для: DSCP (IPv4, IPv6), IP precedence bit, MPLS EXP bits, 802.1p CoS bits, 802.1ad DEI bits.


===Rewrite rules and tables ===
Rewrite rule применяется на интерфейс внутри class-of-service настроек.


Rewrite rule это сопоставление, которое связывает forw class и PLP с QoS битам для определенного протокола.
*На физический интерфейс можно применить только DSCP IPv4 '''ИЛИ''' DCSP IPv6.
*На логический интерфейс можно применять и DSCP IPv4 и DSCP IPv6.


Набор rewrite rules образует rewrite table. Каждое правило смотрит какие forw class и PLP присвоены пакеты, смотрят в таблице какому значению CoS соответствуют и записывают CoS в заголовок пакета.
Rewrite-rule работает до egress filter. Поэтому в egress filter нужно делать политики, полагаясь на новый code-point пакета.


Для протокола можно создать несколько rewrite rules, используя разные forw class и PLP для разных значений CoS.
Дефолтное поведение QoS на Junos:
*Bits associated with DSCP traffic class are not rewritten to match the new traffic classification values.
*Bits associated with MPLS traffic class are rewritten to match the new traffic classification values.


'''Default rewrite tables''':
=Default rewrite tables=


Несколько таблиц существует, но большинство не используется по умолчанию, т.к. должны быть явно заданы на unit'e.
Несколько таблиц существует, но большинство не используется по умолчанию, т.к. должны быть явно заданы на unit'e.
Строка 24: Строка 33:
Есть табличка со стандартными значениями (в книге).
Есть табличка со стандартными значениями (в книге).


'''Configuring'''
'''Конфигурация'''
 
  set class-of-service interfaces ge-0/0/0 unit 200 rewrite-rules dscp default
  set class-of-service interfaces ge-0/0/0 unit 200 rewrite-rules dscp default
  set class-of-service interfaces ge-0/0/0 unit 200 rewrite-rules exp default
  set class-of-service interfaces ge-0/0/0 unit 200 rewrite-rules exp default
Строка 32: Строка 40:
Когда пакет придет на интерфейс для дальнейшей передачи, система применит rewrite rule исходя из нужного протокола.
Когда пакет придет на интерфейс для дальнейшей передачи, система применит rewrite rule исходя из нужного протокола.


'''Custom rewrite tables''':
=Custom rewrite tables=


Если не подходят дефолтные правила, создаем свое!! Нужно задать forw class, PLP и CoS.
Если не подходят дефолтные правила, создаем свое!! Нужно задать forw class, PLP и CoS.


'''Config''':
'''Конфигурация'''
 
Задаем свои code-point (если нужно)
  set class-of-service rewrite-rules dscp ''custom-ipv4-rule'' forwarding-class BestEffort loss-priority high code-points 000000
  set class-of-service code-point-aliases dscp vpn-low 001010
  set class-of-service rewrite-rules dscp ''custom-ipv4-rule'' forwarding-class BestEffort loss-priority low code-points 000001
set class-of-service code-point-aliases dscp vpn-high 001100
 
  set class-of-service code-point-aliases dscp vpn-priority 101110
  set class-of-service rewrite-rules dscp ''custom-ipv4-rule'' forwarding-class Priority-data loss-priority high code-points 000010
set class-of-service code-point-aliases dscp be 000000
  set class-of-service rewrite-rules dscp ''custom-ipv4-rule'' forwarding-class Priority-data loss-priority high code-points 000011
  set class-of-service code-point-aliases dscp nc 110000
 
set class-of-service code-point-aliases exp be 000
  set class-of-service interfaces ge-0/0/0 unit 200 rewrite-rules dscp custom-ipv4-rule
  set class-of-service code-point-aliases exp vpn-low 010
set class-of-service code-point-aliases exp vpn-high 011
  set class-of-service code-point-aliases exp vpn-priority 101


Также для упрощения можно использовать ''import'': изменяем несколько параметров в уже имеющихся дефолтных или наших rewrite rules.
rewrite-rules для DSCP:
set class-of-service rewrite-rules dscp dscp-rewrite forwarding-class best-effort loss-priority low code-point be
set class-of-service rewrite-rules dscp dscp-rewrite forwarding-class vpn loss-priority low code-point vpn-low
set class-of-service rewrite-rules dscp dscp-rewrite forwarding-class vpn loss-priority high code-point vpn-high
set class-of-service rewrite-rules dscp dscp-rewrite forwarding-class vpn-priority loss-priority low code-point vpn-priority
set class-of-service rewrite-rules dscp dscp-rewrite forwarding-class nc loss-priority low code-point nc
rewrite-riles для EXP:
set class-of-service rewrite-rules exp exp-rewrite forwarding-class best-effort loss-priority low code-point be
set class-of-service rewrite-rules exp exp-rewrite forwarding-class vpn loss-priority low code-point vpn-low
set class-of-service rewrite-rules exp exp-rewrite forwarding-class vpn loss-priority high code-point vpn-high
set class-of-service rewrite-rules exp exp-rewrite forwarding-class vpn-priority loss-priority low code-point vpn-priority


  set class-of-service rewrite-rules exp ''custom-ipv4-rule'' import default forwarding-class BestEffort loss-priority high code-points 000 (001->000)
Применяем rewrite-rules:
  set class-of-service interfaces ge-0/0/0 unit * rewrite-rules dscp dscp-rewrite
set class-of-service interfaces ge-0/0/0 unit * rewrite-rules exp exp-rewrite


'''Where'''
=Где использовать rewrite rules=


Лучше всего использовать rewrite rules внутри сети, на интерфейсах, которые входят в QoS домен. Такая позиция сделает более эффективной и менее трудозатратной работу CoS, засчет четкой обработки BA classification на ingress  для других устройств в сети.
Лучше всего использовать rewrite rules внутри сети, на интерфейсах, которые входят в QoS домен. Такая позиция сделает более эффективной и менее трудозатратной работу CoS, засчет четкой обработки BA classification на ingress  для других устройств в сети.


=== Rewrite combinations ===
=Rewrite для комбинации разных протоколов=
 
Присвоенная метка в заголовке пакета выбирается на основании протокола. Бывают такие случаи, когда пакет может иметь несколько протоколов, например:
Присвоенная метка в заголовке пакета выбирается на основании протокола. Бывают такие случаи, когда пакет может иметь несколько протоколов, например:


Строка 64: Строка 85:


Такие правила вроде уж созданы как дефолтные, например: mpls-inet-both, outer-and-inner..
Такие правила вроде уж созданы как дефолтные, например: mpls-inet-both, outer-and-inner..
{{note|text='''Опасно''': кол-во правил, присвоенных для одного логического интерфейса - зависит от платформы.}}


'''Опасно''': кол-во правил, присвоенных для одного логического интерфейса - зависит от платформы.
=Дополнительная информация=
*[[Глава 1. QoS]]
*[[Глава 2. Packet classification]]
*[[Глава 8. Packet flow]]

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

Основы Rewrite rules

Процесс происходит в конце всего цикла QoS. Когда понятно куда и как отправится пакет, маршрутизатор может записать в заголовок пакета - code point bits.

Способствует целостности и непрерывности QoS на всей сети.

Набор rewrite rules образует rewrite table.

Процесс rewrite:

  1. Считывается исходный Forw class и PLP.
  2. Исходя из этого находит в table соответствующий code-point.
  3. Записывает в заголовок пакета новый code-point.

Поддерживается для: DSCP (IPv4, IPv6), IP precedence bit, MPLS EXP bits, 802.1p CoS bits, 802.1ad DEI bits.

Rewrite rule применяется на интерфейс внутри class-of-service настроек.

  • На физический интерфейс можно применить только DSCP IPv4 ИЛИ DCSP IPv6.
  • На логический интерфейс можно применять и DSCP IPv4 и DSCP IPv6.

Rewrite-rule работает до egress filter. Поэтому в egress filter нужно делать политики, полагаясь на новый code-point пакета.

Дефолтное поведение QoS на Junos:

  • Bits associated with DSCP traffic class are not rewritten to match the new traffic classification values.
  • Bits associated with MPLS traffic class are rewritten to match the new traffic classification values.

Default rewrite tables

Несколько таблиц существует, но большинство не используется по умолчанию, т.к. должны быть явно заданы на unit'e. НО! на интерфейсах, где включен MPLS, используется дефолтное MPLS exp rewrite rule.

Есть табличка со стандартными значениями (в книге).

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

set class-of-service interfaces ge-0/0/0 unit 200 rewrite-rules dscp default
set class-of-service interfaces ge-0/0/0 unit 200 rewrite-rules exp default
set class-of-service interfaces ge-0/0/0 unit 200 rewrite-rules ieee 802.1 default

Когда пакет придет на интерфейс для дальнейшей передачи, система применит rewrite rule исходя из нужного протокола.

Custom rewrite tables

Если не подходят дефолтные правила, создаем свое!! Нужно задать forw class, PLP и CoS.

Конфигурация Задаем свои code-point (если нужно)

set class-of-service code-point-aliases dscp vpn-low 001010
set class-of-service code-point-aliases dscp vpn-high 001100
set class-of-service code-point-aliases dscp vpn-priority 101110
set class-of-service code-point-aliases dscp be 000000
set class-of-service code-point-aliases dscp nc 110000
set class-of-service code-point-aliases exp be 000
set class-of-service code-point-aliases exp vpn-low 010
set class-of-service code-point-aliases exp vpn-high 011
set class-of-service code-point-aliases exp vpn-priority 101

rewrite-rules для DSCP:

set class-of-service rewrite-rules dscp dscp-rewrite forwarding-class best-effort loss-priority low code-point be
set class-of-service rewrite-rules dscp dscp-rewrite forwarding-class vpn loss-priority low code-point vpn-low
set class-of-service rewrite-rules dscp dscp-rewrite forwarding-class vpn loss-priority high code-point vpn-high
set class-of-service rewrite-rules dscp dscp-rewrite forwarding-class vpn-priority loss-priority low code-point vpn-priority
set class-of-service rewrite-rules dscp dscp-rewrite forwarding-class nc loss-priority low code-point nc

rewrite-riles для EXP:

set class-of-service rewrite-rules exp exp-rewrite forwarding-class best-effort loss-priority low code-point be
set class-of-service rewrite-rules exp exp-rewrite forwarding-class vpn loss-priority low code-point vpn-low
set class-of-service rewrite-rules exp exp-rewrite forwarding-class vpn loss-priority high code-point vpn-high
set class-of-service rewrite-rules exp exp-rewrite forwarding-class vpn-priority loss-priority low code-point vpn-priority

Применяем rewrite-rules:

set class-of-service interfaces ge-0/0/0 unit * rewrite-rules dscp dscp-rewrite
set class-of-service interfaces ge-0/0/0 unit * rewrite-rules exp exp-rewrite

Где использовать rewrite rules

Лучше всего использовать rewrite rules внутри сети, на интерфейсах, которые входят в QoS домен. Такая позиция сделает более эффективной и менее трудозатратной работу CoS, засчет четкой обработки BA classification на ingress для других устройств в сети.

Rewrite для комбинации разных протоколов

Присвоенная метка в заголовке пакета выбирается на основании протокола. Бывают такие случаи, когда пакет может иметь несколько протоколов, например:

IPv4 packet over Ethernet, using vlan. DSCP + ieee 802.1p IPv4 packet over MPLS: DSCP + EXP.

JunOS может записывать 1 или 2 значения CoS.

Такие правила вроде уж созданы как дефолтные, например: mpls-inet-both, outer-and-inner..

Опасно: кол-во правил, присвоенных для одного логического интерфейса - зависит от платформы.

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