Из-за чего упал 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 — это «протокол граничного шлюза» (Border Gateway Protocol). Это механизм для обмена информацией о маршрутизации между автономными системами (AS) в интернете. У больших роутеров, благодаря которым работает интернет, есть постоянно обновляемые списки возможных маршрутов, используемых для доставки каждого сетевого пакета до мест их назначения. Без BGP интернет-роутеры не знают, что делать, и интернет просто не будет работать.

BGP позволяет одной сети (скажем, Facebook) объявлять о своём присутствии другим сетям, которые в конечном счёте формируют весь интернет. В 16:58 UTC мы заметили, что Facebook перестал анонсировать маршруты для своих DNS-префиксов. Это означало, что по меньшей мере DNS-серверы Facebook были недоступны. По этой причине DNS-ресолвер Cloudflare (уже упомянутый 1.1.1.1) не мог отвечать на запросы, требующие выдать IP-адрес для домена facebook.com или instagram.com.

UPDATE-сообщение от BGP информирует роутер о любых изменениях, сделанных в префиксе, или о полном отзыве этого префикса. Проверяя базу данных BGP, основанную на временных рядах, мы можем точно увидеть количество обновлений, поступивших от Facebook’а. Обычно этот график довольно ровный: Facebook не будет постоянно делать большое количество изменений для своей сети. Но около 15:40 UTC был замечен резкий всплеск изменений в маршрутах Facebook’а. Именно здесь и начались проблемы. Маршруты были отозваны, DNS-серверы Facebook ушли в offline. После отзыва этих маршрутов Facebook и его сайты были отключены от интернета.

Прямым последствием этого события стала невозможность для DNS-ресолверов со всего мира получать IP для связанных с проектами доменных имён.

Это происходит по той причине, что в DNS, как и во многих других системах в интернете, используется свой механизм маршрутизации. Когда кто-то набирает facebook.com в веб-браузере, DNS-ресолвер, ответственный за перевод доменного имени в реальный IP-адрес для фактического подключения, сначала проверяет, есть ли что-то в его кэше. Если кэш есть — используется IP-адрес оттуда. Если кэша нет — производится попытка получить ответ от DNS-сервера, обычно расположенного где-то поблизости.

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

Из-за того, что Facebook перестал анонсировать свои DNS prefix routes через BGP, наш и любой другой DNS-ресолвер не мог подключиться к DNS-серверам проекта. Поэтому, 1.1.1.1, 8.8.8.8 и другие крупные публичные DNS-ресолверы начали выдавать (и кэшировать) ответы SERVFAIL.

Но это ещё не всё. Теперь в дело включается человеческий фактор и логика работы приложения, что в совокупности приводит к экспоненциальному эффекту. От пользователей обрушивается огромная волна дополнительного DNS-трафика.

Отчасти это происходит по той причине, что приложения не расценивают ошибку как подходящий пользователю ответ и начинают делать повторные запросы, причем иногда очень активно. А отчасти — потому что конечные пользователи тоже не воспринимают ошибку за правильный для них результат и начинают обновлять страницы, убивать/перезапускать свои приложения, порой тоже весьма активно.

Всё это привело к резкому росту трафика (по количеству запросов), что мы и наблюдали. От трафика упало всё остальное, потому что 30-кратную перегрузку на DNS-ресолверы по всему миру могут выдержать не только лишь все. Фактически выдержали это только в России.

Когда Facebook упал, мы увидели растущее число DNS-запросов к Twitter, Signal и другим социальным сетям и платформам для обмена сообщениями. У них тоже появились локальные перегрузки и проблемы.

Сегодняшние события служат мягким напоминанием о том, что интернет — это очень сложная и взаимозависимая система из миллионов систем и протоколов, взаимодействующих друг с другом. Доверие, стандартизация и кооперация между задействованными в нём организациями — ключ к его работоспособности для почти пяти миллиардов активных пользователей со всего мира.

PS. В 1968 году Министерство обороны США посчитало, что на случай войны Америке нужна надёжная система передачи информации, и предложило разработать для этого компьютерную сеть. Это и был Internet. А потом что-то пошло не так.

И я даже вам расскажу, что именно пошло не так. Просто все стали переходить от децентрализованной модели изначальной сети к централизованной, где есть выделенные точки управления всей сетью. Руками ходить на каждое отдельное устройство всем надоело, решили разливать изменения всякими модными зумерскими ansible’ами, ETSI NFV MANO, использовать REST API, NET CONF и прочие централизованные вещи. И вот одно неосторожное движение — и вместо единичного отказа лежит уже вся инфраструктура сети.

