Почему Cloudflare Солгал?

Сегодня в 09:47 UTC CloudFlare вообще отвалился интернет. Падение затронуло все сервисы CloudFlare, включая DNS и прокси-сервисы.

Любой, кто пытался открыть любой сайт с помощью сервисов CloudFlare во время сбоя, получал ошибку DNS. Пинг и трассировка до хостов CloudFlare также привели к ошибке «Нет маршрута к хосту».



Почему CloudFlare солгал?

Причиной сбоя стала ошибка в пограничных маршрутизаторах.

CloudFlare в настоящее время имеет 23 центра обработки данных по всему миру.

Они подключены к Интернету через маршрутизаторы.

Эти маршрутизаторы следили за тем, чтобы пакеты, отправленные к нам из любой точки Интернета, обычно доходили до наших серверов.

Когда маршрутизатор перестает работать, сеть за ним больше не доступна для Интернета.

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

Благодаря тому, что мы используем Anycast, трафик перенаправляется в ближайший дата-центр.

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



расход

Все затронутые пограничные маршрутизаторы были производства Juniper. Одна из причин, по которой нам нравятся маршрутизаторы Juniper, — это поддержка протокола Flowspec. Это позволяет эффективно распределять правила маршрутизации на большое количество маршрутизаторов.

Здесь, в CloudFlare, мы постоянно обновляем наши правила маршрутизации.

Это необходимо для защиты от атак и перенаправления трафика для максимально быстрого обслуживания.

Сегодня утром мы заметили DDoS-атаку, направленную на одного из наших клиентов.

Атака была направлена исключительно на DNS-серверы.

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

Обычно эти подписи используются для создания правил маршрутизации, которые позволят уменьшить количество «плохих» запросов.

В этом случае наш профилировщик атак определил, что длина плохих пакетов составляет от 99,971 до 99,985 байт. Это довольно странно, ведь длина обычного пакета не превышает 600 байт, а самые большие могут достигать 1500 байт. В нашей сети есть ограничение в 4470 байт, но профайлер сказал, что пакеты злоумышленника были именно такой длины.



Фатальное правило

Кто-то из нашей команды постоянно следит за сетью, 24/7. Как обычно, один из операторов взял вывод профилировщика и добавил правило, согласно которому должны отбрасываться все пакеты размером от 99,971 до 99,985 байт. Вот как это выглядело в Junos, операционной системе Juniper:

Почему CloudFlare солгал?

Flowspec взял это правило и распространил его по всей периферийной сети.

Теоретически ни один пакет не должен был соответствовать этому правилу, потому что в сети не могло быть таких больших пакетов.

Фактически все маршрутизаторы приняли это правило и начали потреблять всю доступную оперативную память, пока не зависли.

В обычном случае роутер должен был автоматически перезагрузиться, но этого почему-то не произошло.

Нам также не удалось получить доступ через порты управления.

Даже если какой-то дата-центр вдруг поднимался сам по себе, он тут же падал обратно, потому что через него начинал идти весь трафик всей сети.

Сэм Боун, профессор Городского колледжа Сан-Франциско, с помощью BGPlay получил это видео, на котором видно, как роутеры падают один за другим:

Реагирование на инцидент

Сетевая команда CloudFlare знала об инциденте с самого начала.

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

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

Мы удалили его, а затем позвонили операторам других дата-центров, чтобы они перезагрузили маршрутизаторы.

У CloudFlare 23 дата-центра в 14 странах, поэтому время ответа составило где-то около 30 минут. В 10:49 UTC все сервисы CloudFlare уже были запущены.

Мы продолжаем расследовать случаи, на которые до сих пор жалуются наши клиенты.

Обычно они связаны с тем, что был закеширован неправильный ответ DNS. Мы уже связались со специалистами Juniper, чтобы узнать, известно ли им об этом баге или наш случай первый.

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

Мы также планируем вернуть деньги на счета, защищенные SLA. Мы категорически против кратковременной недоступности сервиса и команда CloudFlare приносит извинения за этот инцидент. Теги: #Сетевые технологии #Администрирование серверов #highload #cloudflare #juniper #juniper

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.