4.6. PIM Assert Messages (PIM アサートメッセージ)
PIM Assert メカニズムは, イーサネットなどのマルチアクセスネットワーク上で一意の転送者を選出するために使用されます。複数の上流ルーターが同じ LAN に同じマルチキャストトラフィックを転送している場合, Assert メカニズムは 1 つのルーターのみが実際に転送することを保証し, 重複パケットを回避します。
Assert のトリガー条件
Assert は次の状況でトリガーされます:
- ルーターが非 RPF インターフェースでマルチキャストデータパケットを受信する
- これは LAN 上の別のルーターも同じトラフィックを転送していることを示します
4.6.1. (S,G) Assert Message State Machine ((S,G) Assert メッセージ状態マシン)
各インターフェースは (S,G) Assert 状態を維持して, そのインターフェース上の転送者を追跡します。
Assert 状態:
- NoInfo (NI): Assert アクティビティなし
- I am Assert Winner (W): このルーターが Assert に勝利し, 転送を担当
- I am Assert Loser (L): このルーターが Assert に敗北し, 転送すべきでない
状態遷移 (簡略版):
NoInfo 状態:
- データパケットを受信 (非 RPF インターフェース) → Assert を送信, Winner または Loser に入る
- Assert を受信 (より良いメトリック) → Loser に入る
Winner 状態:
- 定期的に Assert メッセージを送信して更新
- Assert を受信 (より良いメトリック) → Loser に入る
- Assert Timer 期限切れ → NoInfo に入る
Loser 状態:
- トラフィックを転送しない
- Assert を受信 (より悪いメトリック) → Assert を送信, Winner に入る可能性あり
- Assert Timer 期限切れ → NoInfo に入る
4.6.2. (,G) Assert Message State Machine ((,G) Assert メッセージ状態マシン)
(*,G) Assert は共有ツリー上の転送者選出を処理し, メカニズムは (S,G) Assert と似ています。
主な違い:
- ソースへのパスメトリックではなく RP へのパスメトリックを使用します
- 特定の (S,G) Assert によってオーバーライドされる可能性があります
4.6.3. Assert Metrics (Assert メトリック)
Assert の勝者は Assert メトリックに基づいて選出されます。メトリック比較の順序は次のとおりです:
-
優先度比較:
- (S,G) Assert は (*,G) Assert より優先されます
- (S,G) 状態を持つルーターが優先されます
-
ルートメトリック比較:
- ソース (または RP) への管理距離 (小さいほど良い)
- ソース (または RP) へのメトリック (小さいほど良い)
-
IP アドレス比較:
- 上記すべてが同じ場合, より大きい IP アドレスを持つルーターを選択します
メトリック比較の例:
Router A: Admin Distance = 110, Metric = 10, IP = 10.1.1.1
Router B: Admin Distance = 110, Metric = 20, IP = 10.1.1.2
Router A が勝利 (メトリックが小さい)
4.6.4. AssertCancel Messages (AssertCancel メッセージ)
AssertCancel は無限大メトリックを持つ特別な Assert メッセージです。次の目的で使用されます:
- このルーターがもはや転送者であることを主張しないことを他のルーターに通知します
- 新しい Assert 選出をトリガーします
AssertCancel を送信するシナリオ:
- RPF インターフェースが変更される
- ルートメトリックが大幅に変化する
- インターフェース状態が変化する
4.6.5. Assert State Macros (Assert 状態マクロ)
PIM は Assert 状態を要約するために複数のマクロを使用します:
- lost_assert(S,G,I): インターフェース I で (S,G) Assert に敗北したかどうか
- lost_assert(*,G,I): インターフェース I で (*,G) Assert に敗北したかどうか
- AssertWinner(S,G,I): インターフェース I での (S,G) Assert 勝者アドレス
- AssertWinnerMetric(S,G,I): 勝者の Assert メトリック
これらのマクロは転送決定と送信インターフェースリストの計算に使用されます。
注記
詳細な Assert 状態マシン図, メトリック比較アルゴリズム, およびタイマー値については, RFC 7761 のセクション 4.6 の完全な仕様を参照してください。