Table of Contents

Сервис DNS

Утилиты тестирования DNS

тип_запроса: A, PTR, NS, MX, AXFR

nslookup

$ nslookup 
>ya.ru

$ nslookup mx.bmstu.ru

$ nslookup 195.19.32.1

$ nslookup -q=NS bmstu.ru

val@noc:~$ nslookup -q=AXFR bmstu.ru 195.19.32.2

$ nslookup -q=MX bmstu.ru 195.19.32.2

$ nslookup -q=SRV _xmpp-client._tcp.bmstu.ru

$ nslookup -q=SRV _kerberos._udp.bmstu.ru

$ nslookup -q=SRV _sip._udp.bmstu.ru

host имя [сервер]

$ host mx.bmstu.ru

$ host 195.19.32.1

$ host -t NS bmstu.ru

$ host -v -t NS .

$ host -v -t NS ru. 192.33.4.12

$ host -v -t NS bmstu.ru. 194.190.124.17

$ host -t MX bmstu.ru 195.19.32.2

$ host -t AXFR bmstu.ru 195.19.32.2

dig

$ dig mx.bmstu.ru

$ dig -x 195.19.32.1

$ dig NS bmstu.ru

$ dig MX bmstu.ru @195.19.32.2

$ dig AXFR bmstu.ru @195.19.32.2

Настройка клиентов DNS

gate# cat /etc/resolv.conf
domain  corpX.un
nameserver      192.168.X.10
server# cat /etc/resolv.conf
domain  corpX.un
nameserver      127.0.0.1

Настройка сервера DNS

Настройка рекурсивного, кэширующего DNS сервера

Debian/Ubuntu

root@server:~# apt install bind9

CentOS

# yum install bind bind-utils -y

# systemctl enable named

FreeBSD

[server:~] # pkg install bind99

[server:~] # cat /usr/local/etc/namedb/named.conf 
options {
        directory       "/usr/local/etc/namedb/working";
        pid-file        "/var/run/named/pid";
        allow-recursion { any; };
};

zone "." { 
  type hint; 
  file "/usr/local/etc/namedb/named.root"; 
};
[server:~] # named-checkconf

[server:~] # service named rcvar

[server:~] # cat /etc/rc.conf
...
named_enable="YES"
...
[server:~] # service named start

Настройка сервера перенаправляющего запросы на DNS cервер провайдера

Debian/Ubuntu

root@server:~# cat /etc/bind/named.conf.options
...
        forwarders {
                172.16.1.254;
        };
...
//        dnssec-validation auto;
...
};
root@server:~# named-checkconf

root@server:~# service bind9 restart

FreeBSD

server# cat named.conf 
options {
...
        forwarders {
                172.16.1.254;
        };
...
};
...
[server:~] # named-checkconf

[server:~] # service named restart

Настройка мастер сервера зоны corpX.un

Debian/Ubuntu

server# cat /etc/bind/corpX.un
$TTL    3h
corpX.un. SOA ns root.server 1 1d 12h 1w 3h
         NS      ns
;         A       192.168.X.10
;         MX   1  server
;         MX   2  gate
ns       A       192.168.X.10
server   A       192.168.X.10
gate     A       192.168.X.1

;test 1h IN A 192.168.X.10

;nfs      CNAME   server
;samba    CNAME   server
;ftp      CNAME   server
;www      CNAME   server
;user1    CNAME   server
;mail     CNAME   server

;ntp	  CNAME   gate

;proxy    A       172.16.1.X

;$GENERATE 1-100 node$ A 192.168.X.$
;$GENERATE 1-9 node$ A 192.168.X.20$
;$GENERATE 10-54 node$ A 192.168.X.2$
;$GENERATE 1-9 kube$ A 192.168.X.22$

;_sip._udp           SRV     0 0 5060 server

;_xmpp-client._tcp   SRV     0 0 5222 server

;_kerberos._udp      SRV     01 00 88 server
;_kerberos._tcp      SRV     01 00 88 server
;_kerberos           TXT     CORPX.UN
server# named-checkzone corpX.un /etc/bind/corpX.un

Debian/Ubuntu

root@server:~# cat /etc/bind/named.conf.local
...
zone "corpX.un" {
        type master;
        file "/etc/bind/corpX.un";
};
root@server:~# named-checkconf -z

root@server:~# rndc reload

Проверки Debian/Ubuntu

server# nslookup -q=A server.corpX.un

Настройка вторичного сервера зоны dns

Настройка списка авторитетных серверов на мастер сервере

server# cat /etc/bind/corpX.un
$TTL    3h
corpX.un. SOA ns root.server 1 1d 12h 1w 3h

        NS      ns
        NS      ns.isp.un.

...
server# named-checkzone corpX.un /etc/bind/corpX.un

server# rndc reload

Настройка вторичного сервера

server# nslookup -q=AXFR compX.un ns.isp.un
root@server:~# cat /etc/bind/named.conf.local
...
zone "compX.un" {
        type slave;
        file "/var/cache/bind/compX.un";
        masters {
                172.16.1.254;
        };
};
root@server:~# named-checkconf -z

root@server:~# rndc reload

root@server:~# ls /var/cache/bind/

root@server:~# named-compilezone -f raw -F text -o - compX.un /var/cache/bind/compX.un

Настройка сервера зоны un.

ns.un# cat un
...
ns.isp          A       172.16.1.254
...
ns.corp1        A       192.168.1.10
...
ns.corp16       A       192.168.16.10

