dnssec

ソース

dnssec は、提供されるデータのオンプレミスでの DNSSEC 署名を有効にします。

説明

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
    }
}