説明
recordsプラグインは、設定ファイルにインラインで指定されたゾーンデータをサービスするのに役立ちます。hostsプラグインとは異なり、このプラグインはすべてのレコードタイプをサポートします。レコードは、RFC 1035で指定されているテキスト表現で指定する必要があります。レコードにTTLが指定されていない場合、デフォルトのTTLは3600秒とみなされます。
否定応答の場合、SOAレコードが応答に含まれる必要があります。これは、SOAレコードがデータに含まれている場合にのみ行われます。
recordsプラグインは、返す正しいレコードを見つけるための単純なアルゴリズムを使用します。これは、次のような高度な機能の一部が現在利用できないことを意味します。
- DNSSEC。RRSIGレコードが追加された場合、クライアントがそれらを処理できる場合でも、応答で返されません。署名された応答が必要な場合は、このプラグインと組み合わせてdnssecプラグインを使用してください。
- ワイルドカード(例:
*.example.org
)はワイルドカードレコードとして検出されません。
より堅牢な実装が必要な場合は、おそらくfileプラグインを使用することをお勧めします。
hostプラグインは、plugin.cfg
でrecordsよりも前に構成されていることに注意してください。つまり、両方がサーバーブロックで指定されている場合、hostプラグインが優先されます。
このプラグインは、サーバーブロックごとに1回のみ使用できます。
構文
records [ZONES...] {
[INLINE]
}
- ZONES 権威を持つゾーン。空の場合、構成ブロックからのゾーンが使用されます。
- INLINE サービスされるリソースレコード。これらは、レコードのテキスト表現(RFC 1035で指定されているとおり)として指定する必要があります。以下の例を参照してください。各レコードは1行で記述する必要があります。
INLINEのドメイン名が完全修飾されていない場合、各ZONESがオリジンとして使用され、名前に追加されます。
例
example.orgのMXレコードをサービスし、かつMXサーバーに名前mx1
とアドレス127.0.0.1を付与します。
example.org {
records {
@ 60 IN SOA ns.icann.org. noc.dns.icann.org. 2020091001 7200 3600 1209600 3600
@ 60 IN MX 10 mx1
mx1 60 IN A 127.0.0.1
}
}
それぞれにMXレコードを持つ2つのゾーンを作成します。SOAレコードが指定されていないことに注意してください。また、TXTレコードのデータ内の;
を引用符で囲んでパーサーを満足させる必要があることに注意してください。(;
はRFC 1035ゾーンファイル内のコメントであり、その後のすべては無視されるため、ここで引用符で囲む必要があります。)
. {
records example.org example.net {
mx1 IN MX 10 mx1
dkim._domainkey.relay 3600 IN TXT "v=DKIM1\; h=sha256\; k=rsa\; s=email\; p=MIIBIj ..."
}
}
バグ
DNSSECもワイルドカードも実装されていません。ルックアップアルゴリズムは非常に基本的です。将来の拡張機能では、fileプラグインのコードを利用して、DNS仕様により準拠させることができます。
参考
アドレスレコードのみを返す必要がある場合は、hostsプラグインのドキュメントを参照してください。これらのインラインレコードの内容が変更されたときに自動的にリロードするには、reloadプラグインを使用してください。dnssecプラグインを使用して、応答に署名することができます。このプラグインで使用する必要があるテキスト表現については、RFC 1035および新しいレコードタイプを定義する以降のRFCを参照してください。RFC 3597(不明なDNSリソースレコードの処理)構文もサポートされていることに注意してください。
より完全な機能を備えたDNS実装(DNSSECを含む)には、fileプラグインを使用してください。