Bind

遞歸轉發綁定 DNS 伺服器未從記憶體中應答

  • January 31, 2016

問題陳述

我有一個幾乎按預期執行的綁定記憶體和轉發伺服器。所有查詢都被轉發,它們的 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。

根本原因

只有一杯咖啡在場。我以為我已經切換回本地解析器,但我沒有。道歉,虛驚一場。

引用自:https://serverfault.com/questions/753050