Главная » Хабрахабр » Selectel IPv4 prefix route leaking

Selectel IPv4 prefix route leaking

И это настолько запомнилось, что этому случаю было посвящено выступление технического директора Selectel на конференции сетевых операторов ENOG-14.
Но обо всём по порядку. В ночь с 15 на 16 июля 2017 в сети Selectel случилось одно из наиболее запомнившихся событий, которое привело к ухудшению (вплоть до полной недоступности) связности сети Selectel с зарубежным сегментом интернета.

Описание сети

На тот момент сеть Selectel выглядела следующим образом. Selectel присутствует в двух городах РФ — Санкт-Петербурге и Москве, в каждом городе есть два пограничных маршрутизатора.

К каждому из маршрутизаторов подключены аплинки и пиринги. Каждый из маршрутизаторов анонсирует «в мир» сети Selectel от автономной системы AS 49505.

Крупнейшие аплинки Selectel — ТрансТелеком, РЕТН и Раском.
Крупнейшие пиринговые точки, к которым подключена сеть Selectel — MSK-IX, DATA-IX, DE-CIX.

На DE-CIX more-specific префиксы не использовались. На некоторых пиринговых точках (в частности, MSK-IX, DATA-IX и другие) использовались more-specific префиксы для увеличения объема входящего трафика через эти точки обмена.

Серверы размещены в нескольких странах на разных аплинках, с серверов анонсируются две подсети /24 с использованием BGP anycast. Автономная система 49505 используется также для предоставления распределённой сети DNS-серверов.

Internet Exchange

Internet Exchange (IX), точка обмена трафиком — это пиринговая сеть для разных сетевых операторов, представляющая собой один логический коммутатор, к которому подключены все операторы, и пару серверов, обеспечивающих общее распространение маршрутной информации между участниками точки обмена трафиком (роут-серверы, RS).

Ответственность IX, как правило, проявляется в двух видах — пропуск трафика от одного участника к другому через коммутацию пакетов, и обеспечение корректного функционирования роут-серверов на точке обмена трафиком — фильтрация полученных маршрутов, если кто-то из участников анонсирует неправильные маршруты, передача корректной информации от одного участника к другим и, что особенно важно для крупных точек обмена трафиком, организация blackhole для маршрутов, отмеченных специальным community.

Blackhole

Blackhole, в переводе «чёрная дыра», это механизм, позволяющий операторам связи защищаться от DDoS на свои сети. Этот механизм не позволяет сохранить доступность атакованного ресурса, но, по крайней мере, направлен на сохранение работоспособности сети оператора, у которого располагается данный ресурс, или через которого данный ресурс доступен.

