15. Message Validation (メッセージ検証)
15. Message Validation (メッセージ検証)
クライアントとサーバーは、受信したメッセージに表示が許可されていないオプションを含むメッセージを破棄する必要があります。たとえば、IAオプションは情報要求メッセージに表示することはできません。情報が受信者にとって有用である場合、クライアントとサーバーは、そのようなメッセージから情報を抽出することを選択できます。
サーバーは、ユニキャスト宛先アドレスで受信したソリシット、確認、リバド、または情報要求メッセージを破棄する必要があります。
DHCP認証に基づくメッセージ検証は、セクション21.4.2で説明されています。
サーバーが、含まれるべきでないオプション (たとえば、IAオプションを含む情報要求メッセージ) を含むメッセージ、含まれるべきオプションが欠落しているメッセージ、またはその他の無効なメッセージを受信した場合、サーバーは、サーバー識別子オプション、クライアント識別子オプション (メッセージに含まれている場合)、およびステータスUnSpecFailのステータスコードオプションを含むリプライ (または適切なアドバタイズ) を送信する場合があります。
15.1. Use of Transaction IDs (トランザクションIDの使用)
「トランザクションID」フィールドは、クライアントとサーバーがクライアントメッセージへのサーバー応答を同期するために使用する値を保持します。クライアントは、送信する各新しいメッセージのトランザクションIDとして使用する、簡単に推測または予測できない乱数を生成する必要があります。クライアントが簡単に予測可能なトランザクション識別子を生成する場合、パス外侵入者からの特定の種類の攻撃に対してより脆弱になる可能性があることに注意してください。クライアントは、メッセージの再送信でトランザクションIDを変更してはなりません。
15.2. Solicit Message (ソリシットメッセージ)
クライアントは、受信したソリシットメッセージを破棄する必要があります。
サーバーは、クライアント識別子オプションを含まない、またはサーバー識別子オプションを含むソリシットメッセージを破棄する必要があります。
15.3. Advertise Message (アドバタイズメッセージ)
クライアントは、以下のいずれかの条件を満たす受信したアドバタイズメッセージを破棄する必要があります:
-
メッセージにサーバー識別子オプションが含まれていない。
-
メッセージにクライアント識別子オプションが含まれていない。
-
クライアント識別子オプションの内容がクライアントのDUIDと一致しない。
-
「トランザクションID」フィールド値が、クライアントがソリシットメッセージで使用した値と一致しない。
サーバーとリレーエージェントは、受信したアドバタイズメッセージを破棄する必要があります。
15.4. Request Message (リクエストメッセージ)
クライアントは、受信したリクエストメッセージを破棄する必要があります。
サーバーは、以下のいずれかの条件を満たす受信したリクエストメッセージを破棄する必要があります:
-
メッセージにサーバー識別子オプションが含まれていない。
-
サーバー識別子オプションの内容がサーバーのDUIDと一致しない。
-
メッセージにクライアント識別子オプションが含まれていない。
15.5. Confirm Message (確認メッセージ)
クライアントは、受信した確認メッセージを破棄する必要があります。
サーバーは、クライアント識別子オプションを含まない、またはサーバー識別子オプションを含む受信した確認メッセージを破棄する必要があります。
15.6. Renew Message (更新メッセージ)
クライアントは、受信した更新メッセージを破棄する必要があります。
サーバーは、以下のいずれかの条件を満たす受信した更新メッセージを破棄する必要があります:
-
メッセージにサーバー識別子オプションが含まれていない。
-
サーバー識別子オプションの内容がサーバーの識別子と一致しない。
-
メッセージにクライアント識別子オプションが含まれていない。
15.7. Rebind Message (リバドメッセージ)
クライアントは、受信したリバドメッセージを破棄する必要があります。
サーバーは、クライアント識別子オプションを含まない、またはサーバー識別子オプションを含む受信したリバドメッセージを破棄する必要があります。
15.8. Decline Messages (拒否メッセージ)
クライアントは、受信した拒否メッセージを破棄する必要があります。
サーバーは、以下のいずれかの条件を満たす受信した拒否メッセージを破棄する必要があります:
-
メッセージにサーバー識別子オプションが含まれていない。
-
サーバー識別子オプションの内容がサーバーの識別子と一致しない。
-
メッセージにクライアント識別子オプションが含まれていない。
15.9. Release Message (リリースメッセージ)
クライアントは、受信したリリースメッセージを破棄する必要があります。
サーバーは、以下のいずれかの条件を満たす受信したリリースメッセージを破棄する必要があります:
-
メッセージにサーバー識別子オプションが含まれていない。
-
サーバー識別子オプションの内容がサーバーの識別子と一致しない。
-
メッセージにクライアント識別子オプションが含まれていない。
15.10. Reply Message (リプライメッセージ)
クライアントは、以下のいずれかの条件を満たす受信したリプライメッセージを破棄する必要があります:
-
メッセージにサーバー識別子オプションが含まれていない。
-
メッセージ内の「トランザクションID」フィールドが、元のメッセージで使用された値と一致しない。
クライアントが元のメッセージにクライアント識別子オプションを含めた場合、リプライメッセージにはクライアント識別子オプションを含める必要があり、クライアント識別子オプションの内容はクライアントのDUIDと一致する必要があります。または、クライアントが元のメッセージにクライアント識別子オプションを含めなかった場合、リプライメッセージにはクライアント識別子オプションを含めてはなりません。
サーバーとリレーエージェントは、受信したリプライメッセージを破棄する必要があります。
15.11. Reconfigure Message (再構成メッセージ)
サーバーとリレーエージェントは、受信した再構成メッセージを破棄する必要があります。
クライアントは、以下のいずれかの条件を満たす再構成メッセージを破棄する必要があります:
-
メッセージがクライアントにユニキャストされなかった。
-
メッセージにサーバー識別子オプションが含まれていない。
-
メッセージにクライアントのDUIDを含むクライアント識別子オプションが含まれていない。
-
メッセージに再構成メッセージオプションが含まれておらず、メッセージタイプが有効な値である必要がある。
-
メッセージにIAオプションが含まれており、再構成メッセージオプション内のメッセージタイプがINFORMATION-REQUESTである。
-
メッセージにDHCP認証が含まれていない:
-
メッセージに認証オプションが含まれていない。
-
メッセージがクライアントによって実行される認証検証に合格しない。
-
15.12. Information-request Message (情報要求メッセージ)
クライアントは、受信した情報要求メッセージを破棄する必要があります。
サーバーは、以下のいずれかの条件を満たす受信した情報要求メッセージを破棄する必要があります:
-
メッセージにサーバー識別子オプションが含まれており、オプション内のDUIDがサーバーのDUIDと一致しない。
-
メッセージにIAオプションが含まれている。
15.13. Relay-forward Message (リレーフォワードメッセージ)
クライアントは、受信したリレーフォワードメッセージを破棄する必要があります。
15.14. Relay-reply Message (リレーリプライメッセージ)
クライアントとサーバーは、受信したリレーリプライメッセージを破棄する必要があります。