未綁定

原始碼 首頁

由 CoreDNS 維護

啟用方式
unbound:github.com/coredns/unbound

unbound - 使用 libunbound 執行遞迴查詢。

描述

透過 unbound 您可以執行遞迴查詢。Unbound 在解析時預設會使用 DNSSEC,並且會將這些記錄(DNSKEY、RRSIG、NSEC 和 NSEC3)傳回給客戶端。當客戶端沒有要求時,unbound 外掛程式會移除這些記錄。Unbound 的內部 (RR) 回答快取已停用,因此您可能需要使用 cache 外掛程式。

Libunbound 可以透過(部分)選項進行配置,目前預設設定如下:

  • msg-cache-size,設定為 0
  • rrset-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