1 мин на чтение

До сегодня я использовал CoreDNS как основной DNS сервер в домашней инфре. До сегодня, потому что его Special Behaviour в etcd плагине совсем не то, что ожидаешь увидеть по итогу. Я понимаю, почему они пошли по такому всратому пути, но от этого мне как-то не легче. Зацените сами: CoreDNS+etcd vs DNS здорового человека

Да зачем вообще что-то?

Ну…смотрите сами:

  • у меня приличное количество (виртуальных и не очень) хостов дома, это какой-нить Jellyfin, qBittorrent, Unifi controller, HA, Proxmox, etc
  • всем им, как минимум, нужны:
    • понятные доменные имена
    • TLS сертификаты
  • хранятся эти все записи в [ExternalName]сервисах не менее домашнего k8s

Очевидно, что самое простое это завести какую-нить зону в Cloudflare (e.g. buglloc.cc.), заиспользовать его в качестве провайдера в ExternalDNS и дело с концом. И это действительно так! Но только до тех пор пока ты не проводишь тракторные ученьки. Я их провожу, а значит без локального DNS не обойтись. В минимальном виде это просто резолвер с дисковым кешом, в моем случае это локальный авторитетник с кешом.

Как было-то?

До сегодня это был ExternalDNS + AdGuard Home + CoreDNS. ExternalDNS в качестве control plane, AdGuard Home для красивых графичков + логов + фильтра, ну и CoreDNS как авторитетник с плюхами. Вместо этого, можно было бы взять ченить в духе Pi-hole, но это жесть как скучно. Вместо CoreDNS можно было бы взять, например, PowerDNS но я пока не познал его кунгфу. Или BIND, но я его принципиально не использую.

А стало?

А с сегодняшнего дня это ExternalDNS + DNSGateway + AdGuard Home. В этой схеме DNSGateway выступает как оч простая прокся:

  • с одной стороны реализующая RFC 2136 сервер с AXFR, в которую ExternalDNS пуляет обновления
  • с другой использующая custom filtering rules из AdGuard Home в качестве бэкенда

Получившиеся локальные правила в AdGuard Home: Профит

BTW, DNSGateway я использую и для DNS-01 челленджей поверх Cloudflare , но это другая история

Разделы:

Дата изменения: