16. メッセージ検証
この節では, メッセージ交換, リレー動作, DUID, IA_NA, IA_TA, IA_PD, DHCP オプション, RKAP 認証, IANA レジストリ, 規範的要件, 付録のオプション出現マトリクスを含む DHCPv6 に関する RFC 本文を保持する.
RFC 原文
16. メッセージ検証
この節では, どの種類のメッセージタイプでどのオプションが有効かを説明し,
クライアントまたはサーバが, そのメッセージでは無効な既知のオプションを
含むメッセージを受信した場合に何をすべきかを説明する. 例えば, IA option
は Information-request メッセージに現れてはならない.
クライアントとサーバは, その情報が受信者にとって有用であればそのような
メッセージから情報を抽出すること, またはそのようなメッセージを完全に
無視して単に破棄することのいずれかを MAY 選択する.
サーバが無効とみなすメッセージを受信した場合, Server Identifier option
(Section 21.3 を参照), Client Identifier option (Section 21.2 を参照)
(メッセージに含まれていた場合), および status UnspecFail を持つ
Status Code option (Section 21.13 を参照) を含む Reply メッセージ
(または適切な場合は Advertise メッセージ) を MAY 送信する.
クライアント, relay agent, サーバは, 未知のオプション (または未知の
enterprise-number 値を持つ vendor option のインスタンス) を含む
メッセージを MUST NOT 破棄する. これらのオプションは, 存在しないもの
として無視されるべきである. これは DHCP の将来の拡張を可能にするために
重要である.
クライアントまたはサーバは, 未知のメッセージタイプを持つ受信 DHCP
メッセージをすべて MUST 破棄する.
クライアントは multicast メッセージを SHOULD NOT 受け入れる.
サーバはクライアントからの unicast トラフィックを SHOULD NOT 受け入れる.
Server Unicast option (Section 21.12 を参照) および UseMulticast status
code (Section 21.13 を参照) は廃止された. したがって, クライアントは
もはやサーバの unicast アドレスへメッセージを送信したり, UseMulticast
status code を受信したりすべきではない. ただし, 以前に Server Unicast
option をサポートしていたサーバが, それをサポートしないように更新された
場合でも, 以前にクライアントへ Server Unicast option を送信していたなら,
unicast メッセージを受信し続けることを MAY 継続する. しかしこれは害を
及ぼさず, クライアントはいずれ multicast メッセージの送信へ戻る
(例えば lease の rebinding time に到達した後, またはクライアントが
再起動された後).
relay agent はクライアントからの unicast メッセージを SHOULD NOT
受け入れる.
注: 上記の multicast/unicast ルールは, この文書内の DHCP メッセージに
適用される. 他の文書および将来の文書で定義されるメッセージには,
異なるルールがある可能性がある.
16.1. Transaction ID の使用
"transaction-id" フィールドは, サーバ応答をクライアントメッセージと
対応付けるためにクライアントとサーバが使用する値を保持する. クライアント
は, 送信する各新規メッセージの transaction ID として使用するため,
容易に推測または予測できない乱数を SHOULD 生成する. クライアントが容易に
予測可能な transaction identifier を生成する場合, off-path intruder からの
特定の種類の攻撃に対してより脆弱になる可能性があることに注意. クライアント
は, メッセージの再送信で transaction ID を MUST 変更しない.
16.2. Solicit メッセージ
クライアントは, 受信した Solicit メッセージをすべて MUST 破棄する.
サーバは, Client Identifier option を含まない Solicit メッセージ, または
Server Identifier option を含む Solicit メッセージをすべて MUST 破棄する.
16.3. Advertise メッセージ
クライアントは, 次の条件のいずれかを満たす受信 Advertise メッセージを
すべて MUST 破棄する:
* メッセージが Server Identifier option を含まない (Section 21.3 を
参照).
* メッセージが Client Identifier option を含まない (Section 21.2 を
参照).
* Client Identifier option の内容がクライアントの DUID と一致しない.
* "transaction-id" フィールド値が, クライアントが Solicit メッセージで
使用した値と一致しない.
サーバと relay agent は, 受信した Advertise メッセージをすべて MUST
破棄する.
16.4. Request メッセージ
クライアントは, 受信した Request メッセージをすべて MUST 破棄する.
サーバは, 次の条件のいずれかを満たす受信 Request メッセージをすべて
MUST 破棄する:
* メッセージが Server Identifier option を含まない (Section 21.3 を
参照).
* Server Identifier option の内容がサーバの DUID と一致しない.
* メッセージが Client Identifier option を含まない (Section 21.2 を
参照).
16.5. Confirm メッセージ
クライアントは, 受信した Confirm メッセージをすべて MUST 破棄する.
サーバは, Client Identifier option (Section 21.2 を参照) を含まない
Confirm メッセージ, または Server Identifier option (Section 21.3 を参照)
を含む Confirm メッセージをすべて MUST 破棄する.
16.6. Renew メッセージ
クライアントは, 受信した Renew メッセージをすべて MUST 破棄する.
サーバは, 次の条件のいずれかを満たす受信 Renew メッセージをすべて MUST
破棄する:
* メッセージが Server Identifier option を含まない (Section 21.3 を
参照).
* Server Identifier option の内容がサーバの identifier と一致しない.
* メッセージが Client Identifier option を含まない (Section 21.2 を
参照).
16.7. Rebind メッセージ
クライアントは, 受信した Rebind メッセージをすべて MUST 破棄する.
サーバは, Client Identifier option (Section 21.2 を参照) を含まない
Rebind メッセージ, または Server Identifier option (Section 21.3 を参照)
を含む Rebind メッセージをすべて MUST 破棄する.
16.8. Decline メッセージ
クライアントは, 受信した Decline メッセージをすべて MUST 破棄する.
サーバは, 次の条件のいずれかを満たす受信 Decline メッセージをすべて
MUST 破棄する:
* メッセージが Server Identifier option を含まない (Section 21.3 を
参照).
* Server Identifier option の内容がサーバの identifier と一致しない.
* メッセージが Client Identifier option を含まない (Section 21.2 を
参照).
16.9. Release メッセージ
クライアントは, 受信した Release メッセージをすべて MUST 破棄する.
サーバは, 次の条件のいずれかを満たす受信 Release メッセージをすべて
MUST 破棄する:
* メッセージが Server Identifier option を含まない (Section 21.3 を
参照).
* Server Identifier option の内容がサーバの identifier と一致しない.
* メッセージが Client Identifier option を含まない (Section 21.2 を
参照).
16.10. Reply メッセージ
クライアントは, 次の条件のいずれかを満たす受信 Reply メッセージをすべて
MUST 破棄する:
* メッセージが Server Identifier option を含まない (Section 21.3 を
参照).
* メッセージ内の "transaction-id" フィールドが, 元のメッセージで使用
された値と一致しない.
クライアントが元のメッセージに Client Identifier option (Section 21.2 を
参照) を含めた場合, Reply メッセージは Client Identifier option を MUST
含み, Client Identifier option の内容はクライアントの DUID と MUST
一致する. クライアントが元のメッセージに Client Identifier option を
含めなかった場合, Reply メッセージは Client Identifier option を MUST NOT
含む.
サーバと relay agent は, 受信した Reply メッセージをすべて MUST 破棄する.
16.11. Reconfigure メッセージ
サーバと relay agent は, 受信した Reconfigure メッセージをすべて MUST
破棄する.
クライアントは, 次の条件のいずれかを満たす Reconfigure メッセージをすべて
MUST 破棄する:
* メッセージがクライアントへ unicast されていない.
* メッセージが Server Identifier option を含まない (Section 21.3 を
参照).
* メッセージが, クライアントの DUID を含む Client Identifier option
(Section 21.2 を参照) を含まない.
* メッセージが Reconfigure Message option を含まない (Section 21.19 を
参照).
* Reconfigure Message option の msg-type が有効な値ではない.
* メッセージが認証 (RKAP など; Section 20.4 を参照) を含まない, または
authentication validation に失敗する.
16.12. Information-request メッセージ
クライアントは, 受信した Information-request メッセージをすべて MUST
破棄する.
サーバは, 次の条件のいずれかを満たす受信 Information-request メッセージを
すべて MUST 破棄する:
* メッセージが Server Identifier option (Section 21.3 を参照) を含み,
その option 内の DUID がサーバの DUID と一致しない.
* メッセージが IA option を含む.
16.13. Relay-forward メッセージ
クライアントは, 受信した Relay-forward メッセージをすべて MUST 破棄する.
16.14. Relay-reply メッセージ
クライアントとサーバは, 受信した Relay-reply メッセージをすべて MUST
破棄する.