
我已將綁定配置為捕獲所有域並為它們返回相同的 IP(A 記錄)。這是針對可能涉及數千個網域的網域停車服務。
將 example.com 的名稱伺服器指向我的名稱伺服器後,我正確地顯示了停放的託管頁面。
唯一的問題是名稱伺服器查找不起作用。如果我dig NS example.com
只是取回 SOA 詳細信息,而不是 NS 名稱。雖然dig example.com
確實回傳了正確的A記錄。
我花了幾個小時嘗試各種事情,非常感謝對此的幫助。
它的配置:
named.conf.local
:
zone "." {
type master;
file "/etc/bind/zones/db.catchall";
};
db.catchall
:
$TTL 604800
@ IN SOA ns1.mynameserver.com. hostmaster.mynameserver.com. (
26 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
IN NS ip.addr.for.ns1
IN NS ip.addr.for.ns2
* IN A ip.addr.for.hosting
答案1
觀察到的行為是預期的並且對於您所配置的內容是正確的。
即,您有一個名稱伺服器,該名稱伺服器聲稱對根區域具有權威性,並且具有與A
以下任何內容相符的通配符記錄。NS
除了根區域之外,它沒有記錄。
但是,對於應該對許多不同區域具有權威性的伺服器來說,您所配置的內容實際上並不正確。如果example.com
委託給您的名稱伺服器,則您的名稱伺服器應該具有此特定區域(至少具有SOA
該NS
區域的頂點),而不僅僅是某些父區域(例如.
)。
此配置的錯誤包括對 查詢的回應NS
(即,它將聲稱沒有 的名稱伺服器example.com
)以及所有否定回應(否定回應將SOA
針對錯誤的區域)。
如果您想以盡可能正確的行為來執行此操作,但不指定所有區域(這對於正確性來說是最好的),我認為您會想要研究一些高度可編寫腳本的名稱伺服器軟體,它可以回答,就好像它具有匹配某種模式的相關區域(也許基於公共後綴列表?)。