Ubuntu

嘗試設置內部 dns

  • March 11, 2017

在我工作的 Intranet 上,我們有不公開的內部應用程序,例如:app1.example.com、app2.example.com,而 example.com 是面向公眾的網站。app1.example.com 和 app2.example.com 都解析為內網的 ip。

據我搜尋,我發現這可以通過將本地 DNS 伺服器連接到我們的 Intranet 來實現。

因此,我想通過使用 Virtualbox VM 來複製它,所以使用了 3 個 Ubuntu 風格的 Vm 的一個 Xubuntu、一個 Lubuntu 和一個 Ubuntu Budgie Edition 剩餘的來自以前的“實驗”。他們都有 2 個網路適配器:

  • 一種設置為 NAT 和
  • 另一個作為“內部網路”,靜態具有來自192.0.0.0/24網路的 ips。

在 Xubuntu 上,我安裝了 bind9 和一個網路伺服器,並嘗試通過輸入 Xubuntu 和 Budgie Edition Vms 的瀏覽器 app1.intranet.example.com 和 app2.intranet.example.com 來模擬,以服務於 2 個不同的站點。這些站點在網路之外(這 3 個 Vms 的)將不可用,甚至無法解析這 2 個站點的 DNS 條目。

至於現在在執行綁定的虛擬機上(The 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

但是由於某種原因,當我嘗試重新啟動綁定時它失敗了。你能幫我找出問題所在嗎?

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.

除了雅各布的回复,您還錯過了對 ip4 的監聽。

還要檢查系統日誌以獲取任何有用的線索

並嘗試命名-checkconf 和命名-checkzone。在啟動綁定服務之前非常有用的工具。

引用自:https://serverfault.com/questions/837596