RFC: 4360
Оригинал: BGP Extended Communities Attribute
Категория: Предложенный стандарт
Дата публикации:
Авторы: , ,
Перевод: Николай Малых

Статус документа

В этом документе содержится спецификация протокола, предложенного сообществу Internet. Документ служит приглашением к дискуссии в целях развития и совершенствования протокола. Текущее состояние стандартизации протокола вы можете узнать из документа "Internet Official Protocol Standards" (STD 1). Документ может распространяться без ограничений.

Тезисы

В этом документе описан атрибут Extended Communities (Расширенные группы) протокола BGP-4. Данный атрибут обеспечивает механизм установки меток для информации, передаваемой в BGP-4. Эти метки могут использоваться для контроля за распространением информации и других приложений.

1. Введение

Атрибут Extended Communities обеспечивает механизм включения меток для информации, передаваемой протоколом BGP-4 [BGP-4]. Новый атрибут обеспечивает две новых возможности по сравнению с прежним атрибутом BGP Community [RFC1997]:

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

Добавление структуры делает возможным построение основанных на правилах приложений, для которых используются группы. Например, кто-либо может отфильтровывать все группы определенного типа или разрешать только определенные значения для того или иного типа групп. Обеспечивается также возможность указать передается ли определенная группа через границу автономной системы (AS). Без использования структуры такая задача может быть решена только путем явного перечисления всех значений групп, которые разрешено или запрещено передавать узлам BGP в соседних AS на основе свойства транзитивности.

1.1. Уровни требований

Ключевые слова необходимо (MUST), недопустимо (MUST NOT), требуется (REQUIRED), нужно (SHALL), не следует (SHALL NOT), следует (SHOULD), не нужно (SHOULD NOT), рекомендуется (RECOMMENDED), возможно (MAY), необязательно (OPTIONAL) в данном документе интерпретируются в соответствии с RFC 2119 [RFC2119].

2. Атрибут BGP Extended Communities

Атрибут Extended Communities относится к числу транзитивных (переходных) необязательных атрибутов BGP и имеет код типа (Type Code) 16. Атрибут состоит из набора «расширенных групп». Все маршруты с атрибутом Extended Communities принадлежат группам, указанным в этом атрибуте.

Каждая группа Extended Community представляется 8-октетным значением, формат которого показан ниже.

  • поле Type — 1 или 2 октета;
  • поле Value — оставшиеся октеты.
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Type high    |  Type low(*)  |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+          Value                |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Поле Type
  • Вводятся два класса поля типа (Type) — обычный (Regular) и расширенный (Extended) тип.

    Размер поля Type для типа Regular составляет 1 октет, а для типа Extended — 2 октета.

    Значение старшего октета поля Type определяет имеет расширенная группа тип Regular или Extended. Класс типа (Regular или Extended) не кодируется в структуре самого типа. Класс типа задается в документе, который определяет данный тип, и в реестре IANA.

    Формат старшего октета поля Type показан ниже.

     0 1 2 3 4 5 6 7
    +-+-+-+-+-+-+-+-+
    |I|T|           |
    +-+-+-+-+-+-+-+-+
    • I — флаг IANA
    • 0 — тип выделяется IANA с использованием правила First Come First Serve.
    • 1 — часть пространства этого поля Type представляет собой тип, распределяемый IANA на основе правил Standard Action или Early IANA Allocation. Остальное пространство данного поля Type оставлено для экспериментального использования.
    • T — бит транзитивности (Transitive)
    • 0 — группа передается между AS;
    • 1 — группа не передается между AS.

    Оставшиеся 6 битов показывают структуру группы.

  • Поле Value
  • Кодирование значений поля Value определяется типом группы, заданным в поле Type.

Две расширенных группы трактуются как одинаковые только при полном совпадении всех 8 октетов.

Два элемента пары <Type, Value> следует перечислять для задания любого значения группы. Оставшиеся октеты интерпретируются в зависимости от значения поля Type.

