Сервер BIND не разрешает имена в локальной сети
Я пытаюсь выучить BIND9. Я создал домашнюю лабораторию с моим основным рабочим столом, на котором запущен сервер bind, ноутбук и сервер ubuntu virtualbox 16.04 vm на мостовом соединении под управлением apache.
- Я могу пропинговать все машины с каждой машины, используя их IP-адреса.
- Я могу ssh на все машины с каждой машины.
- Я не могу разрешить даже сервер имен на рабочем столе с помощью ping, и он не может разрешить ни одну машину с любой из машин.
- На любом компьютере не установлен брандмауэр, чтобы его было проще устранить.
- Мое подключение к wan работает нормально со всех машин.
- Кроме того, у меня не работает DNS-кеш-сервер
- Ни named-checkzone, ни named-checkconf не сообщают об ошибках в конфигах
РЕДАКТИРОВАТЬ: когда я использую хост при обеспечении рабочего стола в качестве DNS-сервера (хост nlab.local 192.168.1.2), все работает как на рабочем столе, так и на виртуальной машине. Это не удается, когда я использую хост без указания DNS-сервера.
1/2 РЕШЕНИЕ: я отредактировал файл заголовка (/etc/resolvconf/resolvconf.d/head) моего преобразователя и запустил sudo resolvconf -u так, чтобы мой localhost разрешался раньше всего остального. Тем не менее, это потенциальная проблема, так как это заставит все другие узлы указывать свои преобразователи на сервере, чтобы это работало, и это может замедлить их или нарушить последующее разрешение. В конце концов, преобразователь никогда не заходил достаточно далеко, чтобы поразить моего локального хоста раньше. Время ожидания для ping просто истекло, и другие инструменты (dig, host) даже не удосужились попробовать. Таким образом, это немного наполовину решение, поэтому я пока не отмечаю это как решенное. Также странно, что настройки днс в файле интерфейсов не заставляют разрешение. Мне остается только удивляться, почему такая строка существует в статических установках, если машина просто переходит в resolv.conf для серверов имен.
Привязать файлы конфигурации на рабочем столе:
named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
logging {
channel query.log {
file "/var/log/query.log"; severity debug 3;
};
category queries { query.log; };
};
named.conf.local
zone "nlab.local" {
type master;
file "/etc/bind/db.nlab.local";
};
zone "1.168.192.in-addr.arpa" {
type master;
notify no;
file "/etc/bind/db.192";
};
named.conf.options
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
// forwarders {
// 0.0.0.0;
// };
//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
allow-query { any; };
};
db.nlab.local
;
; BIND data file for nlab.local
;
$TTL 604800
@ IN SOA ns.nlab.local. ike.nlab.local. (
11 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.nlab.local.
@ IN A 192.168.1.2
@ IN AAAA ::1
ns IN A 192.168.1.2
ns1 IN A 192.168.1.12
nc1 IN A 192.168.1.9
nightfall IN CNAME ns
freefall IN CNAME nc1
db.192
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA ns.nlab.local. root.nlab.local. (
5 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.
2 IN PTR ns.nlab.local.
; also list other computers
12 IN PTR ns1.nlab.local.
9 IN PTR nc1.nlab.local.
IP-адрес моего рабочего стола является статическим, настроенным через network-manager, поскольку изменение моего /etc/network/interfaces вручную не позволяет запустить мой network.service. Может быть, это ключ, но я не знаю, как его расшифровать. Тем не менее, я смог установить статический ip для файла интерфейсов в vm, который изначально запускал сервер связывания (теперь отключен), и, хотя я был в состоянии разрешать адреса на этом компьютере, он все еще не передавал другим машины с такими же конфигами.
IP: 192.168.1.2
Шлюз: 192.168.1.1
DNS: 127.0.0.1, 8.8.8.8, 8.8.4.4
Диагностика: на рабочем столе
netstat -naptu | grep 53
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 9324/dnsmasq
tcp 0 0 192.168.1.2:53 0.0.0.0:* LISTEN 1540/named
tcp 0 0 172.17.0.1:53 0.0.0.0:* LISTEN 1540/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1540/named
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1531/sshd
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1540/named
tcp 0 0 192.168.1.2:51444 34.211.99.53:443 TIME_WAIT -
tcp 0 0 192.168.1.2:44613 192.52.178.30:53 TIME_WAIT -
tcp 32 0 192.168.1.2:54530 162.125.5.3:443 CLOSE_WAIT 2976/dropbox
tcp 0 0 192.168.1.2:41171 192.12.94.30:53 TIME_WAIT -
tcp 1 0 192.168.1.2:53664 54.236.121.227:443 CLOSE_WAIT 2976/dropbox
tcp6 0 0 :::22 :::* LISTEN 1531/sshd
udp 0 0 127.0.0.1:60178 127.0.0.1:53 ESTABLISHED 2372/Plex DLNA Serv
udp 0 0 0.0.0.0:5353 0.0.0.0:* 1285/avahi-daemon:
udp 0 0 127.0.0.1:46562 127.0.0.1:53 ESTABLISHED 2372/Plex DLNA Serv
udp 0 0 127.0.0.1:38551 127.0.0.1:53 ESTABLISHED 3715/plugin_host
udp 0 0 127.0.1.1:53 0.0.0.0:* 9324/dnsmasq
udp 0 0 192.168.1.2:53 0.0.0.0:* 1540/named
udp 0 0 172.17.0.1:53 0.0.0.0:* 1540/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 1540/named
udp6 0 0 :::5353 :::* 1285/avahi-daemon:
хозяин работает, наверное:
$ host nlab.local
nlab.local has address 192.168.1.2
$ host ns1.nlab.local
ns1.nlab.local has address 192.168.1.12
При форсировании сервера
$ host nlab.local 192.168.1.2
Using domain server:
Name: 192.168.1.2
Address: 192.168.1.2#53
Aliases:
nlab.local has address 192.168.1.2
nlab.local has IPv6 address ::1
И пинг не проходит
$ ping nlab.local
ping: unknown host nlab.local
$ ping ns1.nlab.local
ping: unknown host ns1.nlab.local
Ошибки проверки связи устраняются несколькими секундами.
dig дает этот ответ:
$ dig nlab.local
; <<>> DiG 9.10.3-P4-Ubuntu <<>> nlab.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61277
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;nlab.local. IN A
;; ANSWER SECTION:
nlab.local. 604800 IN A 192.168.1.2
;; AUTHORITY SECTION:
nlab.local. 604800 IN NS ns.nlab.local.
;; ADDITIONAL SECTION:
ns.nlab.local. 604800 IN A 192.168.1.2
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Apr 03 12:50:55 EDT 2018
;; MSG SIZE rcvd: 88
С сервера Ubuntu VM:
$ dig nlab.local
; <<>> DiG 9.10.3-P4-Ubuntu <<>> nlab.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 24440
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;nlab.local. IN A
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Apr 03 12:59:11 EDT 2018
;; MSG SIZE rcvd: 28
Это файл /etc/network/interfaces в виртуальной машине:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto enp0s3
iface enp0s3 inet static
address 192.168.1.12
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.2 8.8.8.8 75.75.75.75
Ведение журнала работает, и сервер получает запросы от приложений на рабочем столе. Я не вижу никаких запросов от VM.
Спасибо заранее за любую помощь.