RaineDev
2026-06-21 · инфраструктура · ~6 мин

Свой авторитативный DNS: уход с Cloudflare на Technitium

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

Что было и что стало

Я поднял Technitium DNS Server на двух VPS в разных городах и сделал их полностью авторитативными для своих зон. Один сервер — primary, второй — secondary, который забирает зоны по AXFR с подписью TSIG. Это закрывает требование «два независимых NS на двух адресах», которое предъявляют к зонам.

Два авторитативных сервера, синхронизация по NOTIFY+AXFR, совпадающие SOA serial — и я больше ни от кого не завишу в вопросе, резолвятся мои домены или нет.

Рекурсия только там, где надо

Авторитативный сервер обязан отвечать всем — порт 53 открыт в мир. Но рекурсию (когда сервер сам ходит за ответами по всему интернету) нельзя открывать всем подряд, иначе получишь open-resolver и тебя используют для атак с усилением. На primary рекурсия включена с фильтрацией, на secondary — строго Deny: он только отдаёт свои зоны.

DoH/DoT и блок-листы

Technitium умеет DNS-over-HTTPS, DNS-over-TLS и DNS-over-QUIC из коробки. Я выписал на него обычный Let's Encrypt сертификат и раздаю шифрованный DNS — в том числе друзьям, которым достаточно прописать один URL вида https://ns01.example/dns-query.

Поверх рекурсии работает блок-лист рекламы и трекеров. Important-нюанс: при переезде с другого резолвера часть доменов, которые у меня были в исключениях, начала ловиться общим блок-листом. Лечится Allowed-списком — он перекрывает блокировки. Я просто перенёс свои старые исключения туда.

Сертификаты и автоматизация

Реверс-прокси (Traefik) выписывает wildcard-сертификаты через DNS-01, и теперь он создаёт _acme-challenge TXT-записи прямо в моём Technitium по API — без привязки к стороннему провайдеру. Тот же API я использую в своих скриптах, чтобы заводить и убирать A-записи сервисов.

Итог

Получилась полностью автономная DNS-инфраструктура: авторитативные зоны на своих серверах, шифрованный резолвер с фильтрацией, автоматические сертификаты и управление записями по API. Никаких чужих облаков в критическом пути.

← ко всем заметкам