3. Определенные типы BGP Extended Community

В этой главе определено несколько расширенных типов и форматы поля Value для этих типов. Введенные здесь типы обеспечивают «шаблоны», каждый из которых идентифицируется старшим октетом поля Type, а младший октет этого поля (subtype) используется для индикации конкретного типа расширенной группы.

3.1. Двухоктетная расширенная группа уровня AS

Это расширенный тип с полем Type из двух октетов и шестиоктетным полем Value.

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x00 or 0x40  |   Sub-Type    |    Global Administrator       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Local Administrator                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Значение старшего октета данного расширенного типа может быть 0x00 или 0x40. Младший октет поля типа используется для индикации субтипа (Sub-Type).

Поле Value состоит из двух субполей:

  • Global Administrator (глобальный администратор) — 2 октета
  • Это субполе содержит номер автономной системы, выделенный IANA.
  • Local Administrator (локальный администратор) — 4 октета
  • Организация, указанная номером AS в субполе Global Administrator, может кодировать в этом субполе любую информацию. Формат и значение данного субполя следует задавать при определении субтипа группы.

3.2. Двухоктетная расширенная группа, связанная с адресом IPv4

Это расширенный тип с полем Type из двух октетов и шестиоктетным полем Value.

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x01 or 0x41  |   Sub-Type    |    Global Administrator       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Global Administrator (cont.)  |    Local Administrator        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Значение старшего октета данного расширенного типа может быть 0x01 или 0x41. Младший октет поля типа используется для индикации субтипа.

Поле Value состоит из двух субполей:

  • Global Administrator (глобальный администратор) — 4 октета
  • Это субполе содержит индивидуальный (unicast) адрес Ipv4, выделенный одним из регистраторов Internet.
  • Local Administrator (локальный администратор) — 2 октета
  • Организация, которой выделен адрес Ipv4, указанный в поле Global Administrator, может кодировать в этом субполе любую информацию. Формат и значение данного субполя следует задавать при определении субтипа группы.

3.3. Opaque Extended Community

Это расширенный тип с полем Type из двух октетов и шестиоктетным полем Value.

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x03 or 0x43  |   Sub-Type    |                Value          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Value (cont.)                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Значение старшего октета данного расширенного типа может быть 0x03 или 0x43. Младший октет поля типа используется для индикации субтипа.

Это базовый тип расширенной группы. Значения поля Sub-Type, которое определяет трактовку поля Value, выделяются IANA.

4. Route Target Community

Route Target Community идентифицирует один или множество маршрутизаторов, которые могут получить набор маршрутов (содержащий данный атрибут Community), переносимый BGP. Этот атрибут передается через границы AS.

Route Target Community относится к расширенному типу.

Значение старшего октета поля Type для Route Target Community может быть 0x00, 0x01 или 0x02. Значение младшего октета поля Type для этой группы — 0x02.

Когда старший октет поля Type имеет значение 0x00 или 0x02, субполе Local Administrator содержит значение из пространства, администрируемого организацией, для которой соответствующим органом был выделен номер автономной системы, указанный в поле Global Administrator.

Когда старший октет поля Type имеет значение 0x01, субполе Local Administrator содержит значение из пространства, администрируемого организацией, для которой соответствующим органом был выделен адрес IP, указанный в субполе Global Administrator.

Один из вариантов использования Route Target Community описан в [RFC4364].

5. Route Origin Community

Route Origin Community идентифицирует один или множество маршрутизаторов, которые поместили набор маршрутов (содержащий данный атрибут Community) в BGP. Этот атрибут передается через границы AS.

Route Origin Community относится к расширенному типу.

Старший октет поля Type для Route Origin Community может принимать значение 0x00, 0x01 или 0x02. Значение младшего октета поля Type для этой группы — 0x03.

Когда старший октет поля Type имеет значение 0x00 или 0x02, субполе Local Administrator содержит значение из пространства, администрируемого организацией, для которой соответствующим органом был выделен номер автономной системы, указанный в поле Global Administrator.

