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 не указан или равен длине префикса — только точно этот.

Как это работает у роутера

  1. Провайдер запускает RPKI-валидатор: Routinator (NLnet Labs), FORT, OctoRPKI.
  2. Валидатор скачивает все ROA из «пубов» RIR-ов через rsync или RRDP (RPKI Repository Delta Protocol).
  3. Валидатор кэширует и проверяет подписи.
  4. Роутер получает от валидатора список валидных VRP (Validated ROA Payload) через RTR-протокол (RPKI-to-Router, порт 323).
  5. При получении BGP-анонса роутер помечает его: valid / invalid / notfound.
  6. Политика: обычно invalid → reject, остальные принимаются.

Три состояния

СостояниеЗначениеОбычная политика
ValidЕсть ROA, префикс + ASN + длина совпадаютaccept
InvalidЕсть ROA, но что-то не так (чужой AS, или длина больше maxLength)reject
NotFound / UnknownНет ROA для этого префиксаaccept (пока)

Где создать ROA

В RIPE-регионе:

Проверка своих ROA

Ограничения

Статус в мире

См. также