Как Hurricane Electric подставил МегаФон, причем тут China Telecom и MSK-IX

Речь пойдет про нарушение «Закона о Связи» из-за возникающей между сетями российских операторов связи ПАО МегаФон и ООО «Ай Ти» через зарубежных операторов. Данное нарушение является административным, возможен штраф 150 тыс. руб. Как к этому всему причастны HE, CT и MSK-IX — об этом ниже.

Введение

В «Законе о Связи», а точнее в ФЗ-90 от 1 мая 2019 года, в п.6 ст.65.1 вводятся правила маршрутизации трафика для случаев, когда получателем и отправителем его являются пользователи на территории РФ.

Выдержка из ЗоС

6. В случае осуществления централизованного управления сетью связи общего пользования лица, участвующие в централизованном управлении, обязаны выполнять правила маршрутизации сообщений электросвязи, установленные федеральным органом исполнительной власти, осуществляющим функции по контролю и надзору в сфере средств массовой информации, массовых коммуникаций, информационных технологий и связи. Правила маршрутизации сообщений электросвязи распространяются на сообщения электросвязи в случае, если получателем или отправителем таких сообщений является пользователь услугами связи на территории Российской Федерации.

В самих правилах указывается на запрет маршрутизации трафика через сети, находящиеся за пределами территории РФ, за некоторым исключением.

Выдержка из Правил

2. Если получателем и отправителем сообщений электросвязи является пользователь услугами связи на территории Российской Федерации, не допускается маршрутизация сообщений электросвязи через сети связи, находящиеся за пределами территории Российской Федерации, за исключением случаев маршрутизации сообщений электросвязи между пользователями услугами связи на территории Калининградской области, на судах, приписанных к портам Российской Федерации, находящимся в открытом водном или воздушном пространстве вне пределов Российской Федерации, и иными пользователями услугами связи на территории Российской Федерации, между абонентами российских операторов связи в посольствах, консульствах и представительствах Российской Федерации за рубежом, а также между абонентами российских операторов связи в посольствах, консульствах и представительствах Российской Федерации за рубежом и абонентами российских операторов связи на территории Российской Федерации.

Особо внимательне могут заметить, что закон описывает ситуацию, когда работает «централизованное управление сетью». В законе это описывается в п.2 ст.65.1 — централизованное управление может осуществляться в случае возникновения угроз устойчивости, безопасности и целостности функционирования сети Интернет.

Выдержка из ЗоС

2. В случае возникновения угроз устойчивости, безопасности и целостности функционирования на территории Российской Федерации информационно-телекоммуникационной сети «Интернет» и сети связи общего пользования может осуществляться централизованное управление сетью связи общего пользования федеральным органом исполнительной власти, осуществляющим функции по контролю и надзору в сфере средств массовой информации, массовых коммуникаций, информационных технологий и связи.

Централизованное управление сетью — полномочия Роскомнадзора, он является федеральным органом исполнительной власти. Реализуются эти полномочия силами Центра мониторинга и управления сетью связи общего пользования (ЦМУ ССОП) — подразделением Главного радиочастотного центра (ФГУП ГРЧЦ). Роскомнадзор является собственником ГРЧЦ, а ГРЧЦ — исполнителем (т.е. «руками»), в том числе функции мониторинга соблюдения законодательства.

Подытожим: в случае централизованного управления сетью ЦМУ ССОП берет управление в свои руки и маршрутизирует трафик между российскими абонентами так, чтобы он не выходил за пределы территории РФ.

Сразу возникают вопросы: как ЦМУ ССОП будет выполнять это требование, а самое главное — когда и как будет объявлено централизованное управление? И у меня таки есть ответ на оба: требование будет выполнять оператор (а точнее владелец автономной системы), а ЦМУ ССОП будет только присылать акты о нарушении, а дальше — суд и штраф;, а централизованное управление уже давно введено, об этом не писали в газетах, не говорили по ТВ — тихо уведомили сообщением каждому оператору в его личном кабинете на портале ГРЧЦ.

