В рамках моей работы мне часто приходится создавать DNS-зоны и добавлять или изменять в них записи.
Делать это вручную — довольно кропотливый и сложный процесс: приходится держать синтаксис в голове и не допускать ошибок в мелочах.
В таких случаях лучше всего заставить компьютер выполнить всю работу.
IAdmin — это система, предназначенная для автоматического формирования конфигов Bind на хостинг-сервере и состоящая из базы данных iadmin в базе данных MySQL и скрипта, генерирующего файлы конфигурации на основе данных из базы данных.
Для настройки Bind используются таблицы dns_domains, dns_records, dns_subgmail. Основной скрипт, написанный на Perl, считывает данные из базы данных iadmin и создает файлы конфигурации.
Файлы зон создаются в каталоге /var/cache/bind/.
Там же хранятся и другие файлы зон, не обслуживаемые системой iadmin. Эта же система создает конфиг для Secondary-DNS, который туда и переносится.
Пока скрипт не запустится, все изменения в базе данных НЕ материализуются.
Данные
таблица dns_domains
Таблица состоит из следующих полей и является основной таблицей для настройки DNS-сервера:- идентификатор — порядковый номер записи
- доменное имя — имя домена, зону которого будет поддерживать Bind
- www — Нужен ли поддомен www (1 — обязательно)
- FTP — Требуется ли субдомен ftp (1 — обязательно)
- почта — Требуются ли в зоне записи MX (1 — обязательно)
- типмай l — определяет шаблон для генерации MX-записей («наш» — будет обслуживаться Postfix, «gmail» — на домене активированы Google Apps).
Если mail = 0, это поле игнорируется.
В будущем возможны и другие изменения
- вторичноедля - Для каких DNS серверов (IP) наш сервер будет вторичным (NULL - мастер)
- размещенный_он — Запись A: IP-адрес, на котором размещен сайт с этим доменным именем.
- давать возможность — Активна ли зона (1 – активна).
В противном случае эта зона не создается.
Стоит отметить, что если зоне ответить Enable=0, это не удалит ее из службы привязки, но любые настройки через систему iadmin не будут иметь никакого эффекта.
- сериал — Серийные зоны.
После любых изменений в этой таблице, либо в dns_records, dns_subgmail значение необходимо увеличить.
Структура год_месяц_день_edit — так удобно видеть, когда произошла смена зон.
- владелец — писать NS сервера на английском (1) или стандартном (0)
идентификатор | доменное имя | www | FTP | почта | печатать почту | вторичноедля | размещенный_он | давать возможность | сериал | владелец |
215 | iadmin.vip | 1 | 0 | 1 | Gmail | НУЛЕВОЙ | 123.123.4.56 | 1 | 2010082001 | 1 |
$TTL 86400 iadmin.vip. IN SOA ns0.english.com. ns1.english.com. ( 2010082001 ; serial 10800 ; refresh 3600 ; retry 604800 ; expire 86400 ) ; minimum IN NS ns0.english.com. IN NS ns1.english.com. IN A 123.123.4.56 ; IN MX 1 relay.iadmin.vip. ;relay IN A 77.88.99.11 IN MX 1 ASPMX.L.GOOGLE.COM. IN MX 5 ALT1.ASPMX.L.GOOGLE.COM. IN MX 5 ALT2.ASPMX.L.GOOGLE.COM. IN MX 10 ASPMX2.GOOGLEMAIL.COM. IN MX 10 ASPMX3.GOOGLEMAIL.COM. IN MX 10 ASPMX4.GOOGLEMAIL.COM. IN MX 10 ASPMX5.GOOGLEMAIL.COM. IN TXT "v=spf1 include:aspmx.googlemail.com ~all" mail IN CNAME ghs.google.com. calendar IN CNAME ghs.google.com. start IN CNAME ghs.google.com. docs IN CNAME ghs.google.com. _xmpp-server._tcp.iadmin.vip. IN SRV 5 0 5269 xmpp-server.l.google.com. _xmpp-server._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server1.l.google.com. _xmpp-server._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server2.l.google.com. _xmpp-server._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server3.l.google.com. _xmpp-server._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server4.l.google.com. _jabber._tcp.iadmin.vip. IN SRV 5 0 5269 xmpp-server.l.google.com. _jabber._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server1.l.google.com. _jabber._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server2.l.google.com. _jabber._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server3.l.google.com. _jabber._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server4.l.google.com. www IN CNAME iadmin.vip. ww IN CNAME iadmin.vip. wwww IN CNAME iadmin.vip.
таблица dns_records
Таблица используется для добавления произвольных записей в зону и состоит из следующих полей:- доменное имя — Имя доменной зоны, в которую добавляется запись
- перепечатать — какой тип записи добавляется (A, CNAME, MX, NS и т.д.)
- данные — Данные, которые добавляются
- включено — Принимает значение 1 — эта запись будет добавлена и 0 — запись деактивирована.
- идентификатор — порядковый номер записи (автоматически)
dc.ukrtel.net, нужно написать следующее линия:
доменное имя | перепечатать | данные | включено | идентификатор |
.
iadmin.vip |
МХ | 10 реле.
dc.ukrtel.net. |
1 | 680 |
таблица dns_subgmail
Таблица служит для упрощения написания зон, имеющих несколько поддоменов, с помощью Google Apps и состоит из следующих полей:- идентификатор — порядковый номер записи (автоматически)
- доменное имя — Имя доменной зоны, в которой используется субдомен субдомен
- субдомен — Субдомен, для которого также требуются Google Apps.
- давать возможность — Принимает значение 1 — этот поддомен будет добавлен и 0 — запись деактивирована.
идентификатор | доменное имя | субдомен | давать возможность |
56 | iadmin.vip | синхронизировать | 1 |
$TTL 86400 iadmin.vip. IN SOA ns0.english.com. ns1.english.com. ( 2010082001 ; serial 10800 ; refresh 3600 ; retry 604800 ; expire 86400 ) ; minimum IN NS ns0.english.com. IN NS ns1.english.com. IN A 77.88.99.11 ; IN MX 1 relay.iadmin.vip. ;relay IN A 123.123.4.56 IN MX 1 ASPMX.L.GOOGLE.COM. IN MX 5 ALT1.ASPMX.L.GOOGLE.COM. IN MX 5 ALT2.ASPMX.L.GOOGLE.COM. IN MX 10 ASPMX2.GOOGLEMAIL.COM. IN MX 10 ASPMX3.GOOGLEMAIL.COM. IN MX 10 ASPMX4.GOOGLEMAIL.COM. IN MX 10 ASPMX5.GOOGLEMAIL.COM. IN TXT "v=spf1 include:aspmx.googlemail.com ~all" mail IN CNAME ghs.google.com. calendar IN CNAME ghs.google.com. start IN CNAME ghs.google.com. docs IN CNAME ghs.google.com. _xmpp-server._tcp.iadmin.vip. IN SRV 5 0 5269 xmpp-server.l.google.com. _xmpp-server._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server1.l.google.com. _xmpp-server._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server2.l.google.com. _xmpp-server._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server3.l.google.com. _xmpp-server._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server4.l.google.com. _jabber._tcp.iadmin.vip. IN SRV 5 0 5269 xmpp-server.l.google.com. _jabber._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server1.l.google.com. _jabber._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server2.l.google.com. _jabber._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server3.l.google.com. _jabber._tcp.iadmin.vip. IN SRV 20 0 5269 xmpp-server4.l.google.com. www IN CNAME iadmin.vip. ww IN CNAME iadmin.vip. wwww IN CNAME iadmin.vip. sync IN MX 1 ASPMX.L.GOOGLE.COM. sync IN MX 5 ALT1.ASPMX.L.GOOGLE.COM. sync IN MX 5 ALT2.ASPMX.L.GOOGLE.COM. sync IN MX 10 ASPMX2.GOOGLEMAIL.COM. sync IN MX 10 ASPMX3.GOOGLEMAIL.COM. sync IN MX 10 ASPMX4.GOOGLEMAIL.COM. sync IN MX 10 ASPMX5.GOOGLEMAIL.COM. sync IN TXT "v=spf1 include:aspmx.googlemail.com ~all" mail.sync IN CNAME ghs.google.com. calendar.sync IN CNAME ghs.google.com. start.sync IN CNAME ghs.google.com. docs.sync IN CNAME ghs.google.com. _xmpp-server._tcp.sync.iadmin.vip. IN SRV 5 0 5269 xmpp-server.l.google.com. _xmpp-server._tcp.sync.iadmin.vip. IN SRV 20 0 5269 xmpp-server1.l.google.com. _xmpp-server._tcp.sync.iadmin.vip. IN SRV 20 0 5269 xmpp-server2.l.google.com. _xmpp-server._tcp.sync.iadmin.vip. IN SRV 20 0 5269 xmpp-server3.l.google.com. _xmpp-server._tcp.sync.iadmin.vip. IN SRV 20 0 5269 xmpp-server4.l.google.com. _jabber._tcp.sync.iadmin.vip. IN SRV 5 0 5269 xmpp-server.l.google.com. _jabber._tcp.sync.iadmin.vip. IN SRV 20 0 5269 xmpp-server1.l.google.com. _jabber._tcp.sync.iadmin.vip. IN SRV 20 0 5269 xmpp-server2.l.google.com. _jabber._tcp.sync.iadmin.vip. IN SRV 20 0 5269 xmpp-server3.l.google.com. _jabber._tcp.sync.iadmin.vip. IN SRV 20 0 5269 xmpp-server4.l.google.com.Также надо помнить, что после этого нужно поменять серийник в dns_domains доменной зоны.
Скрипт
Скрипт на основе данных, хранящихся в iadmin, записывает файлы конфигурации для бинда (На данный момент он находится на Perl, в будущем скорее всего будет переписан на python).Исходные тексты размещены на github Теги: #Администрирование сервера #dns #perl #bind #генератор файлов конфигурации
-
Автоматический Контроль И Регулирование
19 Oct, 24 -
Креативный Спам
19 Oct, 24 -
Эксперты-Математики Разделили Счет
19 Oct, 24 -
Бизнес И Ux: Экспресс-Журналы Семинаров
19 Oct, 24 -
Робот Для Перевозки Багажа На Ces2015
19 Oct, 24 -
Крошечное Государство
19 Oct, 24 -
Портирование Большого Проекта На .Net Core
19 Oct, 24