DNS

DNSControl

DNSControl — это продуманная платформа для плавного управления конфигурацией DNS на любом количестве DNS-хостов, как в облаке, так и в Вашей собственной инфраструктуре. Он управляет всеми доменами сети проекта Stack Overflow и может сделать то же самое для вас!

А теперь немного подробнее. С помощью конфигурационных файлов json и javascript Вы можете описать DNS записи для Ваших доменов. Затем запустить команду dnscontrol push и изменения будут отправлены указанному DNS провайдеру. Предварительно, конечно, придется позаботиться о том, чтобы получить API ключи для обращения этому провайдеру.

Вот как выглядит конфигурационный файл dnsconfig.js:

// Providers:

var REG_NONE = NewRegistrar('none', 'NONE');    // No registrar.
var DNS_BIND = NewDnsProvider('bind', 'BIND');  // ISC BIND.

// Domains:
var domain = 'example.com';
D(domain, REG_NONE, DnsProvider(DNS_BIND),
    A('@', '1.2.3.4'),
    A('api', '1.2.3.5'),
    CNAME('mobile', domain)
);

Здесь A запись для домена верхнего уровня example.com мы направили на IP 1.2.3.4. A запись для api.example.com — на 1.2.3.5. И создали CNAME запись для mobile.example.com, где указали наш домен верхнего уровня. Все эти изменения при запуске будут отправлены DNS провайдеру BIND.

Чтобы не отправить ошибочные изменения в настрйоки зон DNS есть команда dnscontrol preview. Ее вывод покажет какие изменения произойдут при запуске dnscontrol push.

Но DNSControl умеет не только это. С помощью него можно получить Let's Encrypt SSL сертификаты. В том числе wildcard. Для этого имеется команда dnscontrol get-certs. Конечно она потребует для работы некоторый json конфигурационный файл. Но его очень просто сделать.

DNSControl работает с определенным DNS провайдерами, список которых есть в документации. Также можно написать свой собственный драйвер на языке GO для DNS провайдера, который не поддерживается официально.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *