Я пытаюсь настроить свой первый 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