LINUX.ORG.RU
ФорумAdmin

named не резолвит самому себе по внешнему ip, SERVFAIL

 , ,


0

2

Вобщем, сабж. RHEL 6.4 x64

Не резолвит некоторые доменные имена, и все те, для которых о сам является держателем зоны. Причем, если спрашивать у 127.0.0.1 или localhost, то всё нормально, на любой запрос dig'a отвечает исправно и корректно. Пробовал файл зоны править, приводил точь-в-точь как в доках, не помогло. Причем, до этого всё работало исправно, клиенты были довольны.

Если запрос делает другой хост, он ему отвечает сразу, но почему-то некоторым из доверенных подсетей говорит SERVFAIL. У кого какие догадки?

Если конфиги нужны будут ещё, приведу при необходимости.

# named -V BIND 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 built with '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-libtool' '--localstatedir=/var' '--enable-threads' '--enable-ipv6' '--with-pic' '--disable-static' '--disable-openssl-version-check' '--with-dlz-ldap=yes' '--with-dlz-postgres=yes' '--with-dlz-mysql=yes' '--with-dlz-filesystem=yes' '--with-gssapi=yes' '--disable-isc-spnego' '--with-docbook-xsl=/usr/share/sgml/docbook/xsl-stylesheets' '--enable-fixed-rrset' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'target_alias=x86_64-redhat-linux-gnu' 'CFLAGS= -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' 'CPPFLAGS= -DDIG_SIGCHASE' using OpenSSL version: OpenSSL 1.0.0 29 Mar 2010 using libxml2 version: 2.7.6

А вот /etc/named.conf

acl trusted { localhost; 127.0.0.1; <тут ещё перечень доверенных ip>; };

acl internet { 0.0.0.0/0; };

acl xfer { localhost; 127.0.0.1; <тут ещё перечень доверенных ip>; };

// http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml
acl bogon { 169.254.0.0/16; 172.16.0.0/12; 192.0.2.0/24; 198.51.100.0/24; 203.0.113.0/24; 198.18.0.0/15; 224.0.0.0/3; 255.255.255.255/32; };

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { none; };
        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";
        allow-query     { any; };
        allow-query-cache { trusted; };
        allow-transfer { xfer; };
//      tcp-clients 5000;
//      recursive-clients 5000;
        zone-statistics yes;
        recursion yes;
        notify no;
        transfer-format many-answers;
        max-transfer-time-in 60;
        interface-interval 0;

        blackhole { bogon; };

//      dnssec-enable yes;
//      dnssec-validation yes;
//      dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_ch {
                file "data/named.run";
                severity dynamic;
                print-time yes;
                print-category yes;
        };
        channel security_ch {
                file "data/named_security.run";
                print-time yes;
                print-category yes;
        };
        channel resolver_ch {
                file "data/named_resolver.run";
                print-time yes;
                print-category yes;
        };
};

key "rndc-key" {
        algorithm hmac-md5;
        secret "WfdoUIFOfhFIufhIFUfihfIFuA==";
};

controls {
        inet 127.0.0.1 port 953
        allow { 127.0.0.1; } keys { "rndc-key"; };
};

include "zones/stream.zones";

view "internal-in" in {
        match-clients { trusted; 127.0.0.1; };
        allow-recursion { localhost; <внешний ip сервера>; };
        recursion yes;
        additional-from-auth yes;
        additional-from-cache yes;

        zone "." {
                type slave;
                file "zones/slave/root.slave";
                masters {
                        198.41.0.4;     // A.ROOT-SERVERS.NET.
                        192.228.79.201; // B.ROOT-SERVERS.NET.
                        192.33.4.12;    // C.ROOT-SERVERS.NET.
                        199.7.91.13;    // D.ROOT-SERVERS.NET.
                        192.203.230.10; // E.ROOT-SERVERS.NET.
                        192.5.5.241;    // F.ROOT-SERVERS.NET.
                        192.112.36.4;   // G.ROOT-SERVERS.NET.
                        128.63.2.53;    // H.ROOT-SERVERS.NET.
                };
                notify no;
        };

        include "zones/com.zones";
        include "zones/uz.zones";
        include "zones/arpa.zones";
        include "/etc/named.rfc1912.zones";
};

