RPKI
RPKI (Resource Public Key Infrastructure, RFC 6480) — PKI для BGP: криптографически подтверждает «этот AS имеет право анонсировать этот префикс». Основной инструмент защиты от BGP-хайджеков.
Как устроено
Иерархия сертификатов, привязанная к владению IP-ресурсами:
IANA (root)
└─ RIR (RIPE / ARIN / APNIC / LACNIC / AFRINIC)
└─ LIR (обычно ISP)
└─ ROA (Route Origin Authorization) — конечный документ
Каждый уровень выдаёт cert следующему на владение блоком IP. LIR затем создаёт ROA.
ROA — Route Origin Authorization
Подписанное утверждение: «AS X легально анонсирует префикс Y, максимальная длина Z».
{
"asn": 15169,
"prefix": "8.8.8.0/24",
"maxLength": 24
}
maxLength — критично. Если ROA для 8.8.0.0/16 с maxLength 24, то AS может анонсировать /16, /17...до /24. Если maxLength не указан или равен длине префикса — только точно этот.
Как это работает у роутера
- Провайдер запускает RPKI-валидатор: Routinator (NLnet Labs), FORT, OctoRPKI.
- Валидатор скачивает все ROA из «пубов» RIR-ов через rsync или RRDP (RPKI Repository Delta Protocol).
- Валидатор кэширует и проверяет подписи.
- Роутер получает от валидатора список валидных VRP (Validated ROA Payload) через RTR-протокол (RPKI-to-Router, порт 323).
- При получении BGP-анонса роутер помечает его: valid / invalid / notfound.
- Политика: обычно
invalid → reject, остальные принимаются.
Три состояния
| Состояние | Значение | Обычная политика |
|---|---|---|
| Valid | Есть ROA, префикс + ASN + длина совпадают | accept |
| Invalid | Есть ROA, но что-то не так (чужой AS, или длина больше maxLength) | reject |
| NotFound / Unknown | Нет ROA для этого префикса | accept (пока) |
Где создать ROA
В RIPE-регионе:
- Через веб-панель RIPE NCC LIR portal.
- Через API.
- Если у тебя PI-блок но нет своего LIR — попросить sponsoring LIR.
Проверка своих ROA
- console.rpki-client.org — веб-проверка.
- bgpalerter.io — оповещения об изменениях.
- stat.ripe.net — включает RPKI-статус в анализе префиксов.
Ограничения
- Защищает только origin. Атакующий может подделать AS-PATH (например «я тебе покажу что путь идёт через AS15169, но на самом деле это я»). Решение — BGPsec, но он почти не развёрнут.
- Централизованные repositories. Если repository RIR упадёт — валидаторы работают на кэше.
- Отклонение invalid — политика. Мелкие провайдеры часто не настраивают reject, чтобы не резать себе трафик.
Статус в мире
- ~50% префиксов IPv4 покрыты ROA (2026), ~45% для IPv6.
- Большинство Tier-1 и крупных CDN уже отбрасывают invalid.
- Cloudflare, Google, AT&T, Telia, NTT — все с RPKI-фильтрами.
- В РФ Ростелеком, МТС — с ROA.