Продолжаем делиться подкапотными изменениями.
Мы уже рассказывали, что перешли на новый сервис резолвинга доменов. Давайте разберемся, зачем это было нужно и какие проблемы решило.
Что такое DNS: краткая справка
Все сайты в сети размещены на физических устройствах — серверах, каждый из которых имеет свой уникальный IP-адрес. Чтобы попасть на любой из сайтов, нужно знать IP-адрес сервера. Разумеется, запоминать и вводить IP-адреса ужасно неудобно, поэтому была придумана система доменных имен, или DNS.
DNS-сервер позволяет браузеру найти запрошенный сайт по домену вместо IP и соединить с ним ваше устройство.
Соответственно, стабильная и быстрая работа DNS-серверов — залог быстрого отклика ваших сайтов.
Как было у нас?
Раньше в качестве DNS-сервера мы использовали Unbound как рекурсивный сервер для клиентов и как авторитетный для сервисных нужд виртуального хостинга.
(Рекурсивный DNS — это посредник, связывающий IP-адрес и конечного пользователя. А авторитетный DNS хранит доменные записи и сообщает рекурсивным DNS-серверам о местонахождении веб-сайтов.)
Однако система, построенная на Unbound, была сложной и имела множество неявных связей между сервисами и отделами, которые поддерживали ее работоспособность.
Вносить любые изменения в подсистему DNS было крайне сложным и несло в себе риск отказа.
Как стало теперь?
Мы внедрили PowerDNS вместо Unbound, полностью переработали систему, избавились от неявных связей и вот-вот реализуем простой, но надежный интерфейс для управления DNS.
Переход на PowerDNS также позволил решить давнюю проблему, которая влияла и на вас (пользователей), и на наши внутренние сервисы.
Проблема
При обновлении внутренних рекурсивных записей в них могли попадать как сервисные запросы, так и пользовательские.
Если один из пользователей виртуального хостинга оказался заражен и начинал атаковать систему большим количеством DNS-запросов, было сложно вычислить конкретного пользователя и атакуемую систему, чтобы локализовать и решить проблему.
Решение
Благодаря PowerDNS и полной переработке архитектуры DNS мы смогли:
- Разделить пользовательские и внутренние резолверы. Теперь все части DNS работают стабильно и не влияют друг на друга.
- Добавить в качестве прокси Dnsdist. Теперь мы можем собирать информацию о клиентских запросах и легко обнаруживать и устранять атаки, не позволяя им негативно влиять на пользователей или внутренние системы.
А еще благодаря PowerDNS мы добавим новые возможности для вас, например:
- DCV-записи для проверки владения доменом для подписи TLS-сертификатов,
- новые типы записей,
- комментарии.
Всё это, а также многое другое, будет ждать вас в новом редакторе DNS. Его выход мы анонсируем позднее.
Как всегда, ждем ваши мнения в комментариях, а предложения — в разделе «Идеи».