Как стать автором
Обновить

“Блокировки которые никого не должны зацепить”.  Или как я восстанавливал работу Talkvio из-за блокировок Cloudflare

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.7K

Немного предыстории, прежде чем начать — о том, что у меня за проект такой — Talkvio. Уже два года я в свободное от основной работы время разрабатываю свой пет-проект — Talkvio, альтернативу Пикабу, где всё должно быть лампово и плюшево.

Проект уже довольно сильно развился: там есть нейросети для проверки орфографии, автотегов и помощи в формировании контента и заголовков. Есть Android-клиент, а iOS-версия находится в разработке. Реализована похожая система кармы, как на Хабре, есть даже минусы (привет администрации Пикабу), и многое-многое другое.

У нас на ресурсе пользователи больше фокусируются на авторском контенте — всевозможных интересных статьях и т.п., помимо юмористического. То есть казалось, что ничего не предвещает беды.

Забегая вперед, чтобы читателю было интересно, ресурс НЕ использовал Cloudflare.

Вот так ресурс выглядит, когда работает :)
Вот так ресурс выглядит, когда работает :)

И вот буквально пять дней назад я начал получать сообщения от пользователей примерно такого содержания:

Те кто смог добраться до самого Talkvio, писали в приватных сообщениях там.
Те кто смог добраться до самого Talkvio, писали в приватных сообщениях там.

Стоит немного уточнить технические детали: сайт способен подгружать определённый контент офлайн с использованием сервис-воркеров. Так что такая картина вполне закономерна. Явно что-то не так с коммуникацией с серверами — и это очень странно, учитывая, что, хоть ресурс и активно развивается, эта часть системы стабильна и никто в саму коммуникацию не вмешивался.

Узнаем дальше:

Как видите, я получаю противоречивую информацию: у кого-то с VPN всё работает, у кого-то — нет. Это делает ситуацию ещё более странной. Забегая вперёд, могу сказать, что по статистике в 50% случаев с VPN всё работало, в остальных — даже так нет.

Один человек даже обратился в поддержку МТС.

В любой непонятной ситуации обвиняем сервис, который ничего не делал ;).

Ладно, ситуация совершенно не ясна. Нужно было что-то выяснять. Я сам не проживаю в России, и у всех, кто находится за рубежом, проблем с доступом к серверам не было. Основные серверы расположены в Германии, на платформе DigitalOcean.

Уже закрадывались нехорошие мысли — ведь когда-то уже были массовые блокировки IP-адресов их сети, ещё во времена блокировки Telegram. Я начал проверять всё, что только можно: вдруг из-за какого-то поста попал под блокировку. Но всё оказалось чисто.

Ещё больше смущало то, что постепенно выяснялось: проблема касалась именно мобильного интернета.

В этот момент я понял, что пора серьёзно что-то выяснять — проблема не рассасывается. Поскольку все проблемы касались в основном мобильных телефонов, я набросал приложение на Android, которое должно было проверять конфигурацию сети и всевозможные параметры, включая сертификаты, порты, ответы серверов, скорость, контент и т.п.

Вот результат теста одного из пользователей с проблемой:

Результат меня неожиданно удивил. Все ответы от сервера, даже контент и DNS — всё было валидно. Но скорость подгрузки CSS/JS была запредельной: за 10 секунд мы не можем получить файл размером в 25 KB с gzip-сжатием? Бред. Однако ответа на тот момент у меня ещё не было: я понял, что это разновидность блокировки, но не обычная, а больше похожая на YouTube с его замедлением.

Следующим этапом стало самое важное — решение проблемы, когда стало понятно, как всё выглядит. С грустью я выяснил, что Amazon CloudFront в России недоступен. Я запустил текстовый кэширующий сервер внутри России — именно кэширующий, потому что, учитывая количество медиа-контента на данный момент, такое решение для меня оказалось приемлемее, чем искать какой-то непонятный внутренний CDN.

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

Не думал, что такие сложные решения придётся принимать именно сейчас — это больше подошло бы для тех времён, когда у сайта были бы тысячи и тысячи пользователей.

Что же дальше — вот буквально вчера появилась любопытная новость из блога Cloudflare, о том что доступ к веб содержимому ограничен до неприемлемых значений скорости.

И я понял — это оно: даты совпадают, симптомы совпадают, всё именно так, как описывал Cloudflare в своём блоге. Единственный нюанс — я не использовал Cloudflare на своём ресурсе.

Каждый день появлялись новые и новые пользователи, у которых отваливалась связь. То есть это была не одномоментная блокировка — видно, настройка продолжалась постепенно.

Каким образом всё попало под ограничитель скорости — без понятия, но факты налицо. Возможно, по каким-то критериям ресурс оказался похожим на серверы Cloudflare. Или это связано с тем, что серверы находятся на хостинге DigitalOcean. Без понятия — оставлю простор для творческих размышлений в комментариях.

Теги:
Хабы:
+7
Комментарии12

Публикации

Ближайшие события