Start typing to search across invoices, services, domains, tickets, and more...
RPKI (Resource Public Key Infrastructure) с помощью сертификатов подтверждает, какая ASN вправе анонсировать какой IP-префикс, а ROA (Route Origin Authorization) — это подписанный объект с таким разрешением. Всё больше операторов отбрасывают RPKI-невалидные маршруты, поэтому префикс без корректного ROA может быть недоступен из части интернета. В статье объясняется, что такое ROA и RPKI, как создать ROA для IP-блока в порталах RIPE, APNIC, ARIN и AFRINIC, как выбрать максимальную длину префикса и как проверить результат через rpki.cloudflare.com и Routinator на Debian/Ubuntu и CentOS/Rocky/AlmaLinux.
Маршрутизатор сравнивает полученные маршруты с ROA и получает один из трёх результатов: Valid (ASN-источник и длина совпадают), Invalid (не та ASN или префикс специфичнее max length; многие сети такие маршруты отбрасывают) или NotFound (ROA для префикса нет). Проверьте текущее состояние через API RIPEstat:
curl -s "https://stat.ripe.net/data/rpki-validation/data.json?resource=AS64500&prefix=198.51.100.0/24" | grep -o '"status":"[^"]*"'Составьте список всех реально анонсируемых префиксов и их ASN-источников. Max length определяет, какие более специфичные подпрефиксы ещё разрешает ROA. Задавайте его равным длине анонса и создавайте отдельные ROA только для тех подпрефиксов, которые действительно анонсируете. Слишком широкий max length позволяет злоумышленнику подделать вашу ASN и перехватить подпрефиксы.
curl -s "https://stat.ripe.net/data/announced-prefixes/data.json?resource=AS64500" | grep -o '"prefix":"[^"]*"'
birdc show route export upstream1 # BIRD 2
vtysh -c "show bgp ipv4 unicast neighbors 203.0.113.1 advertised-routes" # FRRPrefix Origin ASN Max Length
198.51.100.0/24 AS64500 24
198.51.100.0/23 AS64500 23 # only if you also announce the /23
2001:db8:100::/48 AS64500 48Создавать ROA может только держатель ресурса (или уполномоченная им учётная запись). Точки входа примерно такие; ориентируйтесь на актуальный интерфейс каждого RIR:
Укажите префикс, ASN-источник и max length и сохраните; публикация обычно занимает от нескольких минут до часа. Если IP арендованы у IMIDC, держателем ресурса является IMIDC: создайте тикет с префиксом, вашей ASN и max length — мы создадим ROA и при необходимости route-объект в IRR.
Prefix: 198.51.100.0/24
Origin ASN: AS64500
Max Length: 24
IRR route object: yesОткройте валидатор на rpki.cloudflare.com, введите ASN и префикс — вы увидите Valid или Invalid и все ROA, покрывающие префикс. RIPEstat и bgp.tools тоже показывают статус RPKI. Можно также повторить команду из шага 1 и убедиться, что статус стал valid.
curl -s "https://stat.ripe.net/data/rpki-validation/data.json?resource=AS64500&prefix=198.51.100.0/24" | grep -o '"status":"[^"]*"'Routinator — открытый RPKI-валидатор от NLnet Labs. Он проверяет данные на вашем сервере и может отдавать их маршрутизаторам по RTR. Ниже установка через инструментарий Rust (у NLnet Labs также есть репозитории пакетов для Debian/Ubuntu и систем на базе RHEL). Первый запуск синхронизирует весь репозиторий RPKI и может занять несколько минут.
# Debian / Ubuntu
apt install -y curl build-essential
# CentOS / Rocky / AlmaLinux
dnf install -y curl gcc
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
cargo install --locked routinatorroutinator validate --asn AS64500 --prefix 198.51.100.0/24
routinator vrps --select-asn AS64500Да. Многие апстримы по-прежнему строят фильтры префиксов по данным IRR, поэтому держите ROA и объекты route/route6 согласованными.
RIR обычно публикуют в течение часа, а валидаторы обновляются по своему расписанию — в среднем от десятков минут до нескольких часов.
Да, создайте по ROA на каждую ASN. Это удобно при мультиоригинных схемах или на время миграции.
Если проблема не решена, создайте тикет в поддержку IMIDC, работающую 24/7.