Как это работает

В 2021 году ЦМУ ССОП разработал и разослал владельцам автономных систем Инструкцию по организации подключений к системе «ИС ЦМУ ССОП». Инструкция прекрасно гуглится и любой желающий может ознакомиться с перечнем предоставляемой в ЦМУ ССОП информацией, а именно:

  • по протоколу BGP непрерывно выгружается таблица маршрутизации;

  • по протоколу SNMP ЦМУ ССОП имеет возможность опрашивать счетчики интерфейсов маршрутизаторов;

  • по протоколу Netflow ЦМУ ССОП получает информацию о передаваемом трафике.

Первого пункта более чем достаточно, чтобы обнаруживать прохождение трафика через зарубежные сети, что ЦМУ ССОП и делает: по AS-PATH всех имеющихся у него маршрутов он выбирает те, среди которых номер зарубежной AS обрамляется российскими, например:

12389 1299 3267

где 12389 — Ростелеком, 1299 — Arelion (бывш. Telia), 3267 — Runnet. Далее ЦМУ ССОП определяет граничную AS, допустившую маршрутизацию трафика вопреки Правилам — в данном примере это AS 12389, и отправляет им Письмо-поручение.

В поручении будет вложено несколько документов, включая скриншот из той самой ИС ЦМУ ССОП, где в графическом виде визуализируется выходящий за пределы РФ маршрут («петля за рубеж»), и самое главное — срок устранения. Если в указанный срок не устранить петлю и не отправить отчет о причинах — оператор получает штраф.

Так что там с Hurricane Electric?

Самое глупое во всей описанной схеме, что петля фиксируется со стороны оператора, который ни о петле, ни о существовании удаленной AS знать ничего не знает. Например, AS 3267 может иметь в аплинках российских операторов МегаФон, ВымпеКом, МТС, но из-за ошибки инженеров Runnet маршруты были помечены комьюнити 31133:26130, 3216:5290 и 8359:2110 в сторону каждого из аплинков соответственно, и Ростелеком маршрута через российские сети не получит, а значит отправит трафик в сторону AS 3267 через своих аплинков за рубеж. Еще раз: ошибку совершил инициатор распространения маршрутной информации, а штраф влепили получателю.

Если немного отойти от конкретного примера, то требования Правил можно описать языком математики, например, теории графов. Делать этого я, конечно же, не буду, ограничившись достаточно вольной формулировкой:

Для каждого элемента множества ASru, ориентированный граф связности со всеми остальными элементами данного множества должен быть связным.

Если во множетсве ASru найдется элемент ASn, для которого граф будет несвязным, то в дело вступает Оперативный дежурный ЦМУ ССОП.

А что с China Telecom?

Говоря про сетевую связность мы часто оперируем понятием автономная система, забывая, что маршрутизируемой единицей является сеть (или «префикс»), а AS — лишь атрибут принадлежности этой сети!

