Перейти к материалам
истории

У интернета произошел небольшой сердечный приступ Как маленький провайдер и телекоммуникационный гигант по ошибке сломали часть интернета

Источник: Meduza
Taylor Vick / Unsplash

24 июня в работе многих крупных интернет-сервисов произошел сбой, он затронул, в частности, облачный сервис Amazon, сайт Reddit, стриминговую платформу Twitch, мессенджер Discord и сервис Downdetector, который сам отслеживает сбои в интернете. Сбой произошел около двух часов дня по московскому времени (в семь утра на востоке США) и продлился примерно два часа. 

Проблему изначально связали с крупным сервисом доставки контента Cloudflare, услугами которого пользуются миллионы сайтов. Компания заявила, что потеряла около 15% своего мирового трафика, однако ее собственные системы работали нормально: трафик не доходил до нее из-за чужих ошибок — в том числе, компании Verizon, одной из крупнейших телекоммуникационных компаний в США. Cloudflare опубликовала в своем блоге большой пост про причины сбоя (и с жесткой критикой Verizon), в котором описала случившееся словами «у интернета произошел небольшой сердечный приступ». 

Сбой произошел в системе маршрутизации трафика в интернете. Cloudflare для простоты сравнивает ее с выбором оптимальной дороги с помощью автомобильного навигатора. Сети, из которых состоит интернет (так называемые автономные системы), соединяются друг с другом с помощью протокола под названием BGP и обмениваются информацией о маршрутах. «BGP объединяет эти сети и строит „карту“ интернета, которая позволяет трафику проделать путь от вашего провайдера к популярному сайту в другой части планеты», — пишут в Cloudflare. Маршрут может быть как более конкретным, так и общим — Cloudflare приводит аналогию между построением маршрута в Лондон и в Букингемский дворец.

Небольшой провайдер из Пенсильвании DQE Communications (как пишет Slate, он обслуживает около двух тысяч зданий в Питтсбурге) использовал в своей сети инструмент под названием BGP Optimizer, который позволяет оптимизировать скорость и стоимость доставки трафика клиентам. Этот инструмент разбивает маршруты на более «конкретные» части: к примеру, принадлежащий Cloudflare маршрут 104.20.0.0/20 он разделил на два — 104.20.0.0/21 and 104.20.8.0/21. Протокол BGP устроен так, что дает приоритет более конкретным маршрутам и направляет трафик по ним.

Проблемы начались, когда 24 июня DQE по ошибке выпустила эти маршруты во внешний мир, передав их своему клиенту — металлургической компании Allegheny Technologies. В нормальной ситуации автономные сети сообщают «соседям» идентификаторы только своих маршрутов, но могут (по ошибке или злонамеренно) назвать чужие — и это приводит к изменению направления трафика. «Эта маленькая компания [по сути] сказала: „Эти 2400 сетей, включая части Cloudflare, Amazon, Google и Facebook, принадлежат нам, можете присылать нам их трафик“», — заявил техдиректор Cloudflare Джон Грэм-Камминг.

Allegheny Technologies, в свою очередь, передала маршруты другому своему провайдеру, Verizon — которая объявила их остальному миру. В результате при попытке подключиться к затронутым сетям пользователей отправляли в сети DQE Communications, Allegheny Technologies и Verizon, которые не были готовы к такому наплыву трафика. «Это аналогично тому, как если бы навигатор направил целое шоссе на улицу в спальном районе», — продолжают аналогию с дорогами в Cloudflare.

В компании настаивают, что Verizon могла бы предотвратить проблему, если бы использовала давно существующие инструменты, позволяющие ограничить число идентификаторов маршрутов, которые принимает автономная сеть, а также проверять, кому маршрут принадлежит. Cloudflare также утверждает, что в Verizon в течение по меньшей мере восьми часов не реагировали на звонки и письма — разрешить ситуацию удалось благодаря сотрудничеству с инженерами DQE Communications. В Verizon при этом говорят, что разрешили проблему сами.

Виктор Давыдов

при участии Султана Сулейманова