DNS:將子網域的解析委託給另一個名稱伺服器

DNS:將子網域的解析委託給另一個名稱伺服器

我正在家裡設定一個 DNS 伺服器,以便我更容易為我的一些本地伺服器設定別名,同時也作為一個專案來更好地理解 DNS。由於我是新手,請原諒(並糾正)任何術語錯誤!

我的本機 DNS 伺服器的目的是使用我的網域來存取我的一些本機電腦。所以,假設我的網域是my-domain.com.我家裡有一個媒體伺服器,我想以 訪問media.my-domain.com,並且我有兩個本地 DNS 伺服器用於此目的。這些 DNS 伺服器委託給 Google DNS 進行其他查詢。

這是我的區域文件my-domain.com,它儲存在/etc/bind/zones/db.my-domain.com我的本機 DNS 伺服器上ns1

;
; BIND data file for local loopback interface
;
$TTL    604800
@   IN  SOA ns1.my-domain.com. admin.my-domain.com. (
                  3     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
; name servers - NS records
@   IN  NS  ns1.my-domain.com.
@   IN  NS  ns2.my-domain.com.
;
; name servers - A records
ns1.my-domain.com.  IN  A   10.55.55.55
ns2.my-domain.com.  IN  A   10.55.55.56
;
; 10.55.55.0/24 - A records
media.my-domain.com.    IN  A   10.55.55.100

這是我的選項文件,儲存在/etc/bind/named.conf.options我的本地 DNS 伺服器上ns1

acl "trusted" {
    10.55.55.0/24; # home network
};
options {
    directory "/var/cache/bind";

    recursion yes;
    allow-recursion { trusted; };
    listen-on { 10.55.55.55; };
    allow-transfer {none; }; # disable zone transfers

    forwarders {
        8.8.8.8; # google1
        8.8.4.4; # google2
    };

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

10.55.55.0/24是我的本地子網, 和ns1分別ns2是我的主要和輔助 DNS 伺服器。

my-domain.com在互聯網上用於其他目的,例如,當我訪問時,admin.my-domain.com它會將我帶到公開可見網站的管理控制台。這意味著,如果您從 Google 的 DNS 伺服器執行nslookup開啟操作admin.my-domain.com,您將看到它對應到全球可存取的公用 IP 位址。

不幸的是,在我實作本機 DNS 伺服器後,我無法admin.my-domain.com正確解析。我的nslookup請求到達了我的本地 DNS 伺服器,該伺服器沒有為此子網域進行配置,並且我從本地 DNS 獲得「無應答」。

相反,我想要的行為是讓我的 DNS 伺服器將請求轉送到my-domain.comGoogle DNS,並且只提供ns1.my-domain.comns2.my-domain.com和的答案media.my-domain.com。我看到了一些與我的類似的問題,但答案往往是為每個子網域建立一個區域檔案。這真的是唯一的方法嗎?我真的很想能夠說,“如果我指定了一條規則,請x.my-domain.com遵循該規則。否則,將其委託給鏈(在我的情況下委託給 Google DNS)。”

我不知道如何用谷歌解決這個問題,因為我不太清楚術語,而且因為我是個菜鳥,所以我不知道從哪裡開始自己修復它。我所要求的可能嗎?任何有關我如何實現此行為或搜尋它的幫助,將不勝感激。謝謝!

答案1

問題是您將 Bill 配置為對整個example.com.

因此,您必須將本機綁定配置為不僅保存內部 DNS 記錄,還保存example.com.

或者,不要讓 Bind 為example.com您保留 example.com 的子網域供您內部使用,而是讓您的內部 DNS 僅對此具有權威。即建立一個名為home.example.com並使用的區域media.home.example.com。這樣,您的內部和公共 DNS 中就不會出現衝突的記錄。

相關內容