尝试设置内部 DNS

尝试设置内部 DNS

在我工作的内联网上,我们有一些内部应用程序,这些应用程序不对外开放,例如:app1.example.com、app2.example.com,而 example.com 是面向公众的网站。app1.example.com 和 app2.example.com 都解析为内联网的 IP。

因此,据我搜索,我发现通过在我们的内部网中安装本地 DNS 服务器可以实现这一点。

因此,我想使用 Virtualbox VM 来复制该功能,因此使用了 3 个 Ubuntu 风格的 VM,一个 Xubuntu,一个 Lubuntu 和一个 Ubuntu Budgie 版,都是以前的“实验”留下的。它们都有 2 个网络适配器:

  • 一个设置为 NAT,另一个设置为
  • 另一个为“内部网络”,具有来自192.0.0.0/24网络的静态 IP。

在 Xubuntu 上,我安装了 bind9 和一个网络服务器,并尝试通过在 Xubuntu 和 Budgie Edition Vms 的浏览器中输入 app1.intranet.example.com 和 app2.intranet.example.com 来模拟,以服务于 2 个不同的站点。这些站点在网络之外不可用(这 3 个 Vms 中的)甚至无法解析这两个站点的 DNS 条目。

现在,运行绑定的虚拟机(Xubuntu One)具有以下设置:

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 {
                208.67.222.222;
                208.67.220.220;
         };

        //========================================================================
        // 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; };
};

acl "intranet" { 192.0.0.1/24; };
view "intranetView" {
        match-clients { "intranet"; };
        recursion yes;
        zone "intranet.example.com" {
                type master;
                file "/etc/bind/db.intranet"
        }
}

view "outside" {
        match-clients { any; }
        recursion no;
}

我还有/etc/bind/db.intranet以下条目:

;
; BIND data file for local loopback interface
;
$TTL    604800
@   IN  SOA intranet.example.com. root.example.com. (
                  2     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@   IN  NS  192.0.0.2
@   IN  A   192.0.0.2
app1    IN  A   192.0.0.2
app2    IN  A   192.0.0.2

但不知为何,当我尝试重新启动绑定时,它失败了。你能帮我找出问题所在吗?

答案1

NS 记录必须是主机名

你也错过了;一些}

命令:

named-checkconf /etc/named.conf
named-checkzone example.com example.com

输出:

example.com:12: NS record '192.0.0.2' appears to be an address
zone example.com/IN: NS '192.0.0.2.example.com' has no address records (A or AAAA)
zone example.com/IN: not loaded due to errors.

答案2

进一步听取 Jacob 的答复,您还错过了 ip4 的收听。

还要检查系统日志以查找任何有用的线索

并尝试named-checkconf和named-checkzone。在启动绑定服务之前非常有用的工具。

相关内容