{"id":9478,"title":"\u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0440\u0430\u0442\u0438\u0448\u044c, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0430\u043a\u043e\u043f\u0438\u0448\u044c","url":"\/redirect?component=advertising&id=9478&url=https:\/\/vc.ru\/promo\/317067-korotko-nakopitelnyy-schet-stavka-po-kotoromu-zavisit-ot-summy-trat&placeBit=1&hash=d207611bc9f0e6594fdffbb28a750052a6fdd69fcd26c1c4f03600bcfe768326","isPaidAndBannersEnabled":false}
Иван Семин

Как лег Facebook по всему миру

«Facebook не может быть отключен, не так ли?» - на секунду подумали мы.

Сегодня в 1651 UTC мы открыли внутренний инцидент под названием «Поиск DNS в Facebook, возвращающий SERVFAIL», потому что мы беспокоились, что что-то не так с нашим преобразователем DNS 1.1.1.1 . Но когда мы собирались опубликовать сообщение на нашей публичной странице статуса, мы поняли, что происходит кое-что еще более серьезное.

Социальные сети быстро загорелись, сообщая о том, что также быстро подтвердили наши инженеры. Facebook и связанные с ним сервисы WhatsApp и Instagram фактически перестали работать. Их DNS-имена перестали разрешаться, а IP-адреса инфраструктуры были недоступны. Как будто кто-то сразу «выдернул кабели» из своих центров обработки данных и отключил их от Интернета.

Как такое вообще возможно?

Встречайте BGP

BGP означает протокол пограничного шлюза. Это механизм обмена маршрутной информацией между автономными системами (AS) в Интернете. Большие маршрутизаторы, которые заставляют Интернет работать, имеют огромные, постоянно обновляемые списки возможных маршрутов, которые можно использовать для доставки каждого сетевого пакета в их конечные пункты назначения. Без BGP Интернет-маршрутизаторы не знали бы, что делать, и Интернет не работал бы.

Интернет - это буквально сеть сетей, связанных между собой протоколом BGP. BGP позволяет одной сети (например, Facebook) рекламировать свое присутствие другим сетям, образующим Интернет. Поскольку мы пишем, что Facebook не рекламирует свое присутствие, интернет-провайдеры и другие сети не могут найти сеть Facebook, и поэтому она недоступна.

Каждая индивидуальная сеть имеет ASN: номер автономной системы. Автономная система (AS) - это отдельная сеть с единой внутренней политикой маршрутизации. AS может создавать префиксы (скажем, что они контролируют группу IP-адресов), а также транзитные префиксы (скажем, они знают, как достичь определенных групп IP-адресов).

ASN Cloudflare - AS13335 . Каждому ASN необходимо объявить свои префиксные маршруты в Интернет с помощью BGP; иначе никто не узнает, как подключиться и где нас найти.

В нашем учебном центре есть хороший обзор того, что такое BGP и ASN и как они работают.

На этой упрощенной схеме вы можете увидеть шесть автономных систем в Интернете и два возможных маршрута, по которым один пакет может пройти от начала до конца. AS1 → AS2 → AS3 является самым быстрым, а AS1 → AS6 → AS5 → AS4 → AS3 является самым медленным, но его можно использовать, если первый не работает.

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

route-views>show ip bgp 185.89.218.0/23 % Network not in table route-views> route-views>show ip bgp 129.134.30.0/23 % Network not in table route-views>

Между тем, другие IP-адреса Facebook оставались маршрутизируемыми, но не были особенно полезными, поскольку без DNS Facebook и связанные с ним службы были фактически недоступны:

