4.1. Syntax (構文)
4.1 Syntax (構文)
CAA RR はタグと値の対からなる単一のプロパティを含みます. FQDN には複数の CAA RR を関連付けてもよく, 与えられたプロパティタグはそれらの RR 全体で複数回指定してもよいです.
CAA RR の RDATA セクションには1つのプロパティが含まれます. プロパティは次のとおりです.
+0-1-2-3-4-5-6-7-|0-1-2-3-4-5-6-7-|
| Flags | Tag Length = n |
+----------------|----------------+...+---------------+
| Tag char 0 | Tag char 1 |...| Tag char n-1 |
+----------------|----------------+...+---------------+
+----------------|----------------+.....+----------------+
| Value byte 0 | Value byte 1 |.....| Value byte m-1 |
+----------------|----------------+.....+----------------+
ここで n は Tag Length フィールドで指定される長さ, m は Value フィールドの残りオクテット数です. 関係は (m = d - n - 2) であり, d は RDATA セクションの長さです.
フィールドの定義は次のとおりです.
Flags (フラグ): 次のフィールドを含む1オクテット.
- ビット 0, Issuer Critical Flag (発行者クリティカルフラグ): 値が "1" のとき, プロパティはクリティカルです. その FQDN の関連 RRset に未知または未対応のプロパティタグに対する CAA クリティカルプロパティが含まれる場合, CA はいかなる FQDN に対しても証明書を発行してはなりません.
[RFC1035] の慣例によれば, ビット 0 は最上位ビット, ビット 7 は最下位ビットです. したがって Flags 値 1 はビット 7 がセットされ, 値 128 はビット 0 がセットされたことを意味します.
その他のビット位置は将来の利用のために予約されています.
将来の CAA 拡張との互換性のため, 本版の CAA 仕様に適合する DNS レコードは, 予約フラグビットをすべてクリア ("0") しなければなりません. CAA レコードを解釈するアプリケーションは, すべての予約フラグビットの値を無視しなければなりません.
Tag Length (タグ長): タグ長をオクテット単位で指定する符号なし整数を含む1オクテット. タグ長は少なくとも 1 でなければなりません.
Tag (タグ): プロパティ識別子, すなわち ASCII 文字の列.
タグには ASCII の "a" から "z", "A" から "Z", 数字 0 から 9 を含めてもよいです. タグにそれ以外の文字を含めてはなりません. タグの照合は大文字小文字を区別しません.
IANA 登録のために提出するタグには, (小文字の) ASCII "a" から "z" と数字 0 から 9 以外の文字を含めてはなりません.
Value (値): プロパティ値を表すオクテット列. プロパティ値はバイナリ値として符号化され, サブ形式を用いてもよいです.
Value フィールドの長さは, 囲む RDATA セクションの残り長さとして暗黙的に指定されます.
4.1.1 正準プレゼンテーション形式
CAA レコードの正準プレゼンテーション形式は次のとおりです.
CAA <flags> <tag> <value>
ここで:
Flags (フラグ): 0 から 255 の符号なし整数.
Tag (タグ): 小文字の ASCII 英字と数字からなる非ゼロ長の列.
Value (値): Value フィールドを, (1) 内部に空白のない連続文字, または (2) 引用符付き文字列として表現します. [RFC1035] セクション 5.1 の <character-string> 形式を参照してくださいが, Value フィールドに長さバイトはなく, 255 文字に限定されないことに注意してください.