Когда старший октет поля Type имеет значение 0x01, субполе Local Administrator содержит значение из пространства, администрируемого организацией, для которой соответствующим органом был выделен адрес IP, указанный в субполе Global Administrator.

Один из вариантов использования Route Target Community описан в [RFC4364].

6. Работа с расширенными группами

Узел BGP может использовать атрибут Extended Communities для контроля маршрутной информации, которая воспринимается им или распространяется его партнерам.

Атрибут Extended Community недопустимо использовать для изменения процесса выбора лучшего пути BGP такими способами, которые ведут к образованию маршрутных петель.

Узел BGP, получивший маршрут без атрибута Extended Communities, может добавить такой атрибут в конце маршрута (append) при распространении этого маршрута своим партнерам.

Узел BGP, получивший маршрут с атрибутом Extended Communities, может изменить этот атрибут в соответствии с локальной политикой.

По умолчанию, если группа маршрутов агрегируется и результирующий маршрут не включает атрибута ATOMIC_AGGREGATE, тогда в этот маршрут следует включать атрибут Extended Communities, который содержит набор всех атрибутов Extended Communities из агрегированных маршрутов. Принятое по умолчанию поведение может быть измененно параметрами локальной конфигурации и в таких случаях обработка атрибутов Extended Communities при агрегировании маршрутов определяется локальной политикой узла BGP, выполняющего агрегирование.

Если маршрут содержит нетранзитивную расширенную группу, то перед анонсированием такого маршрута через границу AS эту группу следует удалить из маршрута. Однако группу не нужно удалять при анонсировании маршрута через границу конфедерации BGP.

Маршрут может содержать одновременно атрибут BGP Communities, определенный в [RFC1997]), и атрибут Extended BGP Communities. В таких случаях атрибут BGP Communities обрабатывается в соответствии с [RFC1997], а Extended BGP Communities — в соответствии с настоящим документом.

7. Согласование с IANA

Все атрибуты BGP Extended Communities содержат поле Type. Агентство IANA создало реестр "BGP Extended Communities Type", который будет поддерживаться IANA.

Поле Type может быть обычным (regular) или расширенным (extended). Для обычного поля Type агентство IANA выделяет 8-битовое значение. а для расширенного — 16-битовое.

Значения, выделенные для обычных (regular) полей Type, недопустимо выделять в качестве значений старшего октета расширенных (extended) полей Type. Значения, выделенные для старшего октета расширенных полей Type, недопустимо выделять в качестве значений обычных полей Type.

Поле Type показывает является атрибут Extended Community переходным или непереходным. Будущие запросы на выделение значений Type должны указывать для какого атрибута (переходного или непереходного) Extended Community предназначено это значение Type.

Выделение значений будет осуществляться в соответствии с процессом Standards Action, определенным в [RFC2434], процессом Early IANA Allocation, определенным в [RFC4020] или правилом First Come First Served, которое определено в [RFC2434].

В приведенной ниже таблице указаны диапазоны для распределения значений поля Type.

Тип Правила распределения
Standard Action Early IANA Allocation First Come First Served
Обычные, переходные 0x90 - 0xbf 0x00 - 0x3f
Обычные, непереходные 0xd0 - 0xff 0x40 - 0x7f
Расширенные, переходные 0x9000 - 0xbfff 0x0000 - 0x3fff
Расширенные, непереходные 0xd000 - 0xffff 0x4000 - 0x7fff

При распределении выделяется имя и значение.

Значения поля Type из диапазонов 0x80 - 0x8f и 0xc0 - 0xcf для обычного типа и диапазонов 0x8000 - 0x8fff и 0xc000 - 0xcfff — для расширенного, предназначены для экспериментального использования, как определено в RFC 3692.

