説明
dnssec を使用すると、DNSSEC を行わない (またはできない) すべての応答がオンザフライで署名されます。認定された否定の存在は NSEC の虚偽報告で実装されます。アルゴリズムとしての ECDSA は、より小さな署名をもたらすため (RSA と比較して) 推奨されます。NSEC3 はサポートされていません。
このプラグインはサーバーブロックごとに 1 回のみ使用できます。
構文
dnssec [ZONES... ] {
key file KEY...
cache_capacity CAPACITY
}
署名行動は指定されたキーによって異なります。SEP ビットが設定された少なくとも 1 つのキーと SEP ビットが設定されていない少なくとも 1 つのキーを複数指定した場合、署名は分割 ZSK/KSK モードで行われます。DNSKEY レコードは、SEP ビットが設定されたすべてのキーによって署名されます。その他のすべてのレコードは、SEP ビットが設定されていないすべてのキーによって署名されます。
他のすべてのケースでは、指定された各キーは CSK (共通署名キー) として扱われ、ZSK/KSK の分割を無視します。すべての署名操作はオンラインで行われます。認定された否定の存在は NSEC の虚偽報告で実装されます。アルゴリズムとしての ECDSA は、より小さな署名をもたらすため (RSA と比較して) 推奨されます。NSEC3 はサポートされていません。
dnssec プラグインは署名する RRSets の元の TTL を確認できないため、常に 3600 秒の値を使用します。
同じゾーンで複数の dnssec プラグインが指定されている場合、最後に指定されたプラグインが使用されます。
-
ZONES 署名する必要があるゾーン。空の場合、構成ブロックのゾーンが使用されます。
-
キーファイル
は、KEY ファイルはディスクから読み取る必要があることを示します。複数のキーが指定されている場合、RRsets はすべてのキーで署名されます。キーの生成はdnssec-keygen
で行うことができます:dnssec-keygen -a ECDSAP256SHA256 <zonename>
。ゾーン A に作成されたキーはゾーン B で安全に使用できます。キーファイルの名前は、次のいずれかの形式で指定できます。p>- 生成されたキーのベース名
Kexample.org+013+45330
- 生成された公開キー
Kexample.org+013+45330.key
- 生成された秘密キー
Kexample.org+013+45330.private
- 生成されたキーのベース名
-
cache_capacity
はキャッシュの容量を示します。dnssec プラグインは RRSIG を格納するためにキャッシュを使用します。CAPACITY のデフォルトは 10000 です。
メトリクス
監視が有効になっている場合 (prometheus プラグイン経由)、次のメトリクスがエクスポートされます。
coredns_dnssec_cache_entries{server, type}
- キャッシュ内の合計要素、タイプは「シグネチャ」です。coredns_dnssec_cache_hits_total{server}
- キャッシュヒットのカウンター。coredns_dnssec_cache_misses_total{server}
- キャッシュミス のカウンター。
ラベル server
は要求を処理するサーバーを示します。詳細については、metrics プラグインを参照してください。
例
キー「Kexample.org.+013+45330.key」を使用して example.org
の応答に署名します。
example.org {
dnssec {
key file Kexample.org.+013+45330
}
whoami
}
キー「Kcluster.local+013+45129.key」を使用して Kubernetes ゾーンの応答に署名します。
cluster.local {
kubernetes
dnssec {
key file Kcluster.local+013+45129
}
}