В течение нескольких дней я пытался настроить bind9 для разрешения моего локального домена, чтобы я мог получить к нему доступ из своей локальной сети.
Подробности:
DNS SERVER: 192.168.178.46
WEBSERVER (apache2): (A virtualbox machine, bridged) 192.168.178.36
VM HOST MACHINE: 192.168.178.26
LOCAL DOMAIN: acme.local
Я могу успешно получить доступ ко всем машинам по IP. Все клиенты настроены с моим внутренним DNS. Я могу получить доступ к своему локальному веб-сайту по IP-адресу.
Демон bind успешно работает без ошибок. Также веб-сервер работает, и виртуальный хост настроен и включен.
Цель: получить доступ к моему локальному веб-серверу по доменному имени (acme.local) без изменения файла /etc/hosts
.
На моем DNS-сервере (192.168.178.46)
Содержимое /etc/bind/named.conf.options
:
options {
directory "/var/cache/bind";
// 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.
// I dont need to forward to other name server. so dont use this.
// forwarders {
// 0.0.0.0;
// };
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
Содержимое /etc/bind/named.conf.local
:
// Just to be sure, internal network only.
acl internals {
192.168.178.0/24;
127.0.0.0/8;
};
// Create a view for the internal ACL.
view "internals" {
// Match the ACL
match-clients { internals; };
// Configure the domain:
zone "acme.local" {
type master;
// point out to the zone file.
file "/etc/bind/zones/db.acme.local";
};
};
/etc/bind/zones/db.acme.local:
@ IN SOA ns1.acme.local. admin.acme.local. (
5 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; Name servers
; create a name for the DNS.
acme.local. IN NS ns1.acme.local.
; A records for name servers
; Point the created name for the DNS to the machine itself.
ns1 IN A 127.0.0.1
; Other A records
; Point to the web-server:
@ IN A 192.168.178.36
www IN A 192.168.178.36
Информация DiG (сделано на одном из внутренних клиентов)
Это то, что говорит мне dig
, я новичок в этом вопросе DNS, но мне кажется, он находит acme.local
на 192.168.178.36
. но все же Chrome говорит мне:
acme.local’s server DNS address could not be found.
ERR_NAME_NOT_RESOLVED
Копать информацию:
; <<>> DiG 9.9.5-9+deb8u9-Debian <<>> acme.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44847
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;; acme.local. IN A
;; ANSWER SECTION:
acme.local. 604800 IN A 192.168.178.36
;; AUTHORITY SECTION:
acme.local. 604800 IN NS ns1.acme.local.
;; ADDITIONAL SECTION:
ns1.acme.local. 604800 IN A 192.168.178.46
;; Query time: 3 msec
;; SERVER: 192.168.178.46#53(192.168.178.46)
;; WHEN: Fri Jan 20 23:14:04 CET 2017
;; MSG SIZE rcvd: 91
Вопрос:
Можете ли вы увидеть, что я делаю неправильно или дать мне несколько советов о том, как достичь своей цели с помощью bind9?
Спасибо, в любом случае!
РЕДАКТИРОВАТЬ / ОБНОВИТЬ:
Одна часть решена, благодаря @Barmar мне указали правильное направление. ДНС вроде нормально. для моего ноутбука Debian я изменил порядок значений в /etc/nsswitch.conf
от hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns
to hosts: dns files myhostname mdns4_minimal [NOTFOUND=return]
. Я не уверен, почему это сработало, но это сработало. Но...
Я также хотел бы получить доступ к своему локальному домену с моими мобильными устройствами (Android), подключенными к моему WiFi. И это все еще не работает. Однако я настроил соединение Wi-Fi с DNS на каждом устройстве ...