В конце 2016 года эта коммьюнити была включена в RFC 7999 в список well-known communities (https://tools.ietf.org/html/rfc7999). Для определения ресурсов, на которые надо не передавать трафик, операторами используется так-называемая blackhole community.

Но настройки у некоторых точек обмена трафиком и у некоторых операторов позволяют приём blackhole-маршрутов с маской подсети, отличной от /32. Обычно операторы очень осторожно применяют blackhole community, и, как правило, эта коммьюнити применяется только на /32 префиксы.

Александр Ильин, технический директор MSK-IX

Александр Ильин, технический директор MSK-IX
MSK-IX внедрил услугу BGP Blackholing одним из первых на мировых точках обмена трафиком. Описанная коллегами из Selectel проблема нашу инфраструктуру не затронула, так как согласно правилам предоставления Blackhole на наших Route Serverах допустимы только маршруты от /25 до /32. В соответствии с политикой региональных интернет-регистратур RIR (RIPE, RADB, и т.д.) Blackhole community может быть установлено только на уже анонсируемые Участником сети. RS принимает от Участника анонсы сетей только если данные сети также анонсируются Участником без атрибута и такого рода ошибки будут отфильтрованы на входе. Мы также поддерживаем актуальную базу контактов участников и в подобных случаях оперативно блокируем нарушителей.

Инцидент: первая кровь

Итак, всё произошло в ночь с 15 на 16 июля 2017 года. То есть, с субботы на воскресенье. Большинство сетевых инженеров, осмелюсь предположить, в ночь с субботы на воскресенье летом всё-таки отдыхают. В 0:30 (время тут и далее московское) техническому директору на мобильный телефон поступил звонок от дежурных инженеров технической поддержки Selectel: «Что-то странное происходит, мы пока не знаем что, но симптомы — клиенты жалуются на недоступность зарубежных серверов с серверов Selectel, или серверов в Selectel с зарубежных серверов. Плюс в офисной сети перестал работать мессенджер Slack».

Анализ логов и сообщений системы мониторинга не выявил очевидных проблем. В ответ на это сотрудникам технической поддержки было выдано указание собрать проблемные маршруты от жалующихся клиентов. Более глубокий анализ показал падение трафика на одном из аплинков, ТрансТелекоме, без увеличения количества трафика на других аплинках. Сеть Selectel с сетей мобильных операторов была нормально доступна, удалённый доступ работал без проблем.

В это время, как правило, заканчивается ЧНН (час наибольшей нагрузки) на интернет-сетях, и падение трафика может быть вызвано не только аварийными причинами, но и обычным поведением в течение суток, и в целом не очень заметно. 0:30 — очень неудачное время поиска аномалий на графиках загрузки интернет-каналов.

После чего BGP-сессия с ТТК была деактивирована. С учётом недостаточности собранного материала и короткого времени диагностики проблемы, был сделан вывод «наверное, что-то сломалось в ТТК». Техническая поддержка отправлена связываться с технической поддержкой ТрансТелекома. Перестройка маршрутов привела к исправлению проблемы, Slack заработал, связность была восстановлена, клиенты начали подтверждать полную работоспособность сервиса.

Прерванный ночной сон был продолжен.

Инцидент: основная часть

Около 02:00 опять перестал работать мессенджер Slack из офисной сети, опять повторилась ситуация с недоступностью значимой части зарубежных ресурсов. Это при отключенном канале от ТрансТелекома, то-есть, или первое предположение было ошибочно (но почему тогда после отключения BGP-сессии с ТТК всё заработало?), или проблема получила дальнейшее распространение. Дежурные инженеры технической поддержки сообщили о массовых звонках клиентов с жалобами на недоступность ресурсов. Массовость звонков и анализ выданных клиентам подсетей показал, что проблемы касаются большинства используемых в сети Selectel IP-префиксов, то есть проблема носит глобальный характер, а не группируется на каком-то одном префиксе.

Причем, есть значительная асимметрия проблемных потоков трафика. Техническая поддержка опять стала собирать результаты выполнения команды traceroute, как от серверов изнутри Selectel, так и от серверов снаружи.
Изучение трассировок показало, что проблемы локализуются в районе DE-CIX. А вот если обратный маршрут проходит через DE-CIX, то проблема недоступности однозначно проявляется. Если маршрут от Selectel к конечным ресурсам проходит через DE-CIX, то проблем может не наблюдаться. Например, один пакет из сети оператора А в сеть Selectel может быть отправлен через DE-CIX, второй — через DATA-IX, а третий через Cloud-IX. Диагностика таких проблем очень часто усложнена асимметрией трафика и использованием ECMP у операторов.

В ходе попыток локализовать и диагностировать проблему сессия с ТрансТелекомом была включена.

Глаз зацепился за вывод информации с маршрутизаторов ТрансТелекома. Дальше инженеры стали внимательно анализировать информацию на looking glass различных операторов.

93. Selectel анонсирует префикс 188. 0/21 своим аплинкам и more-specific префикс 188. 16. 16. 93. Для того, чтобы аплинки не брали more-specific префиксы “снаружи”, всем аплинкам анонсируются те же more-specific префиксы с коммунити no-export, т.е. 0/22 на часть точек обмена трафиком. Но при поднятой сессии с ТрансТелекомом было обнаружено, что на московском маршрутизаторе ТТК (с которым прямой сессии у Selectel не было в тот момент) присутствует селектеловский more-specific префикс, ведущий через некоторую автономную систему 2854. внутри сетей аплинков эти префиксы должны присутствовать в RIB с best маршрутом на клиентскую сессию.

она никак не должна являться транзитной автономной системой для префиксов Selectel. Автономная система 2854 не числится в аплинках или пирингах Selectel, т.е. Непонятно. Откуда в ТТК взялся этот префикс?

Вот роут-сервер, вся информация соответствует ожиданиям. Смотрим на looking glass DE-CIX.

More-specific префикса нет, Selectel не анонсирует more-specific на DE-CIX. Как и предполагалось, на роут-сервере префикс указывает сразу на маршрутизатор Selectel. Но что-то остановило от перехода к следующему looking glass, и маршрутная информация была запрошена с роут-сервера №2.

Ой!

Во-первых, на роут-сервере №2 откуда-то взялся more-specific префикс 188.93.16.0/22. Откуда он там взялся? AS path 2854 49505. То-есть, опять AS 2854 вдруг анонсирует префиксы Selectel через себя. Во-вторых, насторожило коммьюнити (65535, 666). Это же blackhole community! AS 2854 откуда-то берет more-specific префиксы Selectel, после чего отдаёт их в сторону роут-сервера №2 DE-CIX с установленной blackhole community!

Сравним вывод с РС1 и РС2 на DE-CIX:

На РС1 нет more-specific, и маршрут идет сразу в Selectel, как и положено. Да. На РС2 есть more-specific из 2854 с установленной blackhole community.

Логично, что маршрутизаторы операторов, которые берут маршруты с роут-серверов DE-CIX, «видят» маршрут в Selectel best’ом по more-specific префиксу, трафик на который фильтруется самим DE-CIX.

Диагностика «по проторенной дорожке» показала, что опять таки проблема с AS 2854, которая анонсирует через себя очень много маршрутов, в том числе, на операторов Санкт-Петербурга, с использованием blackhole community. Когда примерно стало понятно, в чём заключается проблема маршрутизации через DE-CIX, в чат-группе связистов Санкт-Петербурга возникли вопросы «почему у нас тоже нет связи с некоторыми зарубежными ресурсами». У ШПД операторов жалобы от абонентов стали обретать массовый характер только к утру, это специфика ШПД для физических лиц и времени возникновения проблем (напомню, ночь с субботы на воскресенье, лето — многие домашние пользователи в это время на дачах, в отпуске, спят).

Кто виноват

В ходе диагностики определён номер автономной системы, которая анонсирует некорректные маршруты на РС2 DE-CIX, AS 2854. Кто это? Эта информация нужна для того, чтобы оперативно смочь связаться с ними и сказать, что там делают «не дело». AS 2854 — это российская «дочка» глобального оператора Equant (он же Orange Business Services), ранее в РФ эта компания называлась Роспринт.

Среди технических контактов был даже найден мобильный телефон одного из инженеров. Естественно, на адрес noc@rosprint.net было отправлено письмо с описанием проблемы, на указанные телефоны стали звонить инженеры технической поддержки. Инженер Роспринта оказался в отпуске и вообще где-то в районе озера Байкал, а не у компьютера. Звонок на мобильный телефон инженеру желаемых результатов не дал. Почтовый ящик noc@rosprint.net в нерабочее время, видимо, игнорируется. Звонки в техническую поддержку Роспринта сначала заканчивались предложением написать им письмо с описанием проблемы, а в понедельник «придут сетевики и может быть разберутся». Дошло уже до того, что техническая поддержка Роспринта, услышав «я из компании Selectel», стала просто вешать трубку.

Что делать

Помимо того, что мы всеми силами пытались выйти на связь с инженерами Роспринта, предпринимались попытки как-то исправить ситуацию или уменьшить проблемы.
Первая попытка исправить ситуацию из самого Selectel. Надо отключить more-specific, тогда они не будут попадать на РС2 DE-CIX, где 100% становятся best-маршрутами для участников DE-CIX. Отключили. Да, эти маршруты перестали попадать на РС2, но теперь на РС2 были агрегированные маршруты до сетей Selectel. На РС1 был маршрут 188.93.16.0/21 через AS 49505 (правильный маршрут от Selectel), но на РС2 — маршрут 188.93.16.0/21 с AS path 2854 49505 и blackhole community.

Связность не восстановилась у тех операторов и от тех ресурсов, которые использовали маршруты с РС2 в качестве best, несмотря на AS path. Частично связность восстановилась, теперь на DE-CIX не стало more-specific маршрутов до сетей Selectel.

Мы не можем достучаться до инженеров Роспринта. Ок. Будем стучаться до других инженеров.

Попытка написать письмо с описанием проблемы, а потом позвонить для увеличения приоритета обращения в техническую поддержку DE-CIX, успеха не возымела.

Мы просили отключить Роспринт от роут-серверов DE-CIX, так как они посылают неверную информацию на роут-сервер, а мы не можем достучаться до инженеров Роспринта. Инженеры технической поддержки DE-CIX стали отрицать свою причастность к управлению маршрутной информацией на роут-серверах.

И был расчет на то, что при падении двух крупных каналов на точки обмена трафиком техническая поддержка Роспринта будет обязана сообщить о данном происшествии сетевым инженерам, а те начнут разбираться. Тогда мы стали писать письма в MSK-IX и DATA-IX с просьбой отключить Роспринт (так как они осуществляют некорректные действия с префиксами с IX).

Ночь прошла

Так, в диагностике и попытках связаться с Роспринтом прошла ночь. Вдруг в 11:26 (когда MSK-IX и DATA-IX тоже убедились в некорректности действий Роспринта и были готовы произвести отключение их от роут-серверов), пришло сообщение из Роспринта:

Ни извините, ни контактов, ничего… Вот и всё.

Уроки

Из происшедшего мы вынесли несколько уроков. К сожалению, уроки эти были достигнуты на своём опыте борьбы с нашими проблемами, но, надеюсь, чему-то в дальнейшем этот текст поможет и другим операторам:

  • На IX надо всегда смотреть два роут-сервера.
  • Связность до своей сети надо мониторить снаружи. Используя для мониторинга связности не просто ping/HTTP GET, а различные API сервисов, в том числе stat.ripe.net.
  • Наличие more-specific префиксов нам, вопреки распространённому среди операторов мнению об их вредности, помогло диагностировать проблему.
  • Заключая контракты на полосу интернет-трафика с аплинками, желательно предусматривать возможность работы с использованием только одного оператора, а не просто обеспечивать необходимое резервирование на случай выхода из строя одного из пограничных маршрутизаторов.
  • Anycast, если таковые сегменты есть, желательно отделять по автономной системе от основной сети.

Почему РС на DE-CIX принял маршруты на сети Selectel от AS 2854?

А уже AS 2854 может анонсировать префиксы из AS-URAL. Потому что AS 49505 является членом AS-SET AS-URAL для anycast префиксов.

Алексей Кузнецов, заместитель начальника УСИТ СПбГУ

Алексей Кузнецов, заместитель начальника УСИТ СПбГУ
Современные IT-системы и сети связи это постоянное взаимодействие пользователей и различных IT-сервисов, которые в свою очередь зависят/взаимодействуют с другими IT-сервисами как напрямую от пользователя (аутентификация по соцсетям и т.п.), так и напрямую между собой. Нарушение работы IT-сервисов, связанности их с пользователями или между собой сразу же сказывается на пользователях, причем зачастую неочевидным способом. Вариант «не работает совсем» является наиболее простым методом неисправности, другие же случаи требуют «траблшутинга» как со стороны сотрудников технической поддержки, взаимодействующих напрямую с пользователями/владельцами сервисов, так и инженеров. Что проще, разобраться детально или ответить «ошибка не в нашей зоне ответственности», «это интернет, тут никто ни за что не отвечает»? Да, ошибки/проблемы одних операторов связи могут сказываться на работе пользователей/сервисов, находящихся у других операторов связи, не имеющих никаких прямых отношений с «источником проблемы», через сети которого трафик даже не идет транзитом. Отдельной проблемой является то, что операторы связи имеют персонал разного уровня квалификации, не говоря уже о сотрудниках, работающих в ночное время и выходные дни, различные политики эскалирования проблемы, т.к. для оператора связи первичны подключенные к нему пользователи/сервисы, а решение эскалировать «чужую» проблему своим системным администратором, а может сперва и Руководству, в ночное время зависит уже от конкретного дежурного, от реакции его коллег на предыдущие эскалации и т.п. Зачастую единственным вариантом быстрой эскалации проблемы являются прямые контакты руководителей и администраторов операторов связи, возможность пройти по цепочке контактов и выйти на нужного сотрудника. В чужой монастырь со своим уставом ходить не принято, так что тут инициативу на себя могут взять или национальные организации, либо уже признанные международные организации, например RIPE для региона Европа-Россия, установив общие для всех своих членов «правила игры».


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Наша книжная полка С#-программиста. А что у вас?

Привет! Обычно мы рекомендуем несколько источников, сопровождая их своими комментариями, почему именно они будут полезны. Будущие студенты Veeam Academy часто спрашивают нас о книгах, которые были бы полезны при подготовке к поступлению на наш курс по программированию на С#. Поэтому ...

[Из песочницы] Компрессия больших массивов простых чисел

Естественный формат хранения в виде целых чисел той или иной разрядности страдает при этом некоторыми недостатками, которые становятся существенными при росте объема данных. Свойства простых чисел редко позволяют работать с ними иначе, чем в виде заранее вычисленного массива — и ...