И если мы посмотрим на таблицу маршрутизации BGP, а посмотреть ее можно, например, на публичных роутерах https://www.routeservers.org/, то можем убедиться, что она представляет собой что-то вроде базы данных key-value, где key — это некий префикс (Network), а value — массив кортежей (Next Hop, Metric, Local Preference, Path, Status и др):

     Network          Next Hop            Metric LocPrf Weight Path
 * i  1.0.0.0/24       193.251.150.10                150      0 13335 i
 * i                   193.251.156.144               150      0 13335 i
 * i                   193.251.143.156               150      0 13335 i
 * i                   193.251.156.118               150      0 13335 i
 * i                   193.251.154.150               150      0 13335 i
 * i                   193.251.150.66         100     85      0 1299 1299 1299 1299 13335 i
 * i                   193.251.143.162               150      0 13335 i
 * i                   172.25.4.248                  150      0 13335 i
 * i                   193.251.151.222               150      0 13335 i
 * i                   193.251.245.36                150      0 13335 i
 *>i                   193.251.245.37                150      0 13335 i
 * i  1.0.4.0/24       195.219.87.114         100     85      0 6453 7545 38803 i
 * i                   193.251.150.244        100     85      0 6453 7545 38803 i
 * i                   172.25.4.213           100     85      0 6453 7545 38803 i
 * i                   193.251.156.122        100     85      0 174 7545 38803 i
 * i                   193.251.150.30         100     85      0 6453 7545 38803 i
 * i                   154.54.11.181          100     85      0 174 7545 38803 i
 * i                   193.251.156.112        100     85      0 1299 7545 38803 i
 * i                   193.251.150.66         100     85      0 1299 7545 38803 i
 * i                   62.115.170.120         100     85      0 1299 7545 38803 i
 *>i                   172.26.4.166           100     86      0 6453 7545 38803 i
 * i                   195.12.254.164         100     85      0 1299 7545 38803 i
 * i                   195.12.254.102         100     85      0 1299 7545 38803 i
 * i                   193.251.248.0          100     85      0 1299 7545 38803 i
 * i                   193.251.150.76         100     85      0 1299 7545 38803 i
 * i                   195.12.254.154         100     85      0 1299 7545 38803 i
 * i                   195.12.254.212         100     85      0 1299 7545 38803 i

С учетом этого можно скорректировать формулировку:

Для каждого элемента множества ASru, ориентированный граф связности со всеми элементами Pru должен быть связным.

Pru — это множество российских префиксов, анонсируемых от имени российских автономных систем.

При чем тут MSK-IX???

А вот на этот вопрос уже можно ответить конкретно: MSK-IX — это несвязное с Интернет сообщество. Анонсируемый на роут-сервер маршрут будет распространен только среди участников этого сообщества и передан далее нижестоящим автономным системам. Этот маршрут не попадет в таблицу маршрутизации AS, если она не находится в клиентском конусе MSK-IX.

Обозначим через AS’ru множество автономных систем российских операторов, присутствующих на MSK-IX или попадающих в клиентский конус MSK-IX, через P’ru — множество префиксов, принадлежащих AS’ru и доступных через роут-сервер MSK-IX. Предположим, что существует префикс P’x, который принадлежит множеству P’ru и не принадлежит множеству Pru. Есть ли в этом какая-то проблема с т.з. ЦМУ ССОП? Нет, проблемы никакой нет: в базе данных key-value глобального интернета нет записи с ключем, соответствующему P’x.

А что, если в глобальном интернете или его существенной части появится префикс P’x? Тогда произойдет полное или частичное (не для всех элементов ASru) объединение Px и P’x. А если при этом вершиной графа, связывающего элементы подмножества ASru\AS’ru, будет элемент ASn, не входящий в множество ASru? А, вот это штраф!

А теперь по-русски: на роут-сервере MSK-IX может появиться префикс, которого нет в глобальном интернете, но его туда доставит какой-то из зарубежных операторов и проанонсирует своим российским клиентам, которые сами на MSK-IX не присутствуют.

Какие причины?

Блиц в формате вопрос-ответ:

В. Как на MSK-IX появился такой префикс?

О. Многие операторы «выжимают» из IX-ов максимум трафика, анонсируя туда более мелкие части («more-specific») своих сетей, и не анонсируют их напрямую в Интернет. Так делать не нужно, это влечет разные проблемы, нарушает логику работы CDN.

В. Зачем международному оператору брать связность на MSK-IX и перепродавать её российским операторам?

О. Это тактика некоторых операторов, самый известный и крупный из которых — Hurricane Electric. Оператор нашёл свою нишу — получает связность по минимальной цене в одной стране, перепродает её в другой. Можно считать, что это некое противопоставление тактике Tier-1, которые свою связность продают, а обмениваются ей только среди равных себе.

В. Почему российский оператор, получивший штраф сам не включится в MSK-IX?

О. Описанная проблема не с конкретным IX-ом, она может повториться на любой площадке. Кроме того, на IX-ах не участвуют классические магистральные операторы — Ростелеком, ТТК, ВымпелКом, МегаФон и некоторые другие.

