Привет, сетевой друг! Сегодня разберу RPKI (Resource Public Key Infrastructure) - механизм, который защищает BGP от одной из самых старых проблем интернета: когда кто-то случайно или специально объявляет чужие IP-префиксы.🟣Зачем он: BGP исторически доверяет соседям. Если AS64500 объявит:
203.0.113.0/24 интернет может начать отправлять туда трафик, даже если этот префикс принадлежит другой организации.RPKI добавляет проверку: имеет ли конкретная автономная система право объявлять этот маршрут.
🟣Как работает: владелец сети создаёт ROA (Route Origin Authorization):
Prefix: 203.0.113.0/24
Origin AS: 64500
Max Length: /24
Эти данные подписываются криптографически и публикуются в RPKI-хранилищах.Маршрутизатор получает список ROA и проверяет BGP-анонс:
Prefix: 203.0.113.0/24
Origin AS: 64501
Результат:VALID - AS имеет право объявлять сеть
INVALID - AS не соответствует ROA
UNKNOWN - ROA для сети нет
🟣Проверка маршрутов на MikroTik: Добавляем валидатор RPKI:/routing rpki
add group=rpki-cache address=192.0.2.10 port=8282
Проверяем состояние:/routing rpki print
🟣Добавляем фильтр BGP: Например, запрещаем INVALID-маршруты:/routing filter rule
add chain=bgp-in rule="if (rpki invalid) { reject }"
Теперь маршруты с неправильным origin AS не попадут в таблицу маршрутизации.🟣Диагностика:
Проверяем статус маршрута:
/ip route print detail
И смотрим BGP-анонсы:/routing bgp advertisements print
🟣Почему это нужно: BGP работает между десятками тысяч автономных систем, и одна ошибка в конфигурации может отправить большой кусок интернета не туда. RPKI не заменяет BGP-фильтры, но добавляет ещё один уровень проверки - уже на уровне криптографического подтверждения права владения маршрутом.Серверная Админа | Zeroday | #RPKI
