BGP community

Материал из Xgu.ru

Перейти к: навигация, поиск

< BGP


Содержание

[править] Описание атрибута community

Атрибут community:

  • Тегирование маршрутов
  • Существуют предопределенные значения
  • По умолчанию не пересылаются соседям
  • Один из вариантов применения: передается соседней AS для управления входящим трафиком

Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.

Как правило community отображаются в формате ASN:VALUE. В таком формате, доступны для использования community от 1:0 до 65534:65535. В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.

Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.

Если маршрутизатор получает маршрут в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.

Предопределенные значения communities (Well-known Communities):

  • no-export (0xFFFFFF01) — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,
  • no-advertise (0xFFFFFF02) — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям,
  • no-export-subconfed (0xFFFFFF03) — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.

Note-icon.gif

Маршрутизаторы которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.

[править] BGP community в Cisco

Изменение формата community с 32битного числа на пару 16битных чисел:

dyn(config)# ip bgp-community new-format 

По умолчанию community отбрасываются в исходящих обновлениях BGP. Даже если community указывались в соответствующей исходящей route-map. Для того чтобы изменить это, необходимо явно настроить отправку community соседям:

dyn(config-router)# neighbor <ip-address> send-community

[править] Community internet

В Cisco, кроме well-known значений community, используется также специальное значение internet. Для этого используется значение 0:0.

Community internet используется для обозначения всех маршрутизаторов, так как все маршрутизаторы принадлежат этой community. Например, если в community-list необходимо разрешить все community, кроме одного определенного значения, то permit internet будет использоваться как permit all в ACL.

Пример:

ip community-list 1 deny 100:37
ip community-list 1 permit internet

[править] community-list

Стандартный community-list:

dyn(config)# ip community-list <1-99> <permit | deny> <value>

Особенности стандартного community-list:

  • Для того чтобы указать совпадение со всеми community необходимо использовать ключевое слово internet.
  • Если в правиле ip community-list указано несколько значений community, то они все должны быть в пришедшем маршруте для того чтобы было совпадение с правилом.
  • Если совпадений в community-list не нашлось, то маршрут будет запрещен неявным правилом (как в ACL).

Расширенный community-list:

dyn(config)# ip community-list <100-199> <permit | deny> <regexp>

Особенности расширенного community-list:

  • Community присоединенные к маршруту упорядочиваются, конвертируются в строки и сравниваются с регулярными выражениями.
  • Для того чтобы указать совпадение со всеми community необходимо использовать регулярное выражение ".*".

Именованный community-list:

dyn(config)# ip community-list <standard|expanded> <name> <permit|deny> <value|regexp>

[править] Community в route-map

Использование community как критерия совпадения в route-map:

route-map <name> permit <sequence>
 match community <list-name|list-number> [exact]

Удаление community из входящих или исходящих обновлений BGP:

route-map <name> permit <sequence>
 set comm-list <list-name|list-number> delete



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

[править] Примечания