RFC: 5291
Оригинал: Outbound Route Filtering Capability for BGP-4
Категория: Предложенный стандарт
Дата публикации:
Авторы: ,
Перевод: Николай Малых

RFC 5291, Страница 3 из 7

4. Передача элементов ORF в BGP

Элементы ORF передаются в сообщениях BGP ROUTE-REFRESH [BGP-RR].

Узел BGP может отличать входящие сообщения ROUTE-REFRESH с одним или несколькими элементами ORF от обычных сообщений ROUTE-REFRESH с помощью поля Message Length в заголовке сообщения BGP.

В одном сообщении ROUTE-REFRESH может содержаться множество элементов ORF для одного или множества фильтров ORF, при условии, что для всех этих элементов значения AFI/SAFI совпадают.

С точки зрения кодирования каждый элемент ORF состоит из общей части и зависимой от типа части, как показано на рисунках 1 и 2.

Общая часть включает поля <AFI/SAFI, ORF-Type, Action, Match> и представляется следующим образом:

  • Компонента AFI/SAFI элемента ORF представляется полями AFI/SAFI сообщения ROUTE-REFRESH.

  • Вслед за компонентой AFI/SAFI размещается 1-октетное поле When-to-refresh, которое может принимать значения IMMEDIATE (0x01) или DEFER (0x02). Семантика значений IMMEDIATE и DEFER обсуждается ниже в параграфе «Функционирование».

  • Вслед за полем When-to-refresh помещается один или множество ORF, сгруппированных по ORF-Type.

  • Компонента ORF-Type представляет 1 октетом.

  • Компонента Length of ORF entries представляет собой 2-октетное поле, содержащую общий размер последующих однотипных элементов ORF в октетах.

  • +------------------------------------------------+
    | Address Family Identifier (2 октета)           |
    +------------------------------------------------+
    | Резерв (1 октет)                               |
    +------------------------------------------------+
    | Subsequent Address Family Identifier (1 октет) |
    +------------------------------------------------+
    | When-to-refresh (1 октет)                      |
    +------------------------------------------------+
    | ORF Type (1 октет)                             |
    +------------------------------------------------+
    | Length of ORF entries (2 октета)               |
    +------------------------------------------------+
    | Первый элемент ORF (перем.)                    |
    +------------------------------------------------+
    | Второй элемент ORF (перем.)                    |
    +------------------------------------------------+
    | ...                                            |
    +------------------------------------------------+
    | N-й элемент ORF (перем.)                       |
    +------------------------------------------------+
    | ORF Type (1 октет)                             |
    +------------------------------------------------+
    | Length of ORF entries (2 октета)               |
    +------------------------------------------------+
    | Первый элемент ORF (перем.)                    |
    +------------------------------------------------+
    | Второй элемент ORF (перем.)                    |
    +------------------------------------------------+
    | ...                                            |
    +------------------------------------------------+
    | N-й элемент ORF (перем.)                       |
    +------------------------------------------------+
    | ...                                            |
    +------------------------------------------------+
    
    Рисунок 1: Передача элементов ORF в сообщении ROUTE-REFRESH

Остальные компоненты общей части кодируются в первом октете каждого элемента ORF (отсчет от старшего бита), как показано на рисунке 2.

  • Поле Action занимает 2 бита и может принимать значения 0 (ADD), 1 (REMOVE) и 2 (REMOVE-ALL).

  • Поле Match занимает 1 бит. Значение 0 означает операцию PERMIT, а 1 — DENY. Это поле имеет смысл только в тех случаях, когда в поле Action указано значение ADD или REMOVE.

  • Резервное поле занимает 5 битов и должно содержать нулевые значения при передаче и игнорироваться на приемной стороне.

  • +---------------------------------+
    | Action (2 бита)                 |
    +---------------------------------+
    | Match (1 бит)                   |
    +---------------------------------+
    | Резерв (5 битов)                |
    +---------------------------------+
    | Зависящая от типа часть (перем) |
    +---------------------------------+
    
    Рисунок 2: Представление записи ORF
  • Если компонента Action записи ORF задает значение REMOVE-ALL, данный элемент содержит только общую часть.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.