view "external-in" in {

        match-clients { any; };
        recursion no;
        additional-from-auth no;
        additional-from-cache no;

        zone "." {
                type slave;
                file "zones/slave/root.slave";
                masters {
                        198.41.0.4;     // A.ROOT-SERVERS.NET.
                        192.228.79.201; // B.ROOT-SERVERS.NET.
                        192.33.4.12;    // C.ROOT-SERVERS.NET.
                        199.7.91.13;    // D.ROOT-SERVERS.NET.
                        192.203.230.10; // E.ROOT-SERVERS.NET.
                        192.5.5.241;    // F.ROOT-SERVERS.NET.
                        192.112.36.4;   // G.ROOT-SERVERS.NET.
                        128.63.2.53;    // H.ROOT-SERVERS.NET.
                };
                notify no;
        };

        include "zones/com.zones";
        include "zones/uz.zones";
        include "zones/arpa.zones";
        include "/etc/named.rfc1912.zones";
};

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

А вот пример файла зоны, держателем которой и является этот сервер:

$TTL    86400
$ORIGIN example.com.
@               IN      SOA     example.com. hostmaster.mydomain.com. (
                        2012101401      ; Serial
                        14400           ; Refresh, 4 hours
                        3600            ; Retry, 1 hour
                        604800          ; Expire, 7 days
                        86400 )         ; Minimum TTL, 1 day

example.com.  604800  IN NS   ns1.mydomain.com.
example.com.  604800  IN NS   ns2.mydomain.com.

@                IN     MX      10      nx.example.com.
@                IN     MX      30      mail.example.com.

@               IN      A       <ip>
www             IN      A       <ip>

Это файлы уже после танцев и плясок с бубном.

У кого какие догадки?

Розрешите рекурсивные запросы для trusted

black_13 ()
Ответ на: комментарий от tazhate

В логах думал ничего не будет, однако нашел такое:

Dec  5 14:41:06 server named[1260]: error (unexpected RCODE REFUSED) resolving 'www.mensmedsonline.com/A/IN': 184.170.136.98#53

leader32 ()
Ответ на: комментарий от black_13

не помогает, спрашиваю с консоли самого сервера, который и является держателем зоны, всё равно SERVFAIL:

# dig <myzone>.com @server

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> <myzone>.com @server
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 10280
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;<myzone>.com.                 IN      A

;; Query time: 0 msec
;; SERVER: <server>#53(<server>)
;; WHEN: Thu Dec  5 13:49:32 2013
;; MSG SIZE  rcvd: 31


leader32 ()

acl trusted { localhost; 127.0.0.1; <тут ещё перечень доверенных ip>; };

И IP самого сервера там тоже есть (без ошибок)? Пока подозрение что match-clients { trusted; 127.0.0.1; }; не ловит твоего клиента и он идет по категории view «external-in»

sdio ★★★★★ ()
Ответ на: комментарий от sdio

И IP самого сервера там тоже есть (без ошибок)?

Да, он входит в одну из указанных подсетей, на всякий случай добавил.

Пока подозрение что match-clients { trusted; 127.0.0.1; }; не ловит твоего клиента и он идет по категории view «external-in»

Почитал доки, сделал вот так:

view "external-in" in {
        match-clients { !trusted; !127.0.0.1; !localhost; !<ip>; };
Но всё равно SERVFAIL. Интересно то, что в лог это событие не пишется, а по некоторым другим пишет и REFUSED, и SERVFAIL.

leader32 ()

А почему у вас так корневая зона описана? Обычно же пишут ″type hint″.

mky ★★★★★ ()
Ответ на: комментарий от mky

Это общедоступный ДНС, является держателем некоторых доменных имен.

leader32 ()

Мистика. Опустил интерфейс, повесил другой ip, поднял интерфейс, алиасом повесил старый, и заработало!!

Проблема не решена, в раздумьях. Выслушаю любые crazy-предположения.

leader32 ()

было такое, когда бинд поднялся раньше, чем сконфигурировался интерфейс
он работал, но ниче не отдавал

ii343hbka ★★★ ()
Ответ на: комментарий от ii343hbka

Он у тебя слушал на определенном интерфейсе? Ещё в некоторых дистрибах прописывают релоад демонов в post-up.d/

Рестартовал по нескольку раз.

leader32 ()
Ответ на: комментарий от leader32

ну как сказать
он слушал локалхост и часть адресов одного из интерфейсов

ii343hbka ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.