corp1           NS      ns.corp1.un.
                NS      ns.isp.un.
...
corp16          NS      ns.corp16.un.
                NS      ns.isp.un.
...
ns.un# cat named.conf
...
zone "corp1.un" IN {
  type forward;
  forwarders {
    192.168.1.10;
    172.16.1.254;
  };
};
...
zone "corp16.un" IN {
  type forward;
  forwarders {
    192.168.16.10;
    172.16.1.254; 
  };
};
...

Настройка сервера зоны обратного преобразования X.168.192.IN-ADDR.ARPA

Debian/Ubuntu

server# cat /etc/bind/corpX.rev
$TTL    3h
@ SOA ns.corpX.un. root.server.corpX.un. 1 1d 12h 1w 3h

        NS      ns.corpX.un.

1       PTR     gate.corpX.un.
10      PTR     server.corpX.un.
server# named-checkzone X.168.192.IN-ADDR.ARPA /etc/bind/corpX.rev

Debian/Ubuntu

root@server:~# cat /etc/bind/named.conf.local
...
zone "X.168.192.IN-ADDR.ARPA" {
        type master;
        file "/etc/bind/corpX.rev";
};
root@server:~# named-checkconf -z

root@server:~# service bind9 restart

Проверки FreeBSD/Debian/Ubuntu

server# nslookup -q=PTR 192.168.X.10

server# nslookup -q=A server.corpX.un

Настройка DNS view

Создание файла зоны corpX.un для внутренних и внешних пользователей

Debian/Ubuntu

server# cat /etc/bind/corpX.un
$TTL    3h
corpX.un. SOA ns root.server 1 1d 12h 1w 3h

          NS      ns

          MX  1   server
          
          A       192.168.X.10
 
ns        A       192.168.X.10
server    A       192.168.X.10
gate      A       192.168.X.1

...
server# cat /etc/bind/corpX.un.out
$TTL    3h
corpX.un. SOA ns root.server 1 1d 12h 1w 3h

          NS      ns
          NS      ns.isp.un.

          MX  1   server
          
          A       172.16.1.X
          
ns        A       172.16.1.X
server    A       172.16.1.X
gate      A       172.16.1.X

mail      CNAME   server
;...

Настройка сервера

Debian/Ubuntu

root@server:~# less /etc/bind/named.conf.local
zone "corpX.un" {
        type master;
        file "/etc/bind/corpX.un";
};
zone "X.168.192.IN-ADDR.ARPA" {
        type master;
        file "/etc/bind/corpX.rev";
};
root@server:~# cat /etc/bind/named.conf
include "/etc/bind/named.conf.options";

view "inside" {
        match-clients {
                192.168.X/24;
                127/8;
        };
        include "/etc/bind/named.conf.local";
        include "/etc/bind/named.conf.default-zones";
};

view "outside" {
        zone "corpX.un" {
                type master;
                file "/etc/bind/corpX.un.out";
        };
};
root@server:~# service bind9 restart

Настройка поддержки динамических обновлений от DHCP сервера

Сервис DHCP Конфигурация с поддержкой динамических обновлений зон DNS

FreeBSD

server# mv /usr/local/etc/namedb/master/corp* /usr/local/etc/namedb/dynamic/

server# scp /usr/local/etc/namedb/rndc.key gate:/usr/local/etc/

server# cat /usr/local/etc/namedb/named.conf
...
        zone "corpX.un" {
               allow-update { key "rndc-key"; };
               file "/usr/local/etc/namedb/dynamic/corpX.un";
...
        zone "X.168.192.IN-ADDR.ARPA" {
               allow-update { key "rndc-key"; };
               file "/usr/local/etc/namedb/dynamic/corpX.rev";
...
include "rndc.key";

Ubuntu

server# mv /etc/bind/corp* /var/cache/bind/

server# chown -R bind /var/cache/bind/

server# scp /etc/bind/rndc.key gate:/etc/dhcp/

server# ssh gate "chown dhcpd /etc/dhcp/rndc.key"

server# cat /etc/bind/named.conf
...
        zone "corpX.un" {
...
               allow-update { key "rndc-key"; };
        };
...
        zone "X.168.192.IN-ADDR.ARPA" {
...
               allow-update { key "rndc-key"; };
        };
...
include "/etc/bind/rndc.key";

Ограничение доступа к DNS серверу

Debian/Ubuntu

# cat /etc/bind/named.conf.options
options {
...
        allow-recursion {192.168.X/24; 192.168.100+X/24; 127/8;};
...
};
# cat /etc/bind/named.conf.local
zone "corpX.un" {
...
        allow-transfer {172.16.1.254;};
...
};
gate.isp.un$ nslookup -q=AXFR corpX.un 192.168.X.10

Мониторинг DNS сервера

Настройка

# cat named.conf
options {
...
        dump-file       "/tmp/named_dump.db";
        statistics-file "/tmp/named.stats";
...
};

Просмотр кеша DNS сервера

# rndc dumpdb -cache

# less /var/cache/bind/named_dump.db

Просмотр статистики обращений к DNS серверу

[server:~] # rndc stats
[server:~] # cat /var/named/var/stats/named.stats
success - число запросов, не вызвавших ошибок или возврата клиенту ссылки
referral - число запросов, на которые сервер вернул клиенту ссылки
nxrrset - несуществующих записей запрошенного типа для доменного имени
nxdomain - несуществующих доменных имен
recursion - число запросов, потребовавших рекурсивной обработки
failure - число ошибок, кроме nxrrset и nxdomain