Установим DNS сервер bind9
apt-get install bind9
Откроем основной конфигурационный файл.
options {
directory "/var/cache/bind";
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { none; };
listen-on { 127.0.0.1; 192.168.1.119; };
allow-query { localhost; 192.168.2.0/24; 192.168.1.0/24; 10.0.0.0/24; };
allow-recursion { localhost; 192.168.1.0/24; };
version "unknown";
forwarders {
8.8.8.8;
8.8.4.4;
213.179.249.137;
213.179.249.138;
};
};
logging {
channel systemlog {
file "/var/log/named/named.log" versions 3 size 5m;
severity info;
print-time yes;
};
channel audit_log {
file "/var/log/named/security.log" versions 3 size 5m;
severity info;
print-time yes;
};
channel xfer_log {
file "/var/log/named/xfer.log" versions 3 size 5m;
severity info;
print-time yes;
};
category default { systemlog; };
category security { audit_log; systemlog; };
category config { systemlog; };
category xfer-in { xfer_log; };
category xfer-out { xfer_log; };
category notify { audit_log; };
category update { audit_log; };
category lame-servers { audit_log; };
};
Директива directory указывает на расположение в дереве каталогов временных файлов сервера.
Директива listen-on указывает на каких интерфейсах вести прослушивание 53 порта.
Проверяем:
Настройка DNS-сервера для работы в режиме авторитетного сервера.
Далее необходимо указать в основном конфигурационном файле сервера /etc/bind/named.conf.local имена файлов, в которых мы далее опишем зоны для прямого и обратного преобразований.
zone "my.local" {
type master;
file "/var/cache/bind/db.my.local";
allow-transfer { 192.168.1.12;};
allow-update { 192.168.1.12;};
notify yes;
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/var/cache/bind/db.1";
allow-transfer { 192.168.1.12;};
allow-update { 192.168.1.12;};
notify yes;
};
Директива notify yes; Говорим зоне MASTER сервера предупреждать SLAVE сервер о том что зона обновилась.
Директива forwarders - на какие серверы пересылать запрос, если наш сервер сам не в состоянии определить имя или IP-адрес запроса клиентов.
nano /var/cache/bind/db.my.local
$ORIGIN .
$TTL 3600 ; 1 hour
my.local IN SOA ns.my.local. root.atlantgroup.com.ua.my.local. (
20121124 ; serial
600 ; refresh (10 minutes)
600 ; retry (10 minutes)
12096000 ; expire (20 weeks)
604800 ; minimum (1 week)
)
NS ns.my.local.
MX 10 mail.my.local.
$ORIGIN my.local.
NS A 192.168.1.119
1c-donetsk A 192.168.1.2
$TTL 1200 ; 20 minutes
1c-server CNAME 1c-donetsk
nano /var/cache/bind/db.1
$ORIGIN .
$TTL 3600 ; 1 hour
1.168.192.in-addr.arpa IN SOA ns.my.local. root.atlantgroup.com.ua.1.168.192.in-addr.arpa. (
20090617 ; serial
108000 ; refresh (1 day 6 hours)
1800 ; retry (30 minutes)
12096000 ; expire (20 weeks)
604800 ; minimum (1 week)
)
NS ns.my.local.
$ORIGIN 1.168.192.in-addr.arpa.
12 PTR backup.my.local.
- Перенаправим доменное имя, допустим time.windows.com на локальные адресс 192.168.1.12
Допишем блок в named.conf.local
zone "time.windows.com" in {
type master;
file "/var/cache/bind/time.windows.com.db";
allow-transfer { 192.168.1.12;};
allow-update { 192.168.1.12;};
notify yes;
};
Создадим конфигурационный файл
$ORIGIN .
$TTL 172800 ; 2 days
time.windows.com IN SOA ns.atlant.local. root.ns.atlant.local. (
2009068801 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns.atlant.local.
A 192.168.21.12
Настройка DNS-сервера для работы в режиме ведомого сервера.
nano /etc/bind/named.conf.local
zone "my.local" {
type slave;
file "/var/cache/bind/db.slave-atlant.local";
allow-transfer { none; };
masters { 192.168.21.119; };
allow-notify { 192.168.21.119; };
};
zone "1.168.192.in-addr.arpa" {
type slave;
file "/var/cache/bind/db.slave-21";
allow-transfer { none; };
masters { 192.168.1.119; };
allow-notify { 192.168.1.119; };
};
zone "time.windows.com" {
type slave;
file "/var/cache/bind/db.slave-time.windows.com";
allow-transfer { none; };
masters { 192.168.1.119; };
allow-notify { 192.168.1.119; };
};
Команды управления DNS сервером.
Перечитать конфиг зоны:
Послать уведомление об изменение зоны:
Остановить обновление файла зон (файл *.jnl автоматически удаляется, если он не удалился удалить его руками, это решает проблемы с непонятными ошибками в зоне)
Форсировать обновления зоны: