Бесплатно Экспресс-аудит сайта:

09.07.2024

DNS не отвечает: одна ошибка BGP повлияла на весь интернет

На прошлой неделе Cloudflare сообщила о проблемах с доступностью своего сервиса DNS -резолвера 1.1.1.1 . Сбой был вызван комбинацией перехвата протокола BGP и утечкой маршрута, что привело к ухудшению или полному отключению сервиса для некоторых пользователей.

Инцидент произошел 27 июня, когда компания Eletronet S.A. (AS267613) начала неправильно объявлять IP-адрес 1.1.1.1/32 своим партнерам и провайдерам. Ошибочная информация была принята несколькими сетями, включая одного из крупнейших провайдеров первого уровня (Tier-1-оператор), который рассматривал маршрут как Remote Triggered Blackhole (RTBH). В результате трафик, предназначенный для DNS-резолвера Cloudflare 1.1.1.1, был перенаправлен и отклонен, что сделало сервис недоступным для некоторых пользователей.

Перехват произошел из-за того, что маршрутизация BGP отдает предпочтение наиболее специфичному маршруту. Объявление Eletronet о 1.1.1.1/32 было более специфичным, чем объявление Cloudflare о 1.1.1.0/24. Это привело к тому, что сети неправильно направляли трафик на Eletronet.

Ситуация усложнилась через минуту, когда Nova Rede de Telecomunicações Ltda (AS262504) ошибочно передала маршрут 1.1.1.0/24 своему провайдеру AS1031, который затем распространил его дальше, повлияв на глобальную маршрутизацию. Такое изменение маршрутов BGP вызвало дополнительные проблемы с доступностью и задержкой трафика.

На данный момент захват маршрутов устранен. Cloudflare быстро отреагировала на инцидент, связываясь с вовлеченными сетями и отключая сеансы пиринга с проблемными сетями, чтобы уменьшить воздействие и предотвратить дальнейшее распространение неверных маршрутов.

Cloudflare также отметила, что внутренние маршруты сети не пострадали благодаря использованию инфраструктуры публичных ключей ресурсов (Resource Public Key Infrastructure, RPKI ), что автоматически привело к отклонению неверных маршрутов.

В своём отчете о происшествии Cloudflare предложила несколько долгосрочных решений для предотвращения подобных инцидентов в будущем:

  1. Улучшение системы обнаружения утечек на маршрутах за счет включения большего количества источников данных и интеграции точек данных в реальном времени.
  2. Внедрение RPKI для проверки происхождения маршрута (Route Origin Validation, ROV).
  3. Принятие принципов безопасности маршрутизации MANRS, включая отклонение неверных длин префиксов и реализацию надежных механизмов фильтрации.
  4. Призывать сети отклонять IPv4-префиксы длиннее /24 в зоне без маршрутов по умолчанию (DFZ).
  5. Внедрение объектов ASPA (в настоящее время разрабатываемых IETF), которые используются для валидации пути AS в объявлениях BGP.
  6. Исследование возможностей реализации RFC9234 и авторизации происхождения отброса (DOA).

Cloudflare подчеркивает важность применения указанных мер для обеспечения безопасности и стабильности сети, призывая других участников рынка следовать установленным нормам и рекомендациям.

DNS-резолвер (рекурсивный DNS-сервер) является неотъемлемой частью интернета, обеспечивающей связь между удобным для чтения человеком адресом и фактическим расположением в интернете (IP-адресом). Когда пользователь заходит на сайт, предположим, на securitylab.ru, DNS ищет IP-адрес этого доменного имени (осуществляет резолвинг) и загружает сайт.

В чем отличия?

Адреса 1.1.1.1/32 и 1.1.1.0/24 отличаются своей спецификой и размером охватываемого диапазона IP-адресов.

1.1.1.1/32

  • Что это значит: 1.1.1.1/32 обозначает один единственный IP-адрес – 1.1.1.1.
  • Специфика: Маска подсети /32 указывает на то, что все 32 бита IP-адреса используются для обозначения самого адреса. Это самый специфичный IP-адрес, так как он указывает на одно конкретное устройство.
  • Пример использования: Адрес может использоваться для указания на конкретный сервер или устройство.

1.1.1.0/24

  • Что это значит: 1.1.1.0/24 обозначает диапазон IP-адресов от 1.1.1.0 до 1.1.1.255.
  • Специфика: Маска подсети /24 указывает на то, что первые 24 бита используются для обозначения сети, а оставшиеся 8 бит для обозначения устройств внутри этой сети. Это менее специфично, чем /32, так как указывает на целую сеть, включающую 256 адресов.
  • Пример использования: Диапазон может использоваться для обозначения всей сети, в которой находятся множество устройств, таких как офисная сеть или сеть провайдера.

Разница в маршрутизации

  • Более специфичный маршрут: В протоколе BGP приоритет отдается более специфичным маршрутам. То есть маршрут к 1.1.1.1/32 будет иметь приоритет перед маршрутом к 1.1.1.0/24, так как первый указывает на конкретный адрес, а второй на сеть в целом.
  • Последствия: В случае инцидента, когда неправильно объявленный маршрут 1.1.1.1/32 был принят сетями, это привело к тому, что трафик, предназначенный для Cloudflare, начал перенаправляться к неправильному месту. Если бы ошибка касалась менее специфичного маршрута 1.1.1.0/24, трафик был бы перенаправлен для большего диапазона адресов, но с меньшим приоритетом, чем у маршрута /32. Утечка усугубила проблему захвата маршрутов, вызвав дополнительные проблемы с доступностью и задержкой трафика.