Инструменты пользователя

Инструменты сайта


service:bind

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
service:bind [20.02.2021 13:14] – [Windows DNS -> Slave Bind DNS] viacheslavservice:bind [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Bind ======
 +https://bind9.readthedocs.io/en/latest/reference.html\\
 +https://bind9.readthedocs.io/en/latest/configuration.html#sample-configurations\\
 +https://habr.com/ru/post/137587/\\
 +https://xakep.ru/2016/09/05/bind-9/\\
 +https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns-server-on-ubuntu-18-04-ru\\
 +https://www.opennet.ru/base/net/dns_setup.txt.html
  
 +===== Windows DNS -> Bind DNS =====
 +В виндах в свойствах зон разрешить трансфер на новый сервер.
 +
 +Подготовить список зон с WinDNS для конфигурации /etc/bind/named.conf.local
 +<code powershell>
 +$zones = (Get-DnsServerZone).where{$_.IsAutoCreated -eq $false -and $_.zonename -match "\."}
 +# только IP-адреса, в конце обязательно ";", и после последнего IP тоже
 +$masters = "xxx.xxx.xxx.xxx; yyy.yyy.yyy.yyy; zzz.zzz.zzz.zzz;"
 +
 +$bindConf = foreach ($zone in $zones) {
 +    "zone `"$($zone.ZoneName)`" IN {"
 +    "`ttype slave;"
 +    "`tfile `"$($zone.ZoneName)`";"
 +    "`tmasters {$masters};"
 +    "};"
 +    ""
 +}
 +
 +$bindConf |out-file "$(env:userprofile)\Documents\named.conf.local" -Encoding utf8 -Confirm:$false
 +</code>
 +
 +<code>
 +zone "domain.com" IN {
 + type slave;
 + file "domain.com";
 + masters {xxx.xxx.xxx.xxx; yyy.yyy.yyy.yyy; zzz.zzz.zzz.zzz;};
 +};
 +
 +zone "domain.ru" IN {
 + type slave;
 + file "domain.ru";
 + masters {xxx.xxx.xxx.xxx; yyy.yyy.yyy.yyy; zzz.zzz.zzz.zzz;};
 +};
 +</code>
 +
 +<code bash>
 +# перечитать конфиг, после этого зоны должны скопироваться с мастера
 +systemctl reload bind9
 +
 +# логи
 +tail -f /var/log/syslog |egrep "named\[.*\]:"
 +
 +# Файлы кэша зон (если не задавать путь в конфиге):
 +ls /var/cache/bind
 +
 +# Декодировать зону из кэша и вывести в текстовом формате в консоль
 +named-compilezone -f raw -F text -o - domain.ru /var/cache/bind/domain.ru
 +# в файл
 +named-compilezone -f raw -F text -o /etc/bind/zones/domain.ru domain.ru /var/cache/bind/domain.ru
 +https://linux.m2osw.com/reading-binary-zone-file-bind
 +</code>
 +===== Проверка возможности копирования зоны =====
 +<code bash>
 +dig @dns-master.domain.ru zonename.ru. axfr
 +</code>
 +https://info.nic.ru/st/8/out_272.shtml
 +
 +===== Slave -> Master =====
 +
 +https://kb.isc.org/docs/promoting-a-slave-server-to-master
 +
 +Конвертер кэшированных зон.
 +<code bash>
 +# Output directory.
 +dir=/etc/bind/zones
 +
 +# Create if not exist
 +if [ ! -d "$dir" ]; then mkdir "$dir"; fi
 +
 +# In this case, convert only reverse zones
 +for zone in $(cat /etc/bind/named.conf.local |egrep ^zone |cut -d '"' -f2 |egrep arpa$)
 +do
 +# Convert
 +named-compilezone -f raw -F text -o $dir/$zone $zone /var/cache/bind/$zone
 +# Remove TTL near every record and filter the SOA record out
 +records=$(cat $dir/$zone |grep -v SOA |sed 's/[0-9]\+ IN/IN/g')
 +# Keep original zones as .old
 +mv $dir/$zone $dir/$zone.old
 +# Make 
 +echo "\$TTL 86400
 +@       IN      SOA     ns.domain.ru admin.domain.ru      (
 +        2021030101      ;Serial
 +        7200            ;Refresh
 +        3600            ;Retry
 +        1209600         ;Expire
 +        3600            ;Negative response caching TTL
 +)
 +$records
 +" > $dir/$zone
 +done
 +
 +</code>

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki