RIPE теперь учит предотвращать утечки маршрутов. Вот почему это важно.
В курсе RIPE NCC по безопасности маршрутизации BGP теперь есть теория предотвращения и обнаружения утечек маршрутов по RFC 9234, а вместе с ней практическая лаборатория по настройке BGP Roles и знакомству с Only-To-Customer. 1
Когда регистратура включает что-то в свою штатную программу, тема переходит из разряда экспериментальных предложений в рекомендуемую эксплуатационную практику.
Пробел, который оставляет RPKI
На прошлой неделе мы писали о том, где RPKI заканчивается. Главное ограничение стоит повторить: RPKI не устраняет утечки маршрутов.
Утечка маршрута — это не поддельный источник. Источник легитимен, и ROA проходит проверку безупречно. Проблема в распространении. Сеть получает маршрут от одного пира или аплинка и переанонсирует его другому, куда он попадать не должен был. И вдруг небольшая региональная сеть объявляет себя путём к значительной части интернета, а трафик идёт следом, потому что BGP верит тому, что ему сказали.
Исторически утечки маршрутов вызывали некоторые из крупнейших зафиксированных глобальных инцидентов маршрутизации, и почти всегда это случайность: забытый фильтр, политика, применённая не к той сессии, шаблон, скопированный от другого соседа.
RPKI ничего этого не видит: у каждого анонса в цепочке источник валиден.
Roles и OTC вкратце
RFC 9234 берёт то, что все и так знают неформально — эта сессия с клиентом, та с аплинком, а вон та с пиром, — и делает это явным внутри протокола. 2
На каждой сессии eBGP вы настраиваете роль: provider, customer, route server, route server client или peer. Возможность Role объявляется в сообщении OPEN, так что обе стороны подтверждают характер отношений и отвергают несовместимые настройки. Когда роли известны, атрибут Only-To-Customer — необязательный транзитивный атрибут пути — позволяет маршрутизаторам помечать и обнаруживать анонсы, ушедшие туда, куда деловые отношения их не пускают. 2
Изящество в том, что к задаче, которая всегда была задачей фильтрации, добавляется проверка на уровне протокола. Классическое предотвращение утечек означает поддерживать точные префиксные фильтры для каждого соседа — работа огромная, склонная к ошибкам и вечно устаревшая. Roles и OTC позволяют совместимым маршрутизаторам обнаруживать многие утечки структурно, из самих отношений, и меньше зависеть от пофильтрных списков под каждого соседа.
Меньше зависеть — но не отказаться. RFC 9234 встаёт рядом с вашими нынешними механизмами, а не вместо них: фильтрация по IRR, проверка источника через RPKI, ограничения max-prefix и фильтрация bogon-ов по-прежнему нужны. Исчезает другое — предположение, будто эти фильтры единственное, что отделяет опечатку в политике от утечки.
Внедряется это тоже относительно легко: несколько строк на сессию в BIRD, FRR или JunOS, и при отсутствии поддержки на другой стороне всё деградирует мягко.
Контроль, который мы отдаём клиентам
Мы предоставляем AS210464, и наша позиция в том, что клиент должен управлять собственной маршрутизацией, не открывая тикет.
Начинается это с проверки RPKI на принимаемых маршрутах — валидация источника как минимальный уровень. Дальше идёт полный набор BGP-сообществ, который даёт вам управление «по форме утечки» прямо в ваших анонсах: не анонсировать конкретной AS, клиентам, прямым пирам, пирам на IXP, route-серверам или аплинкам, плюс региональные настройки, prepend от одного до трёх раз, local-preference для резервных маршрутов и blackhole по удалённому запросу, когда префикс нужно отбросить на нашей границе, а не у вас на сервере.
Этот набор сообществ существует потому, что охват анонса должен быть вашим решением, выраженным в самом анонсе, а не фильтром, который кто-то на нашей стороне ведёт вручную и рано или поздно ошибётся.
BGP-сессии — от 5 €/мес. К каждой виртуальной машине идёт маршрутизируемый /48 IPv6; если вам нужно пространство именно для анонса, а не просто для использования, вы приносите своё или арендуете у нас. Сессии поднимаются к локальным адресам шлюза 10.0.0.1 и fd10::1, с включённым на вашей стороне multihop и TTL 255, а что реально видят наши маршрутизаторы, можно проверить через looking glass из Тираны, Скопье, Амстердама или Дублина — без учётной записи и без разговора с менеджером.
Три дела, которые стоят одного вечера
Если у вас есть BGP, начните с ролей на сессиях eBGP — прежде всего с аплинками, где утечка наносит наибольший ущерб.
Заодно проверьте свои ROA. Эксплуатационные промахи вроде устаревших ROA и слишком щедрых значений maxLength остаются среди самых частых причин невалидных по RPKI анонсов, так что самый вероятный маршрутный инцидент в вашем будущем по-прежнему тот, который устроите вы сами.
И пройдите курс RIPE, если вы в регионе. Лабораторные — самый быстрый способ освоиться с ролями и OTC.
Утечки маршрутов остаются одним из немногих видов интернет-отказов, где одна неверно настроенная сессия способна испортить связь сетям, которые о вас никогда не слышали. Решение теперь стандартизовано, ему учат, и стоит оно недорого. Оправданий почти не осталось.