Свой авторитативный 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. Никаких чужих облаков в критическом пути.