4 октября 2021 года все популярные сервисы компании Facebook ушли в офлайн. В отличие от большинства подобных случаев, которые быстро исправляются, на этот раз сбой продлился несколько часов — сейчас сервисы опять доступны. В самой компании причину объясняют скупо: ошибками конфигурации маршрутизаторов, которые координируют сетевой трафик между дата-центрами. В компании Cloudflare этот инцидент проанализировали детальнее. AIN.UA приводит основные тезисы этого объяснения.
- Команда Cloudfare обратила внимание на ошибку Facebook DNS lookup returning SERVFAIL, поначалу испугавшись, что что-то не в порядке с их собственным DNS-резолвером 1.1.1.1. И уже собирались опубликовать об этом публичный пост, когда поняли, что дела обстоят серьезнее.
- Facebook и его аффилированные сервисы WhatsApp и Instagram ушли в офлайн. Их DNS-имена перестали резолвиться, а IP-адреса были недоступны. «Было ощущение, как будто кто-то выдернул шнуры во всех их дата-центрах одновременно и отрубил их от интернета», — пишет компания в блоге.
- Что стало основной причиной? Для этого нужно понять, как работает протокол BGP — Border Gateway Protocol. Если систему DNS часто сравнивают с адресной книгой интернета, то BGP — его навигационная система, которая определяет, каким маршрутом будут передаваться пакеты данных.
«BGP — это механизм обмена информацией о маршрутизации между автономными системами (AS) в интернете. У маршрутизаторов, от которых зависит работа интернета, есть огромные и постоянно обновляющиеся списки маршрутов, которые могут быть использованы для доставки каждого сетевого пакета. Без BGP все интернет-маршрутизаторы “не знали бы, что делать” и интернет не работал. Интернет — это буквально сеть из сетей, и она связана воедино с помощью BGP. Этот протокол дает возможность одной сети (к примеру, Facebook) объявить о своем присутствии другим сетям, которые формируют интернет», — объясняют в компании.
- У каждой автономной сети есть свой номер: ASN, Autonomous System Number, а также единая политика внутренней маршрутизации. Такие сети могут формировать префиксы (указывать, что они контролируют определенную группу IP-адресов), а также транзитные префиксы (указывать, как связываются с определенными группами IP-адресов). Например, ASN у Cloudflare выглядит как AS13335. Каждая ASN должна «объявлять» о своих маршрутах интернету, используя BGP. Иначе никто другой из интернета не сможет с ней связаться.
- Ниже, на упрощенной диаграмме показаны связи между шестью ASN и двумя возможными маршрутами для одного пакета данных:
- 4 октября в Cloudflare заметили, что Facebook перестал отдавать информацию о маршрутах для своих DNS-префиксов. Это как минимум означало, что DNS-серверы Facebook стали недоступными. Из-за этого DNS-резолвер Cloudflare 1.1.1.1 больше не мог отвечать на запросы об IP-адресах для facebook.com или instagram.com.
- В Cloudflare следят за всеми обновлениями BGP в глобальной сети, в частности: об изменениях в префиксе или его отзыве. Обычно от Facebook таких сообщений мало, но когда они появились — это и стало началом проблем: Facebook отозвал свои маршруты и отключил себя от сети.
- Как прямое следствие этого, DNS-резолверы по всему миру перестали резолвить доменные имена facebook.com, whatsapp.com и instagram.com. Это случилось, потому что в DNS, как и во многих других интернет-системах, используется своя схема маршрутизации. Когда кто-то вводит адрес типа https://facebook.com, DNS-резолвер (который переводит доменные имена в IP-адреса), сначал проверяет, есть ли у него данные в кеше для этого адреса. Если их нет, он берет информацию с серверов, которые обычно хостит владелец домена. Если же с ними связаться невозможно, возвращается ошибка SERVFAIL, а пользователь не может открыть этот сайт в браузере.
- Из-за того, что Facebook перестал отдавать маршруты для DNS-префиксов, все DNS-резолверы в мире не могли с ними связаться. И 1.1.1.1, 8.8.8.8, и другие основные резолверы начали возвращать ошибку SERVFAIL.
Но и это еще не все. После этого поведение пользователей и логика работы приложений привели к другому экспоненциальному эффекту и к цунами дополнительного DNS-трафика.
- Частично это случилось, потому что приложения не принимают сообщение об ошибке как ответ и пытаются, иногда довольно агрессивно, продолжать попытки соединения. Частично — потому что пользователи тоже не хотят смиряться с ошибкой и начинают перегружать страницу, либо же закрывать и открывать приложения, в надежде, что они заработают — порой также довольно агрессивно. Вот рост трафика, который в Cloudfare увидели по данным 1.1.1.1:
- DNS-резолверы по всему миру вынуждены были справляться с количеством запросов, в 30 раз превышающим обычные нагрузки. Из-за этого начали “тормозить” и другие сервисы.
- Одновременно с этим пользователи бросились искать другие площадки для общения. В Cloudfare отметили рост DNS-трафика для Twitter, Signal и других социальных платформ:
«Эти события — напоминание всем нам, что интернет — очень сложная и взаимозависимая система с миллионами подсистем и протоколов, которые работают сообща. Доверие, стандартизация и совместная работа разных интернет-платформ — это основа работы интернета, сети с почти пятью миллиардами пользователей по всему миру», — пишут в компании.
По неподтвержденным данным, проблема усугубилась еще и тем, что сотрудники Facebook какое-то время не могли попасть внутрь зданий и дата-центров: из-за падения сети их бейджи перестали работать. Это подтверждает и журналист New York Times:
Компании Facebook и лично Марку Цукербергу падение стоило миллиарды долларов: стоимость акций компании упала, снизилось и состояние Цукерберга. Отключение сервисов произошло в момент, когда в США на Facebook и так обращено пристальное внимание: в СМИ одна за другой вышли несколько публикаций, которые представляют компанию и работу ее алгоритмов не в лучшем свете: пресса активно пишет, что Цукерберга ждут непростые времена.
Другие сервисы от падения Facebook частично выиграли: в Viber, например, заявили что число регистраций выросло на 500%, соцсети и мессенджеры указывали, что число новых пользователей стремительно росло. Правда, резкий наплыв пользователей привел к тому, что некоторые сервисы начали работать медленнее. Кроме того, все начали активно показывать свои юмористические способности.