17 июля 2020 года с 20:25 UTC (23:25 МСК) по 22:10 UTC (18 июля 01:10 МСК) в работе сервиса Cloudflare наблюдались проблемы по всему миру. Хотя специалисты Cloudflare смогли быстро разобраться в ситуации, но избежать прерывания глобальных сервисов им не удалось. Причем инцидент оказался достаточно серьезным — на полчаса пользователям оказались недоступны многие интернет-ресурсы, включая Discord, Valorant, Patreon, GitLab, Medium, Zendesk, Gematsu, Windows Central, Crunchyroll, многие игровые серверы (Riot Games, FIFA, Steam), Stream Labs и даже портал Downdetector.
Cloudflare заявила, что возникла проблема в доступности системы Cloudflare IP Resolver из-за ошибки в конфигурации маршрутизатора в магистральной сети компании, а не из-за атаки на сервис извне или нарушением внутренних систем безопасности.
Инциденту предшествовала аварийная ситуация — сначала произошел разрыв связи между дата-центрами Cloudflare в Ньюарке и Чикаго. Это привело к возникновению критической нагрузки на дата-центры Cloudflare в Атланте и Вашингтоне, округ Колумбия. Оперативно реагируя на эту ситуацию сетевой инженер Cloudflare обновил конфигурацию на маршрутизаторе глобальной магистрали в Атланте, чтобы уменьшить и перераспределить нагрузку на узлы системы. Однако, оказалось, что в новой конфигурации маршрутизатора была допущена ошибка (вместо удаления маршрутов Атланты из магистрали было прописано пропускать все маршруты BGP в магистраль), поэтому он стал ресолвить неверные маршруты после прерывания связи с частью дата-центров. Именно это привело к недоступности некоторых частей сети и прерыванию многих сервисов.
Что именно было не так сделано.
Сетевой инженер удалил одну строку в блоке настроек маршрутизатора. Данный блок определелял список принимаемых маршрутов и фильтровал их в соответствии с указанным списком префиксов. Фактически, вместо удаления всего блока была удалена только строка со списком префиксов.
{master}[edit]
atl01# show | compare
[edit policy-options policy-statement 6-BBONE-OUT term 6-SITE-LOCAL from]
! inactive: prefix-list 6-SITE-LOCAL { ... }
Содержимое блока:
from {
prefix-list 6-SITE-LOCAL;
}
then {
local-preference 200;
community add SITE-LOCAL-ROUTE;
community add ATL01;
community add NORTH-AMERICA;
accept;
}
Специалисты Cloudflare поняли, что что-то пошло не так в их сети из-за сбоя в работе маршрутизатора в Атланте, они изолировали это устройство из рабочей сети и перенаправили трафик сервиса по корректным маршрутам. Через некоторое время работа Cloudflare была полностью восстановлена.
Cloudflare заявила, что сожалеет об этом неумышленном сбое. Специалисты компании внесли все необходимые изменения в конфигурацию сетевого оборудования, чтобы предотвратить повторное возникновение подобной проблемы.
См. также: