Bind
遞歸轉發綁定 DNS 伺服器未從記憶體中應答
問題陳述
我有一個幾乎按預期執行的綁定記憶體和轉發伺服器。所有查詢都被轉發,它們的 TTL 被記憶體。乍一看,一切似乎都很正常,直到我看到響應時間從未低於我的 VPN 的 150 毫秒。
執行 tcpdump 後,我發現即使 bind 清楚地知道 TTL 大於 0(在本例中為 14000 的 TTL),解析器仍在轉發每個請求。響應的 TTL仍按預期遞減,但無論記憶體記錄中剩餘的 TTL 如何,每個請求仍會向上游轉發。
如果我禁用轉發,此行為將停止並且記憶體按預期工作。
版本
Bind 9.9.4-29 (Redhat forked) OS: CentOS 7
配置的相關部分
allow-query { local; }; recursion yes; allow-recursion { local; }; max-cache-size unlimited; stacksize unlimited; datasize unlimited; zone "." IN { type forward; forward first; forwarders { 192.168.120.3; 192.168.120.2; }; };
我都試過了
forward first;
,forward only;
這個解析器幾乎沒有負載,有幾 GB 的可用記憶體。在任何給定時間,它都不會記憶體超過幾百條記錄。我是否可能對綁定中的行為有錯誤的期望?使用 Unbound 我沒有看到這種行為,但出於其他原因我想切換回 bind。
解決了
鍵盤和椅子之間存在問題。
什麼地方出了錯
在我的故障排除中,我在本地和上游解析器之間來回切換我的 /etc/resolv.conf。
根本原因
只有一杯咖啡在場。我以為我已經切換回本地解析器,但我沒有。道歉,虛驚一場。