Есть несколько ярлыков, которые вы можете использовать, чтобы сделать вашу жизнь проще:
Если вы используете Bind или подобное программное обеспечение, которое использует файлы для хранения данных зоны: укажите ваши зоны на один и тот же файл, например:
zone "example.net" {
type master;
file "/etc/bind/zone/default.zone";
};
zone "example.org" {
type master;
file "/etc/bind/zone/default.zone";
};
Поскольку вы можете использовать определенные сокращения DNS, вы можете создать универсальный файл зоны:
$TTL 1h ; default expiration time of all resource records without their own TTL value
@ IN SOA ns1.example.com. username.example.com. (
20140218131405 ; Serial number YYYYMMDDHHMMSS
28800 ; Refresh 8 hours
7200 ; Retry 2 hours
604800 ; Expire 7 days
86400 ; Minimum TTL 1 day )
@ IN NS ns1.example.com. ; ns1.example.com is a primary nameserver
@ IN NS ns2.example.com. ; ns2.example.com is a backup nameserver
@ IN MX 10 mail.example.com. ; mail.example.com is the mailserver
@ IN MX 20 mail2.example.com. ; the secondary mailserver
@ IN A 192.0.2.1 ; IPv4 address for the bare domain
IN AAAA 2001:db8:10::1 ; IPv6 address for the bare domain
www IN A 192.0.2.1 ; www.domain
IN AAAA 2001:db8:10::1 ; IPv6 address for www.domain - note by starting the line with a blank it becomes the continuation of the previous record and this IPv6 record applies to www
wwwtest IN CNAME www ; wwwtest is an alias for www
Это использует тот факт, что имена хостов в файлах зон, которые не заканчиваются точкой ., всегда расширяются с помощью $ORIGIN
которого в свою очередь неявно устанавливается имя зоны. И @это сокращение от $ ORIGIN.
Вместо того чтобы поддерживать отдельные файлы зон вручную, включите метод программного взаимодействия с серверами имен.
Я использовал PowerDNS, который позволяет использовать RDMS в качестве серверной части, которая очень хорошо вписывается в стек LAMP, который мы использовали в то время. Облачные сервисы, такие как Amazon Route 53, также предоставляют веб-API.
Но даже почтенный Bind также поддерживает динамическое обновление, которое является методом добавления, замены или удаления записей на главном сервере, отправляя ему специальную форму DNS-сообщений. Формат и значение этих сообщений определены в RFC 2136 .
Динамическое обновление включается включением предложения allow-update
или update-policy
в оператор зоны. Для получения дополнительной информации обратитесь к Справочному руководству администратора Bind .
rndc addzone
опция, но она все еще немного уродлива, поскольку в итоге она генерирует файл конфигурации с хешированным именем в рабочем каталоге для каждая добавленная зона.