В. А зачем тогда они покупают интернет у зарубежных операторов, у того же Hurricane?

О. Санкции. Изначально они покупали IP-транзит у Tier-1 операторов, но из-за санкций многие сделки либо заморожены, либо расторгнуты. Трафик растёт, нужно расширять стыки, приходится покупать у того, кто более лоялен к российским компаниям, например, китайцы (China Telecom), турки (TurkTelecom), индусы (Tata) и др.

В. Почему тогда не запретить покупать интернет у зарубежных операторов?

О. А связность с зарубежными сетями ты где будешь брать, гений?

В. А что тогда можно сделать?

О. Лучше всего — не писать законы, перечащие уже работающим правилам и подчиняющимся технологическим стандартам. Либо делать это максимально разграничивая обязанности, зоны ответственности. Писать законы по принципу «Маршрут, СТОЙ! Раз-два!» — это плохо. Понятненько?

В. А что-то более реалистичное можно придумать?

О. Во время читать письма от государственных органов и своевременно реагировать на них. Покупать IP-транзит, в котором не замешивается трафик закрытых сообществ. Например, с учетом данного закона требовать от зарубежных аплинков запрета на подключение к российским IX-ам или операторам как клиент. Небольшим операторам рекомендуется иметь прямые включения в федеральных магистралов.

В. Может быть стоит выгнать зарубежные компании с российский IX-ов?

О. Помимо американского Hurricane на российских IX-ах получают трафик операторы ближнего зарубежья: из Казахстана, Узбекистана, Азербайджана, Армении, а также их более дальних клиентов — Иран, Афганистан и т.д. Они платят российским магистралам за доступ по территории РФ, они платят самому IX-у; российские контент-провайдеры, соцсети, кинотеатры отдают им трафик для абонентов, конкурируя с зарубежными компаниями — тоже монетизация. Так что лучше созидать, а не разрушать.

В. Почему бы тогда не разделить IX-ы для российских и зарубежных операторов?

О. Здесь есть рациональное зерно. Например, шведский Netnod IX состоит из двух параллельных плоскостей — Green и Blue (не считая сегментов с повышенным MTU и в других городах). Но добровольно строить параллельную инфраструктуру вряд ли кто будет, а если за дело возьмутся законотворцы, то может стать только хуже…

В. А есть еще примеры подобных нарушений?

О. Примеры есть, их можно найти, если хорошо поискать. Думаю, ЦМУ ССОП всё-таки использует закон и свою систему как «дубину» для дисциплинирования операторов. Если они в одночасье найдут все проблемные места и пришлют предписания на устранения, чем они в дальнейшем будут обосновывать своё существование? Вооооот!

В. Так что же все-таки случилось с МегаФоном?

О. У МегаФонa, AS 31133, в апинках есть China Telecom Global, AS23764:

Скриншот из системы Radar.Qrator для AS 31133
Скриншот из системы Radar.Qrator для AS 31133

В аплинках у China Telecom есть Hurricane Electric, AS 6939:

Скриншот из системы Radar.Qrator для AS 23764
Скриншот из системы Radar.Qrator для AS 23764

Hurricane Electric присутствует на MSK-IX:

Скриншот из системы Radar.Qrator для AS 6939
Скриншот из системы Radar.Qrator для AS 6939

Вот их BGP-сессия в Looking Glass роут-сервера MSK-IX, анонсируют 91 тысячу префиксов:

Скриншот из Looking Glass MSK-IX
Скриншот из Looking Glass MSK-IX

На MSK-IX есть тульский оператор АйТи, AS 42916, который анонсирует туда 17 префиксов

Скриншот из Looking Glass MSK-IX
Скриншот из Looking Glass MSK-IX

