Настройка динамической фильтрации маршрутов: Route Maps и Prefix Lists
- Случайная утечка приватных подсетей RFC 1918 в публичный интернет через eBGP сессию (BGP Leak).
- Блокировка легитимных маршрутов из-за неверного понимания условий
ge(greater equal) иle(less equal). - Неявный запрет (Implicit Deny) в конце списка отсекает весь исходящий трафик.
- Высокая нагрузка на CPU при использовании громоздких списков доступа Standard ACL вместо бинарно оптимизированных Prefix Lists.
1. Архитектура и преимущества IP Prefix-List
В отличие от классических Access List (ACL), проверяющих битовые маски, Prefix-List выполняет мгновенный древовидный поиск (Radix Tree) по префиксу и диапазону длины маски подсети.
2. Правила работы параметров `ge` и `le`
ip prefix-list PL permit 10.0.0.0/8— ТОЛЬКО точная сеть10.0.0.0с маской/8.ip prefix-list PL permit 10.0.0.0/8 le 24— Сеть10.0.0.0/8и любые вложенные подсети с длиной маски от/8до/24включительно.ip prefix-list PL permit 10.0.0.0/8 ge 16 le 24— Любые подсети внутри10.0.0.0, у которых маска находится в диапазоне от/16до/24.ip prefix-list PL permit 0.0.0.0/0 le 32— Абсолютно любые IPv4 маршруты (Any).ip prefix-list PL permit 0.0.0.0/0— ТОЛЬКО маршрут по умолчанию (Default Route).
3. Конструирование комплексной Route-Map
# 1. Формируем префикс-листы
ip prefix-list RFC1918_BLOCK seq 5 permit 10.0.0.0/8 le 32
ip prefix-list RFC1918_BLOCK seq 10 permit 172.16.0.0/12 le 32
ip prefix-list RFC1918_BLOCK seq 15 permit 192.168.0.0/16 le 32
!
ip prefix-list MY_PUBLIC_PREFIX seq 5 permit 198.51.100.0/24
# 2. Создаем Route Map
route-map RM_EBGP_OUT deny 10
match ip address prefix-list RFC1918_BLOCK
!
route-map RM_EBGP_OUT permit 20
match ip address prefix-list MY_PUBLIC_PREFIX
set community 65001:100
!
# Неявный запрет (deny all) срабатывает в конце автоматически
# 3. Привязка к BGP соседу
router bgp 65001
neighbor 203.0.113.1 route-map RM_EBGP_OUT out4. Команды тестирования фильтрации
show ip prefix-list detail
show ip prefix-list RFC1918_BLOCK
show route-map RM_EBGP_OUT Частые вопросы (FAQ)
Что произойдет, если префикс не подошел ни под одно правило в Route Map?
В конце каждой Route Map существует невидимое правило 'deny all'. Все несовпавшие маршруты будут заблокированы и отброшены.
Как работают несколько условий match в одной строке Route Map?
Условия 'match' в одной строке объединяются логическим 'ИЛИ' (OR). Условия 'match', написанные на разных строках внутри одного блока permit/deny, объединяются логическим 'И' (AND).
Почему нельзя использовать стандартный ACL для фильтрации префиксов в BGP?
Стандартный ACL проверяет только сетевую часть адреса, но не способен проверять точную длину маски подсети (/24 vs /28), что приводит к случайному пропуску слишком мелких подсетей.
Как применить изменения в Route Map без разрыва BGP сессии?
Выполните команду мягкой очистки: clear ip bgp <IP_соседа> soft out (или soft in).