Как технический сбой регистратора R01 чуть не убил бизнес по отслеживанию ошибок на сайтах

5 августа регистратор R01 сообщил о технических неполадках, в результате которых в домене r01.ru могли некорректно отображаться некоторые записи. Предприниматель Андрей Мима рассказал о том, как кратковременный сбой доменного регистратора чуть не положил конец его бизнесу.

Наши специалисты предприняли активные действия и оперативно устранили проблему. Однако в течение недели неверные записи еще могут оставаться в кэшах DNS-cерверов интернет-провайдеров.

— сообщение R01

Анонимный читатель Roem.ru предположил, что технические неполадки связаны со взломом. Представители сервиса настоятельно рекомендуют сменить пароли доступа.

Предприниматель Андрей Мима рассказал на своей странице во «ВКонтакте», что сбой у регистратора чуть было не положил конец его бизнесу. Стартап Мимы, Qbaka, занимается предоставлением сервиса по автоматическому мониторингу и анализу JavaScript-ошибок.

Андрей МимаСооснователь и CEO Qbaka

Никогда не знаешь, где возникнет проблема при построении отказоустойчивого сервиса. Нельзя доверять вообще никаким компонентам, никому (даже Google). А полная отказоустойчивость обходится слишком дорого. Вот вам кулстори.

Казалось бы, мы сделали все, чтобы был доступен reporting.js — маленький статический файлик, который загружается на все сайты пользователей Qbaka. Положили его в крутой CDN, сделали собственный домен для этого CDN, чтобы можно было переключиться на другой CDN в случае, если крутой CDN даст сбой.

Но нет, qbaka.net был зарегистрирован через регистратора R01, у которого мы взяли бесплатные DNS-сервера. Адрес CDN-а был абстрагирован через наш поддомен cdn.qbaka.net, а на DNS-сервере случился сбой. Не просто какой-то сбой, который бы сделал его недоступным, нет. DNS отлично работал, но на все запросы отвечал неправильным IP-адресом, т.е. попытка загрузить наш скрипт перенаправлялась на другой сервер. И этот ответ разъехался по DNS-серверам по всему миру и закешировался. А еще у меня из-за этой херни не работает почта, amima.ru использует тот же DNS-сервер.

Но это все ***** [ерунда]. Дело в том, что по этому IP-адресу при попытке запросить наш скрипт отдается не абы что, а вполне валидный чужой скрипт, который занимается, внимание, редиректом на домен, в котором пытались загрузить скрипт (т.е. на cdn.qbaka.net, IP которого ведет на чужой сервер, где уже открывается совсем левый сайт «парковки» домена).

Это были мемуары «как похоронить бизнес за один день». Аккуратно выбирайте DNS-сервера (кто бы мог подумать!).

В разговоре с ЦП Мима посетовал на то, что от такой ситуации сложно застраховаться — «только свой собственный сервер DNS поднимать, разве что».

Это история про то, как проектировать отказоустойчивые системы и про совпадения, которые могут убить бизнес. В данном случае совпадений довольно много. Но мы предприняли все меры, чтобы как можно меньше людей пострадало, и на нашей стороне тот факт, что тот сервер оказался под DDoS, и поэтому крайне редко отвечает (для 99% запросов недоступен, поэтому скрипт в большинстве случаев не отдается вообще и переадресации не случается). Но если бы отвечал всегда, это был бы конец всему, конечно. Но такого и не избежать. Свои DNS-сервера мало кто делает, только совсем крупные компании.

— Андрей Мима, Qbaka


Более подробно о технической стороне своей проблемы Мима рассказал в блоге на «Хабрахабре».

Дмитрий Саутченков, сооснователь Recommerce, рассказал ЦП, что столкнулся со схожей проблемой:

У нас домен reshops.ru размещен на DNS от r01, после сбоя у них, один из их сереверов отдавал IP не нашего сервера, а какого-то левого. На около 100 магазинах, где используется домен reshops.ru, показывался не магазин, а левый сайт, чуть ли не с предложением купить виагру.

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

R01 — один из крупнейших российских доменных регистраторов и первый аккредитованный регистратор домена .ru. Группа компаний Hosting Community, в которую входят R01 и Ru-Center, считается лидером на российском рынке регистрации доменных имен — в компаниях холдинга зарегистрировано более 20% всех доменов в зоне .ru. В декабре 2013 года неизвестные злоумышленники украли и выложили в сеть базу данных с личной информацией клиентов компании.

#Qbaka #R01 #сбой

Статьи по теме
Андрей Мима, основатель Qbaka: Зачем стартапам нужны акселераторы
{ "author_name": "Konstantin Panphilov", "author_type": "editor", "tags": ["\u0441\u0431\u043e\u0439","r01","qbaka"], "comments": 7, "likes": 14, "favorites": 0, "is_advertisement": false, "subsite_label": "flood", "id": 4617, "is_wide": true }
00
дни
00
часы
00
мин
00
сек
(function(){ var banner = document.querySelector('.teaserSberbank'); var isAdsDisabled = document.querySelector('noad'); if (!isAdsDisabled){ var countdownTimer = null; var timerItem = document.querySelectorAll('[data-sber-timer]'); var seconds = parseInt('15388' + '59599') - now(); function now(){ return Math.round(new Date().getTime()/1000.0); } function timer() { var days = Math.floor(seconds / 24 / 60 / 60); var hoursLeft = Math.floor((seconds) - (days * 86400)); var hours = Math.floor(hoursLeft / 3600); var minutesLeft = Math.floor((hoursLeft) - (hours * 3600)); var minutes = Math.floor(minutesLeft / 60); var remainingSeconds = seconds % 60; if (days < 10) days = '0' + days; if (hours < 10) hours = '0' + hours; if (minutes < 10) minutes = '0' + minutes; if (remainingSeconds < 10) remainingSeconds = '0' + remainingSeconds; if (seconds <= 0) { clearInterval(countdownTimer); } else { timerItem[0].textContent = days; timerItem[1].textContent = hours; timerItem[2].textContent = minutes; timerItem[3].textContent = remainingSeconds; seconds -= 1; } } timer(); countdownTimer = setInterval(timer, 1000); } else { banner.style.display = 'none'; } })();
{ "id": 4617, "author_id": 3, "diff_limit": 1000, "urls": {"diff":"\/comments\/4617\/get","add":"\/comments\/4617\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/4617"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791 }

7 комментариев 7 комм.

Популярные

По порядку

Написать комментарий...
3

Свои DNS-сервера мало кто делает, только совсем крупные компании.

Что за ерунда. Вообще не понимаю, зачем пользоваться серверами регистраторов. pdnsd или bind можно разместить в DO и в куче разных мест за копейки и забыть про проблемы с DNS навсегда.

Ответить
0

Для стабильности нужно поднимать минимум на двух машинах в разных регионах. DO часто недоступен в каком-нибудь регионе. В итоге, проще отдать деньги за какой-нибудь DNS-хостинг.

Ответить
3

Мой совет:

1. Используйте DNS-Хостинги где вы можете сами регулировать время кеширования для записей ресурсов

2. Используйте системы мониторинга типа nagios и ему подобные для отслеживания соответствия критических записей ресурсов эталонным значениям

3. Используйте DNSSEC

Ответить
0

Сегодня, на одном из наших сайтов

Ответить

Комментарий удален

0

Давно уехал на Route53 от Amazon с TTL на записи 300, да это стоит $10-$20/mo, зато можно спать спокойно.

Ответить
0

+1 Держу все домены на Route53. TTL 300.

Ответить

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Голосовой помощник выкупил
компанию-создателя
Подписаться на push-уведомления