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.