Bind Debian

Установим DNS сервер bind9

apt-get install bind9

Откроем основной конфигурационный файл.

nano /etc/bind/named.conf.options

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 порта.

Проверяем:

netstat -lnp | grep :53

Настройка DNS-сервера для работы в режиме авторитетного сервера.

Далее необходимо указать в основном конфигурационном файле сервера /etc/bind/named.conf.local имена файлов, в которых мы далее опишем зоны для прямого и обратного преобразований.

nano /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.

nano /etc/network/interfaces
dns-nameservers 127.0.0.1
  • Перенаправим доменное имя, допустим time.windows.com на локальные адресс 192.168.1.12

 Допишем блок в named.conf.local

nano /etc/bind/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;

};

Создадим конфигурационный файл

nano /var/cache/bind/time.windows.com.db

$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 сервером.

Перечитать конфиг зоны:

rndc reload my.local

Послать уведомление об изменение зоны:

rndc notify my.local

Остановить обновление файла зон (файл *.jnl автоматически удаляется, если он не удалился удалить его руками, это решает проблемы с непонятными ошибками в зоне)

rndc freeze my.local

Форсировать обновления зоны:

rndc thaw my.local