説明
unboundを通じて再帰的なクエリを実行できます。Unboundは、解決とレコードの検出(DNSKEY、RRSIG、NSEC、NSEC3)時にDNSSECをデフォルトで使用します。このunboundプラグインは、クライアントが要求していないレコードを削除します。Unboundの内部(RR)回答キャッシュは無効化されているので、cacheプラグインを使用することを検討できます。
Libunboundはオプション(オプションの一部)で設定できます。現在、デフォルトで以下が設定されています
msg-cache-size
、0に設定rrset-cache-size
、0に設定
このプラグインはサーバーブロックごとに1回のみ使用できます。
構文
unbound [FROM]
- FROMは、要求の解決と一致させるためのベースドメインです。指定していない場合、サーバーブロックからのゾーンが使用されます。
拡張構文を使用したさらに多くの機能
unbound [FROM] {
except IGNORED_NAMES...
option NAME VALUE
}
- 上述のFROM
except
内のIGNORED_NAMESは、解決から除外するドメインのスペースで区切られたリストです。option
を使用すると、一部のアンバウンドオプション(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プラグインはCライブラリであるlibunbound(3)に依存するため、これをコンパイルするにはCとcgoに依存します。CoreDNSを完全に静的にコンパイルできません。コンパイルには、libunboundソースコード(Debianではlibunbound-dev
)もインストールされている必要があります。
DNSSECの検証は(まだ)サポートされていません。トラストアンカーを設定するための(文書化された)方法もありません。
関連項目
Unboundとunbound.conf(5)に関する情報については、https://unbound.netを参照してください。libunboundの(cgo)goラッパーについては、https://github.com/miekg/unboundを参照してください。