ROA — маршрутная политика BGP¶
ROA (Route Origin Authorization) — цифровой сертификат, определяющий, какой автономной системе (AS) разрешено объявлять определённый IP-блок или префикс. ROA является ключевым элементом механизма RPKI (Resource Public Key Infrastructure) — инфраструктуры публичных ключей для управления ресурсами интернет-протоколов, разработанной IETF для защиты маршрутизации от несанкционированных объявлений.
¶Предпосылки и назначение
Система маршрутизации интернета построена на протоколе BGP (Border Gateway Protocol), который исторически не содержит встроенных механизмов аутентификации. Любой оператор сети может объявить маршрут к чужому IP-блоку, и другие сети примут этот маршрут, если он окажется более специфичным или привлекательным по метрикам. Такие несанкционированные объявления называются «угонами маршрутов» (route hijacking) и могут приводить к перехвату трафика, отказам в обслуживании и компрометации данных.
ROA решает эту задачу, создавая криптографически подтверждённую запись, связывающую:
- префикс IP-адресов (IPv4 или IPv6);
- автономную систему (номер AS), уполномоченную этот префикс объявлять;
- максимальную длину префикса (max length), которую AS имеет право объявлять.
¶Формат и содержание
ROA оформляется в формате X.509-сертификата с расширением, определённым в RFC 6482. Каждый сертификат содержит одно или несколько ROA-записей (ROA objects). Основные поля:
| Поле | Описание |
|---|---|
| IP Prefix | Сетевой адрес и длина префикса (например, 192.0.2.0/24) |
| Autonomous System Number | Номер AS, которому разрешено объявлять префикс |
| Max Length | Максимальная длина более специфичного подпрефикса, допустимого к объявлению |
Например, ROA с префиксом 192.0.2.0/24, AS64500 и max length 24 означает, что только AS64500 вправе объявлять этот блок и его подпрефиксы длиной до /24. Если max length указан как /28, владелец ROA разрешает объявления подсетей вплоть до /28.
¶Процесс публикации
Владелец IP-ресурсов (как правило, региональный интернет-регистратор — RIPE NCC, ARIN, APNIC, LACNIC или AFRINIC) подготавливает ROA на основе заявки от держателя ресурсов. Сертификат подписывается ключом регистратора и публикуется в репозитории RPKI (репозитории ROA). Репозитории синхронизируются между собой через протокол RRDP (RPKI Repository Delta Protocol) или rsync.
¶Проверка маршрутов: RPKI Router Certificate и ROA
Маршрутизаторы, участвующие в проверке, получают ROA через протокол RTR (RPKI to Router Protocol). При получении BGP-объявления маршрутизатор сверяет его с набором ROA и выдаёт один из трёх результатов:
- Valid — маршрут соответствует действующему ROA;
- Invalid — маршрут противоречит ROA (объявлен не тем AS или превышена max length);
- Unknown — для маршрута нет ROA.
Результат проверки передаётся в BGP-атрибуты (RPKI origin validation state), после чего оператор сети принимает решение о маршруте — принимает, отклоняет или понижает приоритет в соответствии с собственной политикой.
¶Распространённость
По состоянию на 2020-е годы покрытие ROA продолжает расти. Наиболее высокий уровень внедрения RPKI — в зонах ответственности RIPE NCC (Европа, Ближний Восток, Центральная Азия) и ARIN (Северная Америка). Крупные транзитные операторы (например, NTT, Cogent, Hurricane Electric) включают проверку ROA на своих магистральных сетях. В России внедрение RPKI продвигается медленнее: крупнейшие операторы (Ростелеком, МТС) поддерживают RPKI-инфраструктуру, однако полное покрытие внутренних маршрутов не достигнуто.
¶Ограничения
ROA защищает только от несанкционированного объявления префикса другим AS. Механизм не предотвращает:
- атаки на саму инфраструктуру RPKI (компрометацию ключей регистратора);
- маршрутизационные атаки, основанные на легитимных ROA;
- подмену данных на уровне AS-PATH, не связанную с origin validation.
Для дополнительной защиты разрабатываются механизмы BGPsec, обеспечивающие криптографическую верификацию всей цепочки AS в пути маршрута.
¶История
Идея RPKI и ROA была сформулирована в рабочей группе IETF SIDR (Secure Inter-Domain Routing) в середине 2000-х годов. Ключевые стандарты:
- RFC 6480 (2012) — архитектура RPKI;
- RFC 6482 (2012) — формат ROA;
- RFC 6810 (2013) — протокол RTR;
- RFC 6907 (2013) — профили применения ROA.
Первые коммерческие продукты с поддержкой проверки ROA появились у Cisco и Juniper Networks в начале 2010-х годов.
¶Источники
- RFC 6480 — An Infrastructure to Support Secure Internet Routing
- RFC 6482 — A Profile for Route Origin Authorizations (ROAs)
- RFC 6810 — The RPKI Router Protocol
- RFC 6907 — Common Policies and Query Processing for the RPKI
- RIPE NCC — RPKI documentation
- NIST — Resource Public Key Infrastructure (RPKI) overview