В стародавние времена, когда миллениалы ещё не пребывали в эйфории от удалёнки, а зумеры только начали появляться на свет, у бородатых сисадминов уже в ходу была такая примета: «Удалённая настройка сети — это к дальней дороге».

Источник материала
Настоящий материал самостоятельно опубликован в нашем сообществе пользователем Proper на основании действующей редакции Пользовательского Соглашения. Если вы считаете, что такая публикация нарушает ваши авторские и/или смежные права, вам необходимо сообщить об этом администрации сайта на EMAIL abuse@newru.org с указанием адреса (URL) страницы, содержащей спорный материал. Нарушение будет в кратчайшие сроки устранено, виновные наказаны.

You may also like...

15 Комментарий
старые
новые
Встроенные Обратные Связи
Все комментарии
Базилевс
Базилевс
для  Proper
3 месяцев назад

Провидец…Британия нанесла ответный удар, разбомбив Бирмингем!

2wYNK
2wYNK
для  Proper
3 месяцев назад

Что-то министр Уоллес смог мобилизовать всего 2000 водителей при потребности в 4 раза большей, таки с хакерами кто же ему поверит теперь?

Detectivs
Detectivs
для  Proper
3 месяцев назад

Нет-нет… Предположительно Facebook упал как тооько Цирконы запустили… Говорят…)))

Nack
Nack
для  Proper
3 месяцев назад

«Марк Цукерберг вернул себе треть из $6,4 млрд, потерянных им при сбое в работе Facebook.
Цукерберг пока сохраняет за собой шестую строчку рейтинга, на которую он опустился с четвертой позиции после резкого падения стоимости акций основанной им компании.» (С)

А отключать надо, адназначна.

miha_ford_talks_ru
miha_ford_talks_ru
для  Proper
3 месяцев назад

Недельку бы) отдельный Чебурнет не надо, но вот выкинуть из сети неадекватов, кои в соц.сетях в основном и обитают, бесценно. Для всего остального существует МИР Pay :-) Как в 1998-2005 было…эх…

P.S.: Письмо не показали, но сеазали оно есть и там гугл-dns перечислены. Сказали использовать Яндекс или наши платные (я уже и забыл, что такие есть, если честно).

miha_ford_talks_ru
miha_ford_talks_ru
для  Proper
3 месяцев назад

У меня подозрение, что до наших медленных педалей газа дошло это письмо: https://www.kommersant.ru/doc/4978090 (там как раз 8.8.8.8 и 1.1.1.1).

Но вроде публичная инфа, чего наши цирк из этого сделали (меседжеры просто общей рассылкой с уведомлением запретили, чего тут так нельзя было фик знает). Хотя нам иногда такие вещи проходят из верхних структур, что это вобще не ввзывает удивления)

Nack
Nack
3 месяцев назад

А тем временем цены на газ уже $1450 за тысячу кубометров:

«Цены на газ в Европе подпрыгнули аж на 23% за один день. Почему? Об этом рассказал в твиттере журналист Bloomberg Стефен Стапжинский.

Цены на газ взлетели сегодня после того, как группа депутатов Европарламента потребовала от Еврокомиссии — не дать запустить «Северный поток-2» раньше, чем будет обеспечено его «полное соответствие европейскому законодательству», — написал журналист.» (С)

Ванёк26
Ванёк26
для  Nack
3 месяцев назад

На Путяру ски работают!

i RobaD〄
i RobaD〄
для  Ванёк26
3 месяцев назад

Она любит выпить, этим надо воспользоваться(с)
«Здравствуйте, я ваша тётя!»

Так и здесь. Надо этим воспользоваться, пусть даже если тётя ненастоящая.

zontik
zontik
для  Nack
3 месяцев назад

С ценами на газ как с зараженными ковидом, сначала 100 человек зарасилось АААА мы все умрём, сейчас 20 тыс в день и всем по фиг
500 баксов кило куб — ой надо же как интересно получилось
800 басов килокуб — ой почти исторический рекорд поставили, ща упадёт
1000 баксов кило куб — аа ойй дорого кусается
1450 — П-А-М-А-Г-И-Т-Е
3000 и выше вообще пофиг.

Nack
Nack
для  zontik
3 месяцев назад

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

Чтобы добавить комментарий, надо залогиниться.