Этот документ определяет класс расширенных групп, называемых двухоктетными расширенными группами уровня AS (AS specific extended community), для которых IANA поддерживает реестр "Two-octet AS Specific Extended Community". Все группы этого класса относятся к расширенному типу. Выделение значений для этого класса будет происходить согласно правилу "First Come First Served", определенному в [RFC2434]. Значения Type для переходных групп этого класса относятся к диапазону 0x0000 - 0x00ff, а для непереходных — к диапазону 0x4000 - 0x40ff. При распределении выделяется имя и значение.

В данном документе выделяются два значения для двухоктетных расширенных групп уровня AS, показанные в таблице.

Имя Значение поля Type
two-octet AS specific Route Target 0x0002
two-octet AS specific Route Origin 0x0003

Данный документ определяет класс расширенных групп, называемых IPv4 address specific extended, для которых IANA поддерживает реестр "IPv4 Address Specific Extended Community". Все группы этого класса относятся к расширенному типу. Выделение значений для этого класса будет происходить согласно правилу "First Come First Served", определенному в [RFC2434]. Значения Type для переходных групп этого класса относятся к диапазону 0x0100 - 0x01ff, а для непереходных — к диапазону 0x4100 - 0x41ff. При распределении выделяется имя и значение.

В таблице показаны значения, выделенные данным документом для класса двухоктетных расширенных групп, связанных с адресом IPv4.

Имя Значение поля Type
IPv4 address specific Route Target 0x0102
IPv4 address specific Route Origin 0x0103

Данный документ определяет расширенные группы, названные Opaque Extended Communityб для которых IANA поддерживает реестр "Opaque Extended Community". Все группы этого класса относятся к расширенному типу. Выделение значений для этого класса будет происходить согласно правилу "First Come First Served", определенному в [RFC2434]. Значения Type для переходных групп этого класса относятся к диапазону 0x0300 - 0x03ff, а для непереходных — к диапазону 0x4300 - 0x43ff. При распределении выделяется имя и значение.

При запросе на выделение значений из нескольких реестров, определенных выше, может запрашиваться выделение одного значения Type из разных реестров. По возможности агентству IANA следует принимать это во внимание.

8. Вопросы безопасности

Причастность данного расширения BGP к вопросам безопасности подобна BGP Communities [RFC1997].

Данное расширение BGP не изменяет основных проблем безопасности. В частности, операторы, полагающиеся на информацию, передаваемую в BGP должны иметь переходные доверительные отношения с источником такой информации. Задание механизма обеспечения таких отношений выходит за пределы данного документа.

9. Благодарности

Спасибо John Hawkinson, Jeffrey Haas, Bruno Rijsman, Bill Fenner и Alex Zinin за их предложения и отклики.

10. Нормативные документы

[BGP-4] Rekhter, Y. и T. Li, «Протокол BGP-4», RFC 4271, Январь 2006
[RFC1997] Chandra, R., Traina, P., and T. Li, «BGP Communities Attribute», RFC 1997, Август 1996.
[RFC2119] Bradner, S., «Key words for use in RFCs to Indicate Requirement Levels», BCP 14, RFC 2119, Март 1997.
[RFC2434] Narten, T. и H. Alvestrand, «Guidelines for Writing an IANA Considerations Section in RFCs», BCP 26, RFC 2434, October 1998.
[RFC4020] Kompella, K. и A. Zinin, «Early IANA Allocation of Standards Track Code Points», BCP 100, RFC 4020, Февраль 2005.

11. Дополнительная литература

[RFC4364] Rosen, E. и Y. Rekhter, «BGP/MPLS IP Virtual Private Networks (VPNs)», RFC 4364, Февраль 2006.

Адреса авторов

Srihari R. Sangli
Cisco Systems, Inc.
EMail: moc.ocsic@irahirsr

Dan Tappan
Cisco Systems, Inc.
250 Apollo Drive
Chelmsford, MA 01824
EMail: moc.ocsic@nappat

Yakov Rekhter
Juniper Networks, Inc.
1194 N. Mathilda Ave
Sunnyvale, CA 94089
EMail: ten.repinuj@vokay

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