Глава 6. Rewrite rules
Основы Rewrite rules
Процесс происходит в конце всего цикла QoS. Когда понятно куда и как отправится пакет, маршрутизатор может записать в заголовок пакета - code point bits.
Способствует целостности и непрерывности QoS на всей сети.
Набор rewrite rules образует rewrite table.
Процесс 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.
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..
Опасно: кол-во правил, присвоенных для одного логического интерфейса - зависит от платформы.
© Наталия Бобкова 2014—2022