BIND9无法解析本地域

BIND9无法解析本地域

我已经努力了几天来配置 bind9 来解析我的本地域,以便我可以从我的 LAN 内部访问它。

细节:

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 守护进程成功运行,没有错误。此外,Web 服务器正在运行,虚拟主机已配置并启用。

目标:通过域名(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.local192.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 为我指出了正确的方向。DNS 似乎没问题。对于我的 Debian 笔记本电脑,我将 中的值顺序/etc/nsswitch.conf从更改hosts: files myhostname mdns4_minimal [NOTFOUND=return] dnshosts: dns files myhostname mdns4_minimal [NOTFOUND=return]。我不确定为什么这样做有效,但它确实有效。但是...

我还想使用连接到 WiFi 的移动设备 (android) 访问本地域。但这仍然行不通。不过,我已在每台设备上使用 DNS 配置了 WiFi 连接...

答案1

我认为这行:

ns1             IN      A       127.0.0.1

就是问题所在。

将 127.0.0.1 替换为您的 DNS 服务器的实际地址 (192.168.178.46)。

相关内容