![DNS:將子網域的解析委託給另一個名稱伺服器](https://rvso.com/image/1502893/DNS%EF%BC%9A%E5%B0%87%E5%AD%90%E7%B6%B2%E5%9F%9F%E7%9A%84%E8%A7%A3%E6%9E%90%E5%A7%94%E8%A8%97%E7%B5%A6%E5%8F%A6%E4%B8%80%E5%80%8B%E5%90%8D%E7%A8%B1%E4%BC%BA%E6%9C%8D%E5%99%A8.png)
我正在家裡設定一個 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.com
Google DNS,並且只提供ns1.my-domain.com
、ns2.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 中就不會出現衝突的記錄。