描述
透過 unbound 您可以執行遞迴查詢。Unbound 在解析時預設會使用 DNSSEC,並且會將這些記錄(DNSKEY、RRSIG、NSEC 和 NSEC3)傳回給客戶端。當客戶端沒有要求時,unbound 外掛程式會移除這些記錄。Unbound 的內部 (RR) 回答快取已停用,因此您可能需要使用 cache 外掛程式。
Libunbound 可以透過(部分)選項進行配置,目前預設設定如下:
msg-cache-size
,設定為 0rrset-cache-size
,設定為 0
此外掛程式每個伺服器區塊只能使用一次。
語法
unbound [FROM]
- FROM 是要比對以進行解析的請求的基本網域。如果未指定,則會使用伺服器區塊中的區域。
使用擴展語法可使用更多功能
unbound [FROM] {
except IGNORED_NAMES...
option NAME VALUE
}
- FROM 如上所述。
except
中的 IGNORED_NAMES 是要排除解析的網域,以空格分隔。option
允許設定某些 unbound 選項(請參閱 unbound.conf(5)),這可以多次指定。
指標
如果啟用監控(透過 prometheus 指令),則會匯出以下指標:
coredns_unbound_request_duration_seconds{server}
- 每個查詢的持續時間。coredns_unbound_response_rcode_count_total{server, rcode}
- RCODE 的計數。
server
標籤表示哪個伺服器處理了請求,請參閱 metrics 外掛程式以了解詳細資訊。
範例
解析所有網域的查詢
. {
unbound
}
解析 example.org 內的所有查詢。
. {
unbound example.org
}
或
example.org {
unbound
}
解析所有內容,但排除 example.org(或以下)的查詢
. {
unbound {
except example.org
}
}
透過設定選項啟用 DNS 查詢名稱最小化
. {
unbound {
option qname-minimisation yes
}
}
錯誤
unbound 外掛程式依賴於 libunbound(3),這是一個 C 程式庫,要編譯它,您必須依賴 C 和 cgo。您無法完全靜態地編譯 CoreDNS。對於編譯,您還需要安裝 libunbound 原始碼(Debian 上的 libunbound-dev
)。
目前尚不支援 DNSSEC 驗證。也沒有(有文檔記錄的)配置信任錨點的方法。
另請參閱
有關 Unbound 和 unbound.conf(5) 的資訊,請參閱 https://unbound.net。有關 libunbound 的 (cgo) Go 包裝器,請參閱 https://github.com/miekg/unbound。