![Для моего собственного DNS-сервера «dig ... @ip-address» работает, а «dig ... @domainname» — нет.](https://rvso.com/image/1413925/%D0%94%D0%BB%D1%8F%20%D0%BC%D0%BE%D0%B5%D0%B3%D0%BE%20%D1%81%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE%20DNS-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0%20%C2%ABdig%20...%20%40ip-address%C2%BB%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82%2C%20%D0%B0%20%C2%ABdig%20...%20%40domainname%C2%BB%20%E2%80%94%20%D0%BD%D0%B5%D1%82..png)
Недавно я начал виртуализировать серверы, один из которых — DNS-сервер, работающий под управлением BIND 9 на Debian 7. Мой DHCP-сервер правильно выдает его в качестве основного DNS для сети, но я получаю следующую ошибку, если пытаюсь использоватьdig kilraine.lan @dns.kilraine.lan
couldn't get address for 'dns.kilraine.lan': not found
Хотя я получаю оригинальный вывод dig из dig kilraine.lan @192.168.1.2
.
Подробности:
BIND 9 на Debian 7; Виртуализированный CT через Proxmox.
Файл зоны (адрес электронной почты был изменен, чтобы скрыть мою личную информацию)
; BIND data file for kilraine zone
;
$TTL 604800
@ IN SOA kilraine.lan. myaddress.myemail.com. (
2014060303 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
IN A 192.168.1.2
;
@ IN NS dns.kilraine.lan
@ IN A 192.168.1.2
dns2 IN A 192.168.1.1
dns IN A 192.168.1.2
dhcp IN A 192.168.1.3
main IN A 192.168.1.10
Файл обратной зоны
;
; BIND reverse data file for kilraine.lan
;
$TTL 604800
@ IN SOA kilraine.lan. myaddress.myemail.com. (
3006201401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS dns.
1 IN PTR dns2.kilraine.lan
2 IN PTR dns.kilraine.lan
3 IN PTR dhcp.kilraine.lan
10 IN PTR main.kilraine.lan
И, наконец, мой файл named.conf.local.
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
// include "/etc/bind/zones.rfc1918";
zone "kilraine.lan" {
type master;
file "/etc/bind/db.kilraine.lan";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
};
Я перезапускал BIND 9 много раз, и всегда получал "OK". Я использовал инструмент dnsutils 'dig' на сервере и клиенте, каждый из них возвращает следующее
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> kilraine.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 46467
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;kilraine.lan. IN A
;; Query time: 2 msec
;; SERVER: 192.168.1.2#53(192.168.1.2)
;; WHEN: Mon Jun 30 21:53:41 2014
;; MSG SIZE rcvd: 30
решение1
Вы пропустили несколько точек в обратных записях. Должны заканчиваться на "kilraine.lan.", а не на "kilraine.lan". Кроме того, запись NS должна быть "dns.kilraine.lan." а не "dns." или "dns.kilraine.lan". Если вы пропустите конечную точку, вы по сути просите BIND добавить имя зоны (т. е. вы получите dns.kilraine.lan.kilraine.lan).
Другие вопросы/комментарии/мысли:
- Вы перезапускали службу (или перезагружали зоны) после внесения изменений?
- Ваш резолвер указывает на ваш DNS-сервер?
- Прослушивает ли BIND порт 53? Есть ли на сервере брандмауэр, который блокирует любые попытки доступа к службе DNS?
- Возвращает ли «dig main.kilraine.lan» что-либо отличное от «dig @192.168.1.1 main.kilraine.com»?
- Вы смотрели записи журнала после перезапуска службы?