Настройка BGP Communities для гибкого управления политиками операторов связи
- Входящий интернет-трафик идет через дорогой или узкий резервный канал связи вместо основного.
- Вышестоящий провайдер (Tier-1/2 ISP) игнорирует AS Path Prepending из-за жестко заданного у себя Local Preference.
- Невозможность оперативно активировать RTBH (Remote Triggered Black Hole) при DDoS-атаке на конкретный IP-адрес.
- BGP-сообщество выставляется в Route-Map, но не передается провайдеру (отсутствует директива
send-community).
1. Назначение BGP Communities (RFC 1997)
BGP Community — это 32-битный числовой атрибут, передаваемый внутри NLRI обновления и используемый для маркировки префиксов. Формат AA:NN (где AA — номер AS оператора, NN — идентификатор действия) позволяет управлять маршрутизацией на стороне аплинка.
2. Стандартные (Well-Known) Communities
NO_EXPORT (0xFFFFFF01): Не передавать префикс за пределы соседней автономной системы.NO_ADVERTISE (0xFFFFFF02): Не передавать префикс вообще никаким BGP пирам.BLACKHOLE (RFC 7999 / 65535:666): Сбросить весь трафик к префиксу на шлюзе провайдера в Null0.
3. Конфигурация управления политиками оператора
Пример: AS65001 передает префиксы провайдеру AS12345 с требованием выставить Local Preference = 80 на их стороне и активировать Blackhole при аварии.
! Определение ACL для блокируемого IP (DDoS Target)
ip prefix-list PL_BLACKHOLE_TARGET permit 203.0.113.53/32
! Определение маршрутной карты анонсов
route-map RM_ISP1_OUT permit 10
match ip address prefix-list PL_BLACKHOLE_TARGET
! RFC 7999 Well-known Blackhole community
set community 65535:666
!
route-map RM_ISP1_OUT permit 20
match ip address prefix-list PL_MY_PREFIXES
! Сообщество провайдера AS12345: выставить Local_Pref = 80 (Backup link)
set community 12345:80 12345:1001 additive
!
router bgp 65001
neighbor 198.51.100.1 remote-as 12345
neighbor 198.51.100.1 route-map RM_ISP1_OUT out
! КРИТИЧЕСКИ ВАЖНО: включить отправку community!
neighbor 198.51.100.1 send-community both4. Фильтрация входящих маршрутов по BGP Community
! Определение community-list
ip community-list standard COMM_BACKUP_ROUTE permit 64500:50
route-map RM_ISP_IN permit 10
match community COMM_BACKUP_ROUTE
set local-preference 50
!
route-map RM_ISP_IN permit 20
set local-preference 1005. Проверка и верификация
! Просмотр назначенных Community для конкретного префикса
show ip bgp 203.0.113.0/24
! Просмотр отправляемых префиксов с атрибутами
show ip bgp neighbors 198.51.100.1 advertised-routes Частые вопросы (FAQ)
Почему провайдер не реагирует на отправляемые мной BGP Communities?
1) Убедитесь, что на вашей стороне включена команда 'neighbor <IP> send-community both'. 2) Убедитесь по BGP Looking Glass или NOC-документации провайдера, что он поддерживает именно этот набор чисел сообществ.
Зачем указывать ключевое слово 'additive' при установке сообщества?
Ключевое слово 'additive' добавляет новое сообщество к уже существующим в маршруте атрибутам. Без него команда 'set community' перезапишет все ранее назначенные метки сообществ.
Как работают Extended Communities в BGP EVPN и MPLS L3VPN?
Расширенные сообщества (RFC 4360) имеют размер 8 байт (64 бита) и делятся на типы (например, Route Target и Route Distinguisher), обеспечивая изоляцию маршрутов в VRF.
Как удалить все Community перед дальнейшим транзитом префикса?
В Route-Map можно применить команду 'set community none', которая полностью очищает стек атрибутов BGP Community из маршрутного анонса.