在 BIND 中遞歸前向一個區域
我有一個設置了 BIND 的 VPS。它可以很好地工作幾個月。
最近我想設置另一個 DNS 程序來管理
foo.example.org
這個 VPS 上的子域。我在 dns.he.net 中設置了這些:foo.example.org。在 NS vps.exmaple.org 中。 vps.example.org。在一個 xx.xx.xx.xx
由於 BIND 偵聽 53/udp,因此我將其配置為偵聽埠 5353 和
named.conf
:區域“foo.example.org”{ 向前輸入; 轉發器{ 127.0.0.1 埠 5353; }; };
我認為此配置會將所有查詢轉發
*.foo.example.org
到第二個 DNS 程序。但是當我測試它…在 VPS 本身上:
dig bar.foo.example.org @127.0.0.1 -p5353
效果很好。
dig bar.foo.example.org @127.0.0.1
效果很好。在我的筆記型電腦上:
dig bar.foo.example.org @vps.example.org -p5353
效果很好。
dig bar.foo.example.org @vps.example.org
效果很好。
dig foo.example.org @8.8.8.8 -t ns
效果很好。
dig bar.foo.example.org @8.8.8.8
返回SERVFAIL
。將 8.8.8.8 替換為其他 DNS 伺服器得到相同的結果,並且 TTL 沒有任何問題。
有人知道我的配置有什麼問題嗎?這是更多資訊:
其他 BIND9 配置:
選項 { 目錄“/var/cache/bind”; 通知是; 允許轉移 { xx.xx.xx.xx; }; dnssec-啟用是; dnssec 驗證自動; auth-nxdomain 沒有;# 符合 RFC1035 聽 V6 { 任何; }; 遞歸是的; 允許遞歸{任何;}; };
而且,具體來說,“第二個 DNS 程序”是 iodine,它通過 DNS 查詢建立 IP 隧道。我按照本指南在 BIND9 後面設置它:http: //dev.kryo.se/iodine/wiki/TipsAndTricks#RunningiodinebehindBIND9
PS:我嘗試了另一台設置了 dnsmasq 的伺服器並
server=/foo.example.org/127.0.0.1#5353
用於測試。仍然會出錯。有人可以幫忙嗎?提前致謝。
首先,我建議您使用 5353 以外的其他埠作為 DNS 伺服器的備用埠。5353 與 zeroconf/mDNS 衝突。
它僅在您用作遞歸解析器時才起作用的原因
vps.example.org
是因為這是唯一被告知需要轉到埠 5353 上的特殊 DNS 伺服器才能找到的遞歸伺服器foo.example.org
。因為您不能在
NS
記錄中指定埠號,所以通常不可能在 53 以外的埠上擁有權威伺服器。世界上所有的遞歸名稱伺服器都會找到相關域的 NS 記錄,並且將嘗試在埠 53 上聯繫該伺服器。如果您希望它們使用不同的埠,則必須為它們中的每一個配置指向埠 5353 的轉發區域。順便說一句,不清楚為什麼要
foo.example.org
在不同埠(或 IP 地址)上的單獨名稱伺服器上託管。為什麼不將該foo.example.org
區域添加到服務的同一個權威名稱伺服器example.org
?