Назад | Перейти на главную страницу

Клиент не запрашивает реферальный DNS-сервер (BIND 9, Centos 7)

У меня есть два DNS-сервера (Centos7) и один клиентский компьютер (окно 7).

localhost.beohu.com (192.168.2.254) и cent2.pimmup.com (192.168.2.253). Для клиентского ПК используется DNS-сервер 192.168.2.254.

На localhost.beohu.com (192.168.2.254), файл named.conf: (я вырезал нерелевантную строку комментария)

options {
        listen-on port 53 { 192.168.2.254; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
        recursion no;
        dnssec-enable no;
        dnssec-validation no;
        bindkeys-file "/etc/named.root.key";
        managed-keys-directory "/var/named/dynamic";
        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};
zone "." IN {
        type hint;
        file "named.ca";
};
zone "beohu.com" IN
{
        type master;
        file "beohu.com.db";
        allow-update {any;};
        allow-query {any;};
};
zone "2.168.192.in-addr.arpa" IN
{
        type master;
        file "192.168.2.db";
        allow-update {any;};
        allow-query {any;};
};
zone "pimmup.com"
{
        type master;
        file "pimmup.com.db";
        allow-update {any;};
        allow-query {any;};
};
zone "9.168.192.in-addr.arpa"
{
        type master;
        file "192.168.9.db";
        allow-update {any;};
        allow-query {any;};
};

Файлы зоны:

==> 192.168.9.db <==
$TTL 86400
@       IN      SOA     cent2.pimmup.com.       hostmaster.pimmup.com. (
                        2001062501 ; serial
                        21600      ; refresh after 6 hours
                        3600       ; retry after 1 hour
                        604800     ; expire after 1 week
                        86400 )    ; minimum TTL of 1 day

@       IN      NS      cent2.
253     IN      PTR     cent2.pimmup.com.

==> 192.168.2.db <==
$TTL 86400
@       IN      SOA     beohu.com.      hostmaster.beohu.com. (
                        2001062501 ; serial
                        21600      ; refresh after 6 hours
                        3600       ; retry after 1 hour
                        604800     ; expire after 1 week
                        86400 )    ; minimum TTL of 1 day

@       IN      NS      localhost.beohu.com.
252     IN      PTR     win7.beohu.com.
254     IN      PTR     localhost.beohu.com.

==> pimmup.com.db <==
$TTL 86400
@       IN      SOA     pimmup.com.     hostmaster.pimmup.com. (
                        2001062501 ; serial
                        21600      ; refresh after 6 hours
                        3600       ; retry after 1 hour
                        604800     ; expire after 1 week
                        86400 )    ; minimum TTL of 1 day

@       IN      NS      cent2.pimmup.com.
@       IN      A       192.168.2.253
cent2   IN      A       192.168.2.253


==> beohu.com.db <==
$TTL 86400
@       IN      SOA     beohu.com.      hostmaster.beohu.com. (
                        2001062501 ; serial
                        21600      ; refresh after 6 hours
                        3600       ; retry after 1 hour
                        604800     ; expire after 1 week
                        86400 )    ; minimum TTL of 1 day


@       IN      NS      localhost.beohu.com.


localhost.beohu.com. IN A       192.168.2.254
win7.beohu.com. IN      A       192.168.2.252

На сайте cent2.pimmup.com (192.168.2.253), Named.conf:

options {
        listen-on port 53 { 192.168.2.253; };
        #listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
        recursion yes;
        dnssec-enable yes;
        dnssec-validation yes;
        bindkeys-file "/etc/named.root.key";
        managed-keys-directory "/var/named/dynamic";
        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.ca";
};
zone "pimmup.com" IN
{
        type master;
        file "pimmup.com.db";
        allow-update {any;};
        allow-query {any;};
};
zone "9.168.192.in-addr.arpa" IN
{
        type master;
        file "192.168.9.db";
        allow-update {any;};
        allow-query {any;};
};
zone "2.168.192.in-addr.arpa" IN
{
        type master;
        file "192.168.2.db";
        allow-update {any;};
        allow-query {any;};
};




include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

Файл зоны:

==> 192.168.9.db <==
$TTL 86400
@       IN      SOA     cent2.pimmup.com.      hostmaster.pimmup.com. (
                        2001062501 ; serial
                        21600      ; refresh after 6 hours
                        3600       ; retry after 1 hour
                        604800     ; expire after 1 week
                        86400 )    ; minimum TTL of 1 day

@       IN      NS      cent2.pimmup.com.
254     IN      PTR     localhost.pimmup.com.
252     IN      PTR     win7.pimmup.com.

==> 192.168.2.db <==
$TTL 86400
@       IN      SOA     cent2.pimmup.com.      hostmaster.pimmup.com. (
                        2001062501 ; serial
                        21600      ; refresh after 6 hours
                        3600       ; retry after 1 hour
                        604800     ; expire after 1 week
                        86400 )    ; minimum TTL of 1 day

@       IN      NS      cent2.pimmup.com.
253     IN      PTR     cent2.pimmup.com.

==> pimmup.com.db <==
$TTL 86400
@       IN      SOA     cent2.pimmup.com.     hostmaster.pimmup.com. (
                        2001062501 ; serial
                        21600      ; refresh after 6 hours
                        3600       ; retry after 1 hour
                        604800     ; expire after 1 week
                        86400 )    ; minimum TTL of 1 day


@       IN      NS      cent2.pimmup.com.
@       IN      A       192.168.2.253
cent2.pimmup.com.      IN      A       192.168.2.253
localhost.pimmup.com. IN        A       192.168.9.254
win7.pimmup.com.        IN      A       192.168.9.252

С клиентского ПК, если я установлю DNS-сервер 192.168.2.253, он может разрешить win7.pimmup.com до 192.168.9.252 (и других записей A, PTR).

Но моя цель: установить DNS клиентского компьютера на 192.168.2.254. При запросе win7.pimmup.com (или другой записи A, PTR в домене pimmup.com) DNS-сервер 192.168.2.254 возвращает значение ссылки, в данном случае 192.168.2.253.

Из Wireshark на клиенте я вижу, что ответ 0,254 на запрос клиента с SOA домена pimmup.com (см. Прикрепленное изображение). Но почему-то клиент не использует эту запись SOA для продолжения отправки запроса к этому значению ссылки, или мне нужно сделать что-то еще, чтобы сделать клиентский запрос для ссылки?

Извините за длинный пост, но, пожалуйста, помогите мне указать, что мне нужно сделать / изменить, чтобы он работал. Огромное спасибо.

192.168.2.254

  1. listen-on port 53 { 192.168.2.254; }; - это указывает привязке отвечать только на запросы, исходящие от того же компьютера, на котором выполняется привязка.
 ==> pimmup.com.db <==
    $TTL 86400
    @       IN      SOA     pimmup.com.     hostmaster.pimmup.com. (
                            2001062501 ; serial
                            21600      ; refresh after 6 hours
                            3600       ; retry after 1 hour
                            604800     ; expire after 1 week
                            86400 )    ; minimum TTL of 1 day
    
    @       IN      NS      cent2.pimmup.com.
    @       IN      A       192.168.2.253
    cent2   IN      A       192.168.2.253
   

Здесь я ничего не вижу A записи для win7.pimmup.com, это также одна из причин, по которой доменное имя не может быть разрешено.

3.

==> 192.168.9.db <==
    $TTL 86400
    @       IN      SOA     cent2.pimmup.com.       hostmaster.pimmup.com. (
                            2001062501 ; serial
                            21600      ; refresh after 6 hours
                            3600       ; retry after 1 hour
                            604800     ; expire after 1 week
                            86400 )    ; minimum TTL of 1 day
    
    @       IN      NS      cent2.
    253     IN      PTR     cent2.pimmup.com.

NS запись должна содержать полное доменное имя полномочного сервера. Значит, должно быть cent2.pimmup.com, право?

192.168.2.253

  1. listen-on port 53 { 192.168.2.253; }; - он сообщает bind слушать запросы, поступающие с той же машины. (Я удивлен, что он может разрешить любой домен с вашего клиентского ПК, потому что он не слушает запросы, поступающие извне ...)

  2. recursion yes; - авторитетный сервер имен также не должен быть рекурсивным. Прочитать о DDoS-атаки и отравление кеша.

Общий совет:

  1. Какое предназначение ваших серверов? Если вы хотите, чтобы они были доступны извне, listen-on директива должна быть установлена ​​на { any; } или по крайней мере должен быть какой-то ACL определение IP-адресов, которым разрешено запрашивать его.

  2. Рассматривать только авторитетная конфигурация, потому что, как я указывал ранее, один и тот же сервер не должен быть одновременно рекурсивным и авторитетным, особенно если он общедоступен.

  3. Поскольку оба ваших сервера являются официальными для одних и тех же зон, я настоятельно рекомендую вам рассмотреть конфигурация ведущий-ведомый.