route-views>show ip bgp 129.134.30.0 BGP routing table entry for 129.134.0.0/17, version 1025798334 Paths: (24 available, best #14, table default) Not advertised to any peer Refresh Epoch 2 3303 6453 32934 217.192.89.50 from 217.192.89.50 (138.187.128.158) Origin IGP, localpref 100, valid, external Community: 3303:1004 3303:1006 3303:3075 6453:3000 6453:3400 6453:3402 path 7FE1408ED9C8 RPKI State not found rx pathid: 0, tx pathid: 0 Refresh Epoch 1 route-views>

Мы отслеживаем все обновления и объявления BGP, которые мы видим в нашей глобальной сети. В нашем масштабе данные, которые мы собираем, дают нам представление о том, как подключен Интернет, и где предполагается, что трафик будет идти от и до любой точки планеты.

Сообщение BGP UPDATE информирует маршрутизатор о любых изменениях, внесенных вами в объявление префикса, или полностью удаляет префикс. Мы ясно видим это по количеству обновлений, которые мы получили от Facebook при проверке нашей базы данных BGP временных рядов. Обычно этот график довольно тихий: Facebook не вносит много изменений в свою сеть ежеминутно.

Но примерно в 15:40 UTC мы увидели пик изменений маршрутизации от Facebook. Вот тогда и начались проблемы

Если мы разделим это представление на объявления о маршрутах и снятие средств, мы получим еще лучшее представление о том, что произошло. Маршруты были отменены, DNS-серверы Facebook отключились, и через минуту после возникновения проблемы инженеры Cloudflare находились в комнате, недоумевая, почему 1.1.1.1 не может разрешить facebook.com, и беспокоясь о том, что это каким-то образом неисправно в наших системах.

Из-за этого отказа Facebook и его сайты фактически отключились от Интернета.

DNS затронут

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

➜ ~ dig @1.1.1.1 facebook.com ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 31322 ;facebook.com. IN A ➜ ~ dig @1.1.1.1 whatsapp.com ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 31322 ;whatsapp.com. IN A ➜ ~ dig @8.8.8.8 facebook.com ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 31322 ;facebook.com. IN A ➜ ~ dig @8.8.8.8 whatsapp.com ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 31322 ;whatsapp.com. IN A

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

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

Опять же, наш учебный центр дает хорошее объяснение того, как работает DNS.

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

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

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

Это увеличение трафика (количества запросов), которое мы видели в 1.1.1.1:

Итак, теперь, поскольку Facebook и их сайты настолько велики, у нас есть DNS-преобразователи по всему миру, которые обрабатывают в 30 раз больше запросов, чем обычно, и потенциально вызывают проблемы с задержкой и тайм-аутом для других платформ.

К счастью, версия 1.1.1.1 была бесплатной, частной, быстрой (как может подтвердить независимый DNS-монитор DNSPerf ) и масштабируемой, и мы смогли продолжать обслуживать наших пользователей с минимальным воздействием.

Подавляющее большинство наших DNS-запросов разрешалось менее чем за 10 мс. В то же время минимальная доля процентилей p95 и p99 увеличила время отклика, вероятно, из-за того, что с истекшим сроком жизни пришлось прибегать к серверам имен Facebook и тайм-ауту. Предел тайм-аута DNS в 10 секунд хорошо известен инженерам.

Влияние на другие службы

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

Мы также можем видеть еще один побочный эффект этой недоступности в нашем трафике WARP к и от затронутого Facebook ASN 32934. На этой диаграмме показано, как трафик изменился с 15:45 UTC на 16:45 UTC по сравнению с тремя часами ранее в каждой стране. Во всем мире трафик WARP в и из сети Facebook просто исчез.

Интернет

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

Обновлять

Примерно в 21:00 UTC мы увидели возобновление активности BGP в сети Facebook, которая достигла пика в 21:17 UTC.

Эта диаграмма показывает доступность DNS-имени facebook.com на DNS-преобразователе Cloudflare 1.1.1.1. Он перестал быть доступен примерно в 15:50 UTC и вернулся в 21:20 UTC.

Несомненно, сервисам Facebook, WhatsApp и Instagram потребуется больше времени, чтобы подключиться к сети, но по состоянию на 21:28 UTC Facebook, похоже, снова подключен к глобальному Интернету, и DNS снова работает.

0
2 комментария
Популярные
По порядку
Иван Семин

хабр так же взял с сайта клауда, так что ничего страшного

Ответить
0
Развернуть ветку
Читать все 2 комментария
Как сделать работу компаний и фрилансеров удобной

С помощью сервиса «Рокет Ворк».

Проект Федерации креативных индустрий Creative Russia Map получил Премию Рунета
«Купи сейчас, плати потом»: новая классика или мимолетная мода

Сервис рассрочек рассказывает о новом финтех-тренде.

Apple подписала тайное соглашение с Китаем на $275 млрд взамен на послабления регуляторов — The Information Статьи редакции

Компания пока никак не прокомментировала расследование издания.

«Яндекс» представил «Станцию» второго поколения с новым дизайном и улучшенным звуком Статьи редакции

Колонка поступит в продажу в первой половине 2022 года.

Ускорение на пути к будущему электромобильности и устойчивому развитию: Нико Росберг стал амбассадором Jungheinrich

Концерн Jungheinrich и Нико Росберг (Nico Erik Rosberg) объединят свои усилия в поддержку развития экологически чистой мобильности. Предприниматель в сфере экологичных технологических решений, потомственный немецкий автогонщик и чемпион мира Формулы-1 2016 года, Нико становится официальным амбассадором бренда Jungheinrich — ведущего мирового…

Сайт Tor заблокировали в России после публикации обращения с призывом к пользователям поднять у себя серверы Статьи редакции

Команда сообщила о начале блокировки всей сети с 1 декабря.

Как мы отказались от 20 млн рублей, потому что не хотели быть всего лишь исполнителями

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

Вкратце: что показал «Яндекс» на презентации YaC 2021 Статьи редакции

Коротко о главных анонсах и итогах года в направлениях нейросетей, беспилотников, «умных» устройств и электронной коммерции.

Устройства «Яндекса»
Статья дополняется
Лидерские качества. 30 полезных материалов для их развития

Наверняка вы не раз слышали фразу: «Саша — прирожденный лидер». Но разве лидерство «дается» с рождения? Конечно, нет. Как и многие навыки и soft skills, лидерские качества можно в себе развить. В этой статье я расскажу, с чего начать путь к лидерству, а еще поделюсь полезными материалами.

Увлечение самолётами, которое переросло в бизнес

Предприниматель из Волгограда производит и продаёт по всему миру симуляторы дополненной реальности.

null