Если посмотреть в таблице Интернет (я смотрел на telnet route-server.opentransit.net), то видно только 7 префиксов:

     Network          Next Hop            Metric LocPrf Weight Path
 * i  91.193.236.0/23  193.251.150.66         100     85      0 1299 3216 42916 i
 * i                   193.251.247.254        100     85      0 9002 42916 i
 * i                   172.25.4.85            100     85      0 9002 42916 i
 *>i                   172.25.4.85            100     85      0 9002 42916 i
 * i  91.193.236.0/22  193.251.150.66         100     85      0 1299 3216 42916 i
 * i                   193.251.247.254        100     85      0 9002 42916 i
 * i                   172.25.4.85            100     85      0 9002 42916 i
 *>i                   172.25.4.85            100     85      0 9002 42916 i
 * i  91.193.238.0/23  193.251.150.66         100     85      0 1299 3216 42916 i
 * i                   193.251.247.254        100     85      0 9002 42916 i
 * i                   172.25.4.85            100     85      0 9002 42916 i
 *>i                   172.25.4.85            100     85      0 9002 42916 i
 * i  91.195.204.0/23  193.251.150.66         100     85      0 1299 3216 42916 i
 * i                   193.251.247.254        100     85      0 9002 42916 i
 * i                   172.25.4.85            100     85      0 9002 42916 i
 *>i                   172.25.4.85            100     85      0 9002 42916 i
 * i  91.201.252.0/23  193.251.150.66         100     85      0 1299 3216 42916 i
 * i                   193.251.247.254        100     85      0 9002 42916 i
 * i                   172.25.4.85            100     85      0 9002 42916 i
 *>i                   172.25.4.85            100     85      0 9002 42916 i
 * i  91.201.252.0/22  193.251.150.66         100     85      0 1299 3216 42916 i
 * i                   193.251.247.254        100     85      0 9002 42916 i
 * i                   172.25.4.85            100     85      0 9002 42916 i
 *>i                   172.25.4.85            100     85      0 9002 42916 i
 * i  91.201.254.0/23  193.251.150.66         100     85      0 1299 3216 42916 i
 * i                   193.251.247.254        100     85      0 9002 42916 i
 * i                   172.25.4.85            100     85      0 9002 42916 i
 *>i                   172.25.4.85            100     85      0 9002 42916 i

В виде таблицы с разбивкой по маске по столбцам:

/22

/23

/24

91.193.236.0/22

91.193.236.0/23

91.193.236.0/24

91.193.237.0/24

91.193.238.0/23

91.193.238.0/24

91.193.239.0/24

91.201.252.0/22

91.201.252.0/23

91.201.252.0/24

91.201.253.0/24

91.201.254.0/23

91.201.254.0/24

91.201.255.0/24

91.195.204.0/23

91.195.204.0/24

91.195.205.0/24

Самый правы столбец — специфики, которые объявляются только в «закрытое сообщество» и через Hurricane Electric утекают «наружу».

И вот «картина маслом» — если мы посмотрим в Looking Glass ГРЧЦ (вот за это спасибо!) по любому из «спецификов», маршрут будет иметь AS-PATH через двух (!) зарубежных операторов — сначала China Telecom Global, AS 23764, затем Hurricane Electric, AS 6939, а потом уже наш тульский АйТи:

Скриншот из Looking Glass ГРЧЦ для префикса 91.201.252.0/24
Скриншот из Looking Glass ГРЧЦ для префикса 91.201.252.0/24

И для сравнения «правильный» маршрут для /23, в AS-PATH только отечественные AS:

Скриншот из Looking Glass ГРЧЦ для префикса 91.201.252.0/23
Скриншот из Looking Glass ГРЧЦ для префикса 91.201.252.0/23

В. А зачем писать статью, почему бы не написать приватно операторам?

О. У меня с ЦМУ ССОП договоренность: я не делаю их работу, а они не пишут статьи на Хабр. Важно показать проблему широкому кругу, а не умолчать о ней.

В. Так кто в этой ситуации виноват больше всего?

О. Виновного назначает суд, но я надеюсь, что МегаФон пофиксит проблему раньше. А вообще — мир вокруг нас меняется слишком быстро и вопреки нашему желанию. Старые парадигмы перестают работать, а новые не всем приемлемы. Возможно, следующие поколения будут воспринимать это проще.

© Habrahabr.ru