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

CentOS BIND DNS Устранение неполадок?

Я пытаюсь настроить свой первый DNS-сервер BIND9 для небольшой локальной сети и не могу заставить его работать. Я хочу создать «локальный» домен max.app

Насколько я могу судить, named работает, но, похоже, не обслуживает записи моего домена?

service named start

Возвращает ОК, и демон запускается при загрузке.

Если я попытаюсь пинговать mac1, я получу: unknown host mac1

Если я попробую ping mac1.max.app, я получу: unknown host mac1

Когда я пробую nslookup, я получаю:

nslookup max.app
Server: 8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   max.app
Address: 67.192.47.244

Как видите, я не обслуживаю записи из своей локальной службы привязки (192.168.100.10)

Мой файл /etc/resolv.conf выглядит так:

# Generated by NetworkManager
search max.app
nameserver 192.168.100.10
nameserver 8.8.8.8
nameserver 8.8.4.4

Мой файл /etc/ named.conf выглядит так:

acl local-network { 192.168.100.0/24;  }; 

options {
    listen-on port 53 { 127.0.0.1; 192.168.100.10; };
    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";
    allow-query     { local-network;  };
    recursion yes;

    query-source address * port 53;

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

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


logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};


zone "max.app" IN {   
    type master;   
    file "max.app.zone";   
    allow-update { none; }; 
};

zone "100.168.192.in-addr.arpa" IN {
    type master;   
    file "max.app.rr.zone";   
    allow-update { none; }; 
};

Мой файл /var/ named/max.app.zone выглядит так:

$ORIGIN max.app. 
$TTL 86400 
@   IN  SOA dns1.max.app.   email.gmail.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  dns1.max.app.   

dns1    IN  A   192.168.100.10
CentOS1 IN  A   192.168.100.15
CentOS2 IN  A   192.168.100.25

mac1    IN  A   192.168.100.50
mac2    IN  A   192.168.100.55
mac3    IN  A   192.168.100.60

www     IN  CNAME   CentOS1

Мой файл /var/ named/max.app.rr.zone выглядит так:

$ORIGIN 100.168.192.in-addr.arpa. 
$TTL 86400 
@   IN  SOA dns1.max.app.   email.gmail.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  dns1.max.app.

10  IN  PTR dns1.max.app.
15  IN  PTR CentOS1.max.app.
20  IN  PTR CentOS2.max.app.

50  IN  PTR mac1.max.app.
55  IN  PTR mac1.max.app.
60  IN  PTR mac1.max.app.

Служба с именем status возвращает:

version: 9.7.0-P2-RedHat-9.7.0-5.P2.el6_0.1
CPUs found: 2
worker threads: 2
number of zones: 15
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
named (pid  1121) is running.

Такое «количество зон: 15» кажется немного странным? Когда в named.conf определена только 1 зона

ОБНОВЛЕНИЕ 14.07, 17:45 CST

Хорошо, я выполнил приведенные ниже предложения, но, похоже, что-то по-прежнему не работает.

Добавлен в / etc / sysconfig / iptables

-A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 53 -j ACCEPT

dig @ 192.168.100.10 mac1.max.app a возвращает:

; <<>> DiG 9.6.0-APPLE-P2 <<>> @192.168.100.10 mac1.max.app a
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48036
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;mac1.max.app.      IN  A

;; ANSWER SECTION:
mac1.max.app.   86400   IN  A   192.168.100.15

;; AUTHORITY SECTION:
max.app.        86400   IN  NS  dns1.max.app.

;; ADDITIONAL SECTION:
dns1.max.app.       86400   IN  A   192.168.100.10

;; Query time: 8 msec
;; SERVER: 192.168.100.10#53(192.168.100.10)
;; WHEN: Thu Jul 14 17:30:53 2011
;; MSG SIZE  rcvd: 85

dig @ 192.168.100.10 mac1.max.app ns возвращает

; << >> DiG 9.6.0-APPLE-P2 << >> @ 192.168.100.10 mac1.max.app ns; (Найден 1 сервер) ;; глобальные параметры: + cmd ;; Получил ответ: ;; - >> HEADER << - код операции: QUERY, статус: NOERROR, id: 28099 ;; флаги: qr aa rd ra; ЗАПРОС: 1, ОТВЕТ: 0, АВТОРИТЕТ: 1, ДОПОЛНИТЕЛЬНО: 0

;; РАЗДЕЛ ВОПРОСОВ:; mac1.max.app. IN NS

;; РАЗДЕЛ ВЛАСТИ: макс. 86400 В SOA dns1.max.app. email.gmail.com. 2001062501 21600 3600 604800 86400

;; Время запроса: 8 мсек ;; СЕРВЕР: 192.168.100.10 # 53 (192.168.100.10) ;; КОГДА: 14 июля, четверг, 17:18:23 2011 ;; РАЗМЕР MSG rcvd: 94

nslookup показывает, что named находится в списке на порту 53

tcp   0   0 dns1:53                    *:*   LISTEN   2880/named
tcp   0   0 localhost.localdomain:53   *:*   LISTEN   2880/named

Некоторые предложения:

Удалите два сервера имен Google из своего resolv.conf. Ваш сервер имен выходит из строя, но вы не получаете много полезной информации, потому что nslookup переключается на следующий сервер имен.

Использовать dig вместо этого, если nslookup. Статусный ответ от dig полезен при устранении неполадок.

dig @192.168.100.10 mac1.max.app. a
dig @192.168.100.10 max.app. ns

Убедитесь, что вы проверили свои журналы, чтобы узнать, действительно ли загружается ваша зона.

Проверьте netstat, чтобы убедиться, что named прослушивает порт 53 соответствующего интерфейса.

Ваше имя настроено для прослушивания 127.0.0.1 и ::1 но ваш хост resolve.conf говорит, что нужно спрашивать 192.168.100.10 попробуйте изменить директиву прослушивания на

listen-on {
    127.0.0.1;
    192.168.100.10;
    };

Также убедитесь, что ваш брандмауэр разрешает соединения через порт 53. У меня есть следующие строки в моем /etc/sysconfig/iptables сделать это

-A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 53 -j ACCEPT