BIND: настройка сервера имен для субдомена с записями TXT
Итак, интересный вариант использования здесь. Я работаю над проектом LetsEncrypt, где собственный сервер имен будет отвечать (через CNAME) на запросы DNS для вызова ACME. Намерение здесь состоит в том, чтобы создать докер-контейнер, который включает в себя официальный Certbot, alpine+bind, и позволяет легко и быстро принимать вызовы DNS.
Моя неопытность с bind оказывается проблемой. Вот что у меня полностью работает на моих корневых DNS-серверах (на nsone):
- Домен
example.com
DNS-серверы ns1.nsone.com/ns2/ns3/ns4 (например) acme-challenge.example.com
имеет запись NSacme-dns.example.com
(это перенаправляет любые запросы поиска)_acme-challenge.example.com
CNAME указывает на_acme-challenge.acme-dns.example.com
(Поэтому, когда LetsEncrypt ищет запись TXT _acme-challenge для сертификата с подстановочными знаками, они получат ответ от DNS-сервера с собственным хостом по адресуacme-dns.example.com
Это все замечательно, и тест с dnslib Python показывает, что это работает. Тем не менее, моя проблема заключается в получении установки BIND.
Я использую https://github.com/resyst-it/docker-bind9, который является просто основным связыванием по альпийской структуре. Вот мои конфиги:
named.conf
options {
directory "/var/bind";
listen-on { 127.0.0.1; };
listen-on-v6 { none; };
allow-transfer {
none;
};
pid-file "/var/run/named/named.pid";
allow-recursion { none; };
recursion no;
};
zone "acme-challenge.example.com" IN {
type master;
file "/zonefile.txt";
};
zonefile.txt
; acme-challenge.example.com
$TTL 60
acme-challenge.example.com. IN SOA a.root-servers.net. [email protected]. (
2018040201 ; Serial
3H ; refresh after 3 hours
1H ; retry after 1 hour
1W ; expire after 1 week
60) ; minimum TTL of 1 day
; Name Server
IN NS acme-dns.example.com.
acme-challenge.example.com. IN A 1.1.1.1
_acme-challenge IN TXT testA
_acme-challenge IN TXT testB
; EOF
Мне действительно просто нужен набор конфигурационных файлов, которые будут возвращать запись, любую запись, то есть TXT и отвечать двумя ответами.
Кто-нибудь может помочь?