
Facebook продолжает делиться новыми подробностями о том, что именно вызвало шестичасовой сбой, который остановил работу Facebook, Messenger, Instagram и WhatsApp в понедельник. В новом посте в блоге Facebook углубляется в технические детали того, что привело к сбою, заявляя, что он произошел из-за ошибки во время одной из многочисленных «плановых работ по техническому обслуживанию».
Facebook опубликовал свой первый отчет о сбое поздно вечером в понедельник, приписав его одной ошибке, которая оказала «каскадный эффект» на связь между центрами обработки данных, тем самым «остановив наши сервисы».
Facebook заявляет, что, хотя у него есть системы для аудита команд, которые могут вывести из строя всю его сеть, «ошибка в этом инструменте аудита должным образом не остановила» эту команду.
Передача данных между всеми этими вычислительными мощностями управляется маршрутизаторами, которые определяют, куда направлять все входящие и исходящие данные. И в рамках обширной повседневной работы по поддержанию этой инфраструктуры наши инженеры часто должны временно отключать часть магистральной сети для обслуживания — возможно, для ремонта оптоволоконной линии, увеличения пропускной способности или обновления программного обеспечения самого маршрутизатора.
Это стало причиной вчерашнего сбоя. Во время одной из этих плановых работ по техническому обслуживанию была выдана команда с целью оценки доступности глобальной магистральной пропускной способности, которая непреднамеренно отключила все соединения в нашей магистральной сети, фактически отключив центры обработки данных Facebook по всему миру. Наши системы предназначены для аудита таких команд, чтобы предотвратить подобные ошибки, но ошибка в инструменте аудита должным образом не остановила команду.
Это изменение привело к полному отключению соединений наших серверов между нашими центрами обработки данных и Интернетом. И эта полная потеря соединения вызвала вторую проблему, которая усугубила ситуацию.
Одной из задач, выполняемых нашими меньшими объектами, является ответ на DNS-запросы. DNS — это адресная книга Интернета, позволяющая простым веб-именам, которые мы вводим в браузеры, преобразовываться в конкретные IP-адреса серверов. На эти запросы на преобразование отвечают наши авторитетные DNS-серверы, которые сами занимают известные IP-адреса, которые, в свою очередь, анонсируются остальной части Интернета с помощью другого протокола, называемого пограничным протоколом шлюза (BGP).
Для обеспечения надежной работы наши DNS-серверы отключают эти BGP-анонсы, если они сами не могут связаться с нашими центрами обработки данных, поскольку это указывает на неисправное сетевое соединение. При недавнем сбое вся магистральная сеть была выведена из эксплуатации, что привело к тому, что эти объекты объявили себя неисправными и отозвали эти BGP-анонсы. В результате наши DNS-серверы стали недоступны, хотя и продолжали работать. Это сделало невозможным для остальной части Интернета найти наши серверы.
После того как все платформы Facebook были отключены, их способность устранять неполадки также была нарушена из-за того, что пострадали внутренние инструменты. В связи с этим Facebook отправил инженеров в центры обработки данных для получения физического доступа к оборудованию. Однако даже это заняло время, поскольку «оборудование и маршрутизаторы разработаны таким образом, чтобы их было трудно модифицировать, даже если у вас есть к ним физический доступ».
В данном конкретном случае компания заявляет, что предпринятые ею усилия по повышению безопасности ее систем замедлили процесс восстановления после сбоя, но она считает, что эта уступка того стоила:
Мы проделали огромную работу по укреплению наших систем для предотвращения несанкционированного доступа, и было интересно наблюдать, как это укрепление замедлило нас, когда мы пытались восстановиться после сбоя, вызванного не вредоносной деятельностью, а ошибкой, совершенной нами самими. Я считаю, что такая уступка того стоит — значительно повышенная безопасность изо дня в день по сравнению с более медленным восстановлением после, будем надеяться, редкого события, подобного этому.
Facebook заявляет, что уже приступил к «обширному процессу обзора, чтобы понять, как мы можем сделать наши системы более устойчивыми».