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.
|
Маршрутизаторы которые не поддерживают атрибут 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
[править] Дополнительная информация
[править] Примечания