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

Как мы боролись за доступность сайта по всему миру, настраивали GeoDNS и при чём здесь Суринам

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров1.6K

Привет, Хабр! С вами команда Топвизора: DevOps Артём Артёмкин, агент поддержки Настя Резепина и директор по продукту Юля Федотова. В статье мы расскажем, как боролись за доступность сайта для всех пользователей, с какими препятствиями сталкивались и как их обходили.

Увертюра

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

Как водится, с первыми проблемами мы столкнулись весной 2022 года, когда часть наших пользователей потеряла доступ к нашему сайту topvisor.com. Наша компания со своей стороны никогда не ограничивала доступ по геолокации или способу оплаты, и мы не хотели перекладывать ответственность за доступность сайта на пользователей и советовать им обходить блокировки. Мы старались решать проблемы такого рода с минимальным участием юзеров, и нашей политикой всегда была полная доступность сайта для всех без каких-либо ограничений. Так что при каждом сообщении о недоступности сайта или проблем с открытием каких-то связанных с ним ресурсов (платёжных шлюзов, домена, который мы используем для создания коротких ссылок на отчёты в сервисе) мы проводили тщательный анализ и старались решить проблему.

Акт первый: как заблокировали запросы из Европы в Россию

Изначально мы использовали только один домен, Name-сервера которого располагались в России. Общение происходило примерно так:

Пользователь ищет topvisor.com, получает его IP и отправляет запрос непосредственно на наши серверы.

Однако в 2022-м году недоступность сайта стала массовой, потому что в некоторых локациях заблокировали доступ по сети к хостингу, где располагался наш сайт. Чтобы быстро восстановить работу, мы подняли балансировщик в Европе и заказали новый домен topvisor.net — специально для иностранных пользователей. Настроили DNS, чтобы topvisor.net резолвился в IP зарубежного балансировщика, а topvisor.com — в IP российского. Домен для иностранных пользователей лежал рядом с Сокращателем ссылок tpv.sr. Сокращатель чаще всего используется для генерации так называемых Гостевых ссылок — коротких ссылок на отчёты о проделанной в сервисе работе. Теперь общение с сайтом происходило так:

Благодаря этому наши сервисы снова стали доступны из любой точки мира. Все данные пользователя были доступны и на новом домене, и его логин и пароль от основного сайта подходили к зеркалу, то есть создавать аккаунт с нуля не требовалось. Для поддержки мы написали инструкцию, что делать, если у пользователя не открывается основной домен: шаблон про зеркала и порядок действий по определению причины недоступности сайта и выполнению трассировки.

Акт второй: как заблокировали запросы из России в Европу

Весной 2024 года блокировки пошли с другой стороны. Мы столкнулись с недоступностью topvisor.net и tpv.sr для российских пользователей.

По трассировкам пакетов нашли конкретный IP, после которого в трассе шла «тишина». Маршрут пакетов по сети всегда лежал через него, несмотря на разные узлы-отправители. Для обхода проблемы мы решили использовать GeoDNS. Это такой же DNS, только дающий разные IP в зависимости от геолокации узла, запрашивающего адрес. Теперь схема работала так:

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

Акт третий: как Суринам заблокировал нам вообще всё на 46 дней

Для перехода к новому DNS настроили балансировщики на прослушку topvisor.net и tpv.sr. По неизвестной причине перед переходом на GeoDNS нужно сначала удалить старую зону. Первая мысль: «Что может пойти не так? Мы точно успеем перейти на новый DNS за время жизни кэша старых записей на узлах пользователей, и проблем с доступом точно не возникнет». Для уверенности переход был запланирован на выходные, когда онлайн небольшой.

В назначенный день была удалена старая зона, создана новая и перенесены DNS-записи. Все заняло около 5 минут. GeoDNS topvisor.net заработал почти сразу, а tpv.sr — нет. Через несколько минут мы получили большое число тикетов об этой проблеме. Пользователям необходимо было без промедлений отчитываться перед клиентами, а Гостевые ссылки — это самый удобный и прозрачный способ для этого.

Мы подождали распространения DNS записей сутки, как рекомендуется, но они так и не обновились. Когда мы написали нашему регистратору домена tpv.sr, оказалось, что они не имеют прямой доступ к Name-серверам для .sr — это домен верхнего уровня для Суринама. Чтобы изменить записи на их серверах, наш регистратор связывался со своим международным партнером. Пока они это делали, резолв tpv.sr был недоступен.

Даунтайм tpv.sr составил 46 дней. За это время мы подняли новый домен tpvsr.com и дали пользователям его. Из этой ситуации мы извлекли урок, что лучше покупать домены .com или .ru, потому что к ним есть быстрый доступ. Однако по итогу домен tpv.sr всё равно вернули: уж слишком он красивый и подходит к нашему названию. 

Финал

Когда tpv.sr снова заработал, мы выдохнули с облегчением, получили кучу благодарностей от пользователей, а наш генеральный директор прислал нам в подарок 5 суринамских долларов. Знаете такие рамочки с надписью «В СЛУЧАЕ НЕОБХОДИМОСТИ РАЗБИТЬ СТЕКЛО» из двухтысячных, где были всякие мелочи типа денег и маленьких бутылочек с алкоголем?

Дальнейшие перспективы нашего развития в этом направлении — масштабирование балансировщиков и настройка DNS Failover — механизма перестройки A-записей DNS при недоступности текущих серверов. Он поможет нам с исправлением сетевых проблем без вмешательства инженеров. Мы уверены, что проблемы недоступности некоторых доменов будут продолжаться и в будущем, но мы готовы с ними справиться! А ещё — писать письма в Суринам в непредвиденных случаях.

Теги:
Хабы:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Публикации

Истории

Работа

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

AdIndex City Conference 2024
Дата26 июня
Время09:30
Место
Москва
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область