Траблшутинг черных дыр маршрутизации: генерация Null0 и Discard маршрутов
- Трафик к несуществующим адресам внутри корпоративной подсети циклически гоняется между ядром и периметром до исчерпания IP TTL.
- 100% утилизация внутренних каналов (Micro-loops) при агрегации больших блоков адресов.
- BGP не анонсирует агрегированный префикс в сторону провайдера из-за отсутствия точного совпадения в FIB.
- Невозможность оперативной фильтрации атак флуда (L3/L4 DDoS) на пограничных маршрутизаторах.
1. Механизм возникновения петли при суммировании
Если маршрутизатор анонсирует в BGP суммарную сеть 10.0.0.0/16, но реально в локальной сети существуют только подсети 10.0.1.0/24 и 10.0.2.0/24, любой входящий пакет на адрес 10.0.99.1 будет отправлен по Default Route обратно провайдеру, создавая петлю до истечения TTL пакета.
2. Создание якоря и Pull-Up маршрута в Null0
# Создаем статический сброс для всего агрегата с максимальной AD=254
ip route 10.0.0.0 255.255.0.0 Null0 254
# Теперь более специфичные подсети (10.0.1.0/24) направляются на реальные интерфейсы,
# а весь трафик к «дырам» внутри блока мгновенно и безопасно уничтожается в Null0.3. Конфигурация RTBH (Remotely Triggered Black Hole) для защиты от DDoS
# 1. На всех пограничных роутерах задаем статический Destination Blackhole IP
ip route 192.0.2.1 255.255.255.255 Null0
# 2. Настраиваем BGP для приема Blackhole community (например, 65001:666)
route-map RM_RTBH permit 10
match community CM_BLACKHOLE
set ip next-hop 192.0.2.1
set local-preference 500
!
ip community-list standard CM_BLACKHOLE permit 65001:666
!
router bgp 65001
table-map RM_RTBH4. Команды проверки сброса трафика
show ip route 10.0.99.1
show interfaces Null0 Частые вопросы (FAQ)
Что такое интерфейс Null0 в Cisco (Discard в Juniper / Blackhole в MikroTik)?
Это виртуальный псевдо-интерфейс ядра маршрутизатора, который мгновенно отбрасывает любые направленные в него пакеты без генерации ICMP-сообщений об ошибках (Unreachable), экономя CPU.
Почему BGP требует наличия маршрута в RIB для выполнения команды network?
BGP не генерирует маршруты самостоятельно. Команда network 10.0.0.0 mask 255.255.0.0 активирует анонс только тогда, когда точный префикс 10.0.0.0/16 уже присутствует в локальной таблице маршрутизации (для этого создают статический маршрут в Null0).
Как работает Source-based RTBH (uRPF Blackholing)?
С помощью Unicast Reverse Path Forwarding (uRPF). Если адрес атакующего хоста перенаправлен в Null0 через BGP, uRPF отбрасывает входящие пакеты от этого источника прямо на входном порту.
Влияет ли сброс в Null0 на более специфичные маршруты /24?
Нет. В IP-маршрутизации всегда побеждает правило Longest Prefix Match (LPM). Пакеты к существующим сетям /24 пойдут к хостам, и только пакеты к нераспределенным адресам попадут в Null0 /16.