Facebook объявила причину глобального сбоя
Спустя несколько часов после восстановления доступа к своим сервисам Facebook объявила причину глобального сбоя. Компания уточнила, что авария произошла из-за изменения конфигурации магистральных маршрутизаторов, которые координируют сетевой трафик между центрами обработки данных Facebook. Их перенастройка вызвала проблемы, которые прервали связь. Нарушение сетевого трафика также оказало каскадное влияние на способы связи с центрами обработки данных, в результате чего внешние и внутренние сетевые услуги были остановлены.
Facebook не пояснила, кто был инициатором изменений конфигурации маршрутизаторов и почему они были сделаны. Компания рассказала, что из-за сбоя перестали работать многие внутренние инструменты и системы, которые инженеры Facebook используют в повседневной работе, что серьезно усложнило попытки быстро диагностировать и решить проблему.
Инцидент с недоступностью Facebook, Instagram и WhatsApp по всему миру длился около 6 часов. Специалисты компании занимались устранением сбоя, но не могли его решить оперативно. Оказалось, что для этого нужно физическое присутствие сетевых инженеров для устранения проблемы на маршрутизаторах в дата-центрах Facebook. Компания срочно направила группу специалистов в дата-центр в Санта-Кларе, чтобы попробовать вручную перезапустить сервера и разобраться с конфигурацией маршрутизаторов. В это же время стало известно, что внутренняя сеть компании также стала недоступна, включая корпоративные сегменты, сервера DNS, сервисы и инструменты. Из-за этого специалисты не могли проникнуть внутрь периметра дата-центров — у них не срабатывали пропуски.
Предварительная причина инцидента, о которой заявили многие эксперты — удаленное обновление конфигурации маршрутизаторов внутри сети компании, отвечающих за BGP-сессии и их анонсы, а также автономную систему Facebook, пошло не по плану. После этого перестали быть доступны NS-сервера компании и пропали DNS-записи. Список префиксов FB, с которыми пропала глобальная связность: IPv4, IPv6.
Источник
Из-за чего Facebook стал глобально недоступен. Технический ликбез
Прим. перев.: в этой статье инженеры онлайн-сервиса Cloudflare весьма популярно объясняют, что именно (технически) произошло с недоступностью Facebook минувшим вечером (4-го октября 2021), а также затрагивают тему того, как этот сбой повлиял на более глобальные процессы в интернете.
«Разве Facebook может упасть?» — задумались мы на секунду…
Сегодня в 16:51 UTC (в 19:51 MSK — прим. перев.) у нас был открыт внутренний инцидент под названием «Facebook DNS lookup returning SERVFAIL» («DNS-поиск для Facebook возвращает SERVFAIL»). Мы решили, что это с нашим DNS-ресолвером 1.1.1.1 что-то не так. Однако к моменту размещения соответствующего обновления на публичной статус-странице стало ясно, что здесь что-то серьёзное.
Социальные сети уже разрывались от сообщений о том, что быстро подтвердили и наши инженеры: Facebook и связанные с ним сервисы WhatsApp и Instagram действительно упали. Их DNS-имена больше не ресолвились, а IP-адреса инфраструктуры были недоступны. Выглядело так, как будто кто-то буквально выдернул кабели разом во всех их дата-центрах, отключив от интернета.
Как такое вообще возможно?
Встречайте BGP
BGP — это «протокол граничного шлюза» (Border Gateway Protocol). Это механизм для обмена информацией о маршрутизации между автономными системами (AS) в интернете. У больших роутеров, благодаря которым работает интернет, есть постоянно обновляемые списки возможных маршрутов, используемых для доставки каждого сетевого пакета до мест их назначения. Без BGP интернет-роутеры не знают, что делать, и интернет просто не будет работать.
Интернет — это буквально сеть из сетей, связанных между собой с помощью BGP. BGP позволяет одной сети (скажем, Facebook) объявлять о своём присутствии другим сетям, которые в конечном счёте формируют весь интернет. На момент написания этой статьи Facebook не сообщал о своём присутствии, поэтому интернет-провайдеры (ISP) и другие сети не могут найти сеть Facebook — она недоступна.
У индивидуальных сетей есть свой ASN — номер автономной системы (Autonomous System Number). Автономная система (AS) — это индивидуальная сеть с унифицированной политикой внутренней маршрутизации. AS может порождать специальные префиксы (означающие, что они контролируют группу IP-адресов), а также транзитные префиксы (они знают, как добраться до определённых групп IP-адресов).
Например, ASN у Cloudflare — AS13335. Каждая ASN должна объявить интернету о своих prefix routes с помощью BGP. В ином случае никто не узнает, как к ней подключиться и где найти её.
В этой упрощённой схеме можно увидеть шесть автономных систем в интернете и два возможных маршрута, по которым один пакет может пройти от начала (Start) до конца (End). Самый быстрый маршрут — это AS1 → AS2 → AS3. Самый медленный — AS1 → AS6 → AS5 → AS4 → AS3; он используется в случаях, когда первый не срабатывает.
В 16:58 UTC мы заметили, что Facebook перестал анонсировать маршруты для своих DNS-префиксов. Это означало, что по меньшей мере DNS-серверы Facebook были недоступны. По этой причине DNS-ресолвер Cloudflare (уже упомянутый 1.1.1.1) не мог отвечать на запросы, требующие выдать IP-адрес для домена facebook.com или instagram.com.
Хотя другие IP-адресы Facebook и имели маршруты в то же самое время, в них не было особого смысла, потому что DNS-службы Facebook и связанных сервисов были недоступны:
Мы следим за всеми обновлениями и анонсами в BGP, какие появляются в глобальной сети. Собираемые таким образом данные позволяют увидеть глобальные связи в интернете и понять, откуда и куда должен ходить весь трафик.
UPDATE-сообщение от BGP информирует роутер о любых изменениях, сделанных в префиксе, или о полном отзыве этого префикса. Проверяя базу данных BGP, основанную на временных рядах, мы можем точно увидеть количество обновлений, поступивших от Facebook’а. Обычно этот график довольно ровный: Facebook не будет постоянно делать большое количество изменений для своей сети.
Но около 15:40 UTC был замечен резкий всплеск изменений в маршрутах Facebook’а. Именно здесь и начались проблемы.
Ещё лучше будет видно, что же произошло, если разбить этот график на анонсы маршрутов и их отзывы. Маршруты были отозваны, DNS-серверы Facebook ушли в offline, а минутой позже возникла проблема: инженеры Cloudflare сидели и недоумевали, почему 1.1.1.1 не может получить IP для facebook.com, обеспокоенные каким-то сбоем в своих системах.
После отзыва этих маршрутов Facebook и его сайты были отключены от интернета.
DNS тоже в деле
Прямым последствием этого события стала невозможность для DNS-ресолверов со всего мира получать IP для связанных с проектами доменных имён:
Это происходит по той причине, что в DNS, как и во многих других системах в интернете, используется свой механизм маршрутизации. Когда кто-то набирает https://facebook.com в веб-браузере, DNS-ресолвер, ответственный за перевод доменного имени в реальный IP-адрес для фактического подключения, сначала проверяет, есть ли что-то в его кэше. Если кэш есть — он используется. Если кэша нет — производится попытка получить ответ от DNS-сервера, обычно расположенного где-то поблизости.
Если DNS-серверы недоступны или не могут дать ответ по какой-то другой причине, возвращается ответ SERVFAIL, а браузер показывает пользователю ошибку.
Опять же, в онлайн-центре обучения Cloudflare есть хорошее объяснение, как работает DNS.
Из-за того, что Facebook перестал анонсировать свои DNS prefix routes через BGP, наш и любой другой DNS-ресолвер не мог подключиться к DNS-серверам проекта. Поэтому, 1.1.1.1, 8.8.8.8 и другие крупные публичные DNS-ресолверы начали выдавать (и кэшировать) ответы SERVFAIL.
Но это ещё не всё. Теперь в дело включается человеческий фактор и логика работы приложения, что в совокупности приводит к экспоненциальному эффекту. От пользователей обрушивается огромная волна дополнительного DNS-трафика.
Отчасти это происходит по той причине, что приложения не расценивают ошибку как подходящий пользователю ответ и начинают делать повторные запросы, причем иногда очень активно. А отчасти — потому что конечные пользователи тоже не воспринимают ошибку за правильный для них результат и начинают обновлять страницы, убивать/перезапускать свои приложения, порой тоже весьма активно.
Всё это привело к резкому росту трафика (по количеству запросов), что мы наблюдали на 1.1.1.1:
Из-за того, что Facebook и его сайты так популярны, мы получили 30-кратную нагрузку на DNS-ресолверы по всему миру, а это может вызывать задержки и таймауты для других платформ.
К счастью, 1.1.1.1 был создан как бесплатный, приватный, быстрый (убедиться в этом можно в DNSPerf) и масштабируемый сервис, так что мы продолжали обслуживать своих пользователей с минимальными проблемами.
Скорость ответов на подавляющую часть DNS-запросов оставалась в диапазоне менее 10 мс. В то же время небольшая часть перцентилей p95 и p99 показали повышенное время ответов — вероятно, из-за истекших TTL при обращении к DNS-серверам Facebook и вызванных таймаутов. 10-секундный таймаут для DNS — значение, которое пользуется популярностью среди инженеров.
Влияние на другие сервисы
Люди ищут альтернатив, хотят знать и обсуждать, что происходит. Когда Facebook упал, мы увидели растущее число DNS-запросов к Twitter, Signal и другим социальным сетям и платформам для обмена сообщениями.
Также недоступность проявилась в статистике по WARP-трафику от и к автономной сети Facebook’а (ASN 32934). Эта карта показывает, как трафик изменился в интервале с 15:45 UTC до 16:45 UTC по сравнению с тремя часами до этого в каждой стране. По всему миру WARP-трафик от и к сети Facebook практически исчез.
Интернет
Сегодняшние события служат мягким напоминанием о том, что интернет — это очень сложная и взаимозависимая система из миллионов систем и протоколов, взаимодействующих друг с другом. Доверие, стандартизация и кооперация между задействованными в нём организациями — ключ к его работоспособности для почти пяти миллиардов активных пользователей со всего мира.
Обновление
Около 21:00 UTC (полночь в MSK — прим. перев.) мы увидели новую BGP-активность в сети Facebook, пик которой пришёлся на 21:17 UTC:
График ниже показывает доступность DNS-имени ‘facebook.com’ на DNS-ресолвере 1.1.1.1. Она пропала около 15:50 UTC и вернулась в строй в 21:20 UTC:
Несомненно, сервисам Facebook, WhatsApp и Instagram ещё понадобится некоторое время, чтобы полностью вернуться в строй, но по состоянию на 21:28 UTC Facebook уже доступен в глобальном интернете, а его DNS снова функционирует.
Источник
Произошёл глобальный сбой в работе Facebook
Пользователи Интернета и сервис Downdetector сообщают о сбое в работе Facebook, Instagram и WhatsApp по всему миру. Кроме того, согласно отчёту Nslookup.io, не отвечают DNS-серверы ресурсов. По данным Downdetector, сбой начался около 18:15 по Московскому времени.
В своём микроблоге Facebook заявила, что работает над устранением неполадок. Кроме того, по данным издания Verge, проблема коснулась очков виртуальной реальности Oculus. Пользователи могут использовать уже загруженные игры, но установка новых игр и социальные функции не работают.
Не работает абсолютно всё, что связано с Facebook, включая Facebook Workplace и Facebook Messenger. Также не работает авторизация через Facebook, о чём сообщили пользователи Niantic. Из глобальной таблицы маршрутизации в Интернете «исчезли» 2 DNS, остальные 2 недоступны.
На прошлой неделе (30 сентября) подобные проблемы наблюдались у сервиса обменом сообщениями Slack. Из-за неполадок в работе DNS-серверов пользователи не могли получить доступ к сайту сервиса. Компания объяснила, что проблема была вызвана внутренними изменениями. Неполадки полностью устранили в течение суток, однако пользователям, которые всё ещё не могут зайти на сайт, предложили использовать альтернативные DNS-серверы, такие как Google (8.8.8.8 и 8.8.4.4) или Cloudflare.
Пользователи Twitter шутят о том, что после прекращения работы сервисов аудитория массово направилась писать твиты с жалобами на сбои и выкладывать фотографии, предназначенные для Instagram. Twitter поприветствовала всех в своём официальном аккаунте.
Также на фоне неполадок резко упала стоимость акций Facebook.
Обновлено 21:02 по МСК.
Сетевые эксперты сомневаются в том, что сбой работы связан c DNS-серверами. Примерно за пять минут до прекращения работы сервисов Facebook пользователи заметили большое количество изменений BGP для ASN Facebook. Вероятнее всего, проблема вызвана изменениями в маршрутизации. Кроме того, в Twitter сообщили о сбоях во внутренних системах компании.
Пользователи Reddit предположили, что обновления в маршрутизации проходили удалённо, поскольку большая часть сотрудников Facebook работает вне офиса из-за пандемии. На текущий момент системы не работают. Поэтому, чтобы исправить проблему, необходим физический доступ к пиринговым маршрутизаторам.
Обновлено 21:33 по МСК.
В даркнете предположительно выложили на продажу данные 1,5 млрд пользователей Facebook. База содержит имена, e-mail, id, местонахождение и телефонные номера пользователей. Это самый крупный слив данных за всю историю компании. Судя по скринам, слив данных произошёл до глобального сбоя в работе системы.
Обновлено 22:30 по МСК.
Репортёр издания New York Times Шира Френкель рассказала о том, что сотрудники Facebook не могут попасть в дата-центр для устранения проблемы. Из-за сбоя их бейджи не сработали, чтобы открыть двери в офис компании. Кроме того, само издание считает, что сбой вряд ли стал результатом кибератаки. Instagram, WhatsApp и Facebook слишком отличаются между собой, чтобы одновременно стать жертвами хакерской атаки.
Обновлено 22:47 по МСК.
IT-директор СберСервиса Сергей Бобров рассказал, что проблемы Facebook могут быть вызваны сбоем в работе крупного провайдера облачных услуг.
Учитывая, что сбой не только у приложений Facebook, но и многих других: Apple, Google, Twitter и далее, скорее всего, проблемы у Amazon, как одного из самых крупных провайдеров облачных услуг. Ну или кого-то ещё в этом роде. Для крупных транснациональных сервисов это критично.
Что касается энтерпрайзов среднего размера — они делятся на две категории: тех, кто делает резервирование, и тех кто пока ещё не делает. Катастрофоустойчивость — резервирование каналов связи и ЦОДов от разных провайдеров, горячее переключение между кластерами — без этого современный энтерпрайз невозможен.
Расходы на это огромные. Но то что они себя окупают, становится некоторым очевидно только после такого масштабного сбоя, который коснется их самих. Тогда и происходит переход в другую категорию. Ну а некоторые умеют учиться на чужом опыте
Обновлено 5 ноября в 11:14 по МСК.
Глобальный сбой длился около 6 часов. Журналисты Брайан Кребс и специалисты из Geek Factor 5 уточнили, что BGP-маршруты, обслуживающие авторитативный DNS-сервер Facebook, специально отозвали по неизвестной причине. Это сделало все домены компании недоступными по всему миру. Через несколько часов после восстановления доступа Facebook рассказала, что авария произошла из-за изменения конфигурации магистральных маршрутизаторов, координирующих сетевой трафик между центрами обработки данных.
Источник