Appearance
マルチキャスト
マルチキャストアドレス一覧
IPv4 Well-known マルチキャストアドレス
| アドレス | 用途 | プロトコル |
|---|---|---|
| 224.0.0.1 | All Hosts(そのセグメントの全ホスト) | 全般 |
| 224.0.0.2 | All Routers(そのセグメントの全ルータ) | 全般 |
| 224.0.0.5 | All OSPF Routers | OSPFv2 |
| 224.0.0.6 | All OSPF DR Routers | OSPFv2 |
| 224.0.0.9 | All RIP Routers | RIPv2 |
| 224.0.0.10 | All EIGRP Routers | EIGRP |
| 224.0.0.13 | All PIM Routers | PIM |
| 224.0.0.18 | VRRP | VRRP |
| 224.0.0.22 | IGMP v3 | IGMPv3 |
| 224.0.0.102 | HSRP v2 | HSRPv2 |
| 224.0.1.1 | NTP | NTP |
| 232.0.0.0/8 | SSM 専用範囲 | PIM-SSM |
| 239.0.0.0/8 | Admin Scope(プライベート用) | 組織内限定 |
覚え方: .5 = OSPF全員、.6 = OSPF DR向け、.9 = RIP、.10 = EIGRP、.13 = PIM、.18 = VRRP、.102 = HSRPv2
HSRPのアドレス詳細
| バージョン | マルチキャストアドレス | UDP/ポート |
|---|---|---|
| HSRPv1 | 224.0.0.2 | UDP 1985 |
| HSRPv2 | 224.0.0.102 | UDP 1985 |
覚え方: HSRPv1 = All Routersアドレス(224.0.0.2)、HSRPv2 = 専用アドレス(224.0.0.102)
VRRPのアドレス詳細
| プロトコル | マルチキャストアドレス | 仮想MACアドレス |
|---|---|---|
| VRRP | 224.0.0.18 | 00-00-5E-00-01- |
重要: VRRP の仮想MAC は 00-00-5E-00-01-XX(XX = グループID)。HSRP とは異なる。
IPv6 マルチキャストアドレス(OSPFv3 / EIGRPv6)
| アドレス | 用途 |
|---|---|
| FF02::1 | All Nodes |
| FF02::2 | All Routers |
| FF02::5 | All OSPFv3 Routers |
| FF02::6 | All OSPFv3 DR Routers |
| FF02::A | All EIGRPv6 Routers |
| FF02:😄 | All PIM Routers |
マルチキャストの基本概念
| 項目 | 内容 |
|---|---|
| 目的 | 1対多の通信を効率化(全ホストへのコピーを最小化) |
| 経路制御 | RPF (Reverse Path Forwarding) チェックで逆流を防ぐ |
| 受信者管理 | IGMP (Internet Group Management Protocol) |
| ルータ間管理 | PIM (Protocol Independent Multicast) |
RPF(Reverse Path Forwarding)チェック
マルチキャストパケットがソースへの最短経路にあるIFから届いた場合のみ転送する仕組み。
| チェック | 動作 |
|---|---|
| RPFチェック成功 | 下流IFへ転送する |
| RPFチェック失敗 | パケットを廃棄する(ループ防止) |
重要: RPFはユニキャストルーティングテーブルを参照する。ソースへの経路がなければRPFチェック失敗 → 廃棄。
マルチキャストのツリー種別
| ツリー種別 | 説明 | 使われるプロトコル |
|---|---|---|
| SPT (Shortest Path Tree) | ソースから各受信者への最短経路ツリー(ソースツリー) | PIM-DM、PIM-SM(切替後) |
| RPT (Rendezvous Point Tree) | RPを根とする共有ツリー | PIM-SM(初期) |
PIM-DM(Dense Mode)
動作概念
「まず全員に転送し、不要な枝を刈り取る」方式。
| フェーズ | 動作 |
|---|---|
| Flood | 全インタフェースへマルチキャストを転送 |
| Prune | 受信者がいないIFへはPruneメッセージを送信して転送を止める |
| Graft | 後から受信者が現れたらGraftメッセージで再度転送再開 |
覚え方: PIM-DM = 「まき散らして、いらない枝は切る」
| 特徴 | 内容 |
|---|---|
| RP | 不要 |
| 適用場面 | 受信者が密集しているネットワーク |
| ツリー | SPT(ソースから直接) |
| デメリット | 受信者が少ない場合、不要なトラフィックが発生する |
PIM-DM の主要メッセージ
| メッセージ | 方向 | 目的 |
|---|---|---|
| Hello | 双方向 | ネイバー検出 |
| Prune | 上流へ | 転送停止を要求 |
| Graft | 上流へ | 転送再開を要求 |
| Graft-Ack | 下流へ | Graftへの確認応答 |
| Assert | 同セグメント内 | 複数ルータがいる場合の転送ルータ決定 |
PIM-SM(Sparse Mode)
動作概念
「受信者が明示的に参加したIFにのみ転送する」方式。RP(Rendezvous Point)を中心に動く。
| フェーズ | 動作 |
|---|---|
| 1. Join | 受信者からIGMP Joinが届く → ルータがRP方向へPIM Joinを送信 |
| 2. 共有ツリー構築 | RPを根としたRPT(共有ツリー)が確立される |
| 3. ソース登録 | ソースがマルチキャスト送信開始 → 最初のホップルータがRegisterメッセージをRPへ送信 |
| 4. SPTへ切替 | RPまたは受信者側ルータがソースへ直接Joinすることでより効率的なSPTへ移行 |
覚え方: PIM-SM = 「RPに集まってから、後で最短に切り替える」
PIM-SMのメッセージ
| メッセージ | 送信元 | 目的 |
|---|---|---|
| Hello | 全PIMルータ | ネイバー検出 |
| Join/Prune | 下流ルータ | 転送ツリーの参加/離脱 |
| Register | 最初のホップルータ | ソース情報をRPへ通知 |
| Register-Stop | RP | Register受信後、SPTが構築されたら送信して停止要求 |
| Assert | 同セグメント内 | 転送ルータ決定 |
| Bootstrap | BSR | RP情報の配布(Auto-RP / BSRメカニズム) |
RPの選出方法
| 方法 | 特徴 |
|---|---|
| 静的 RP | ip pim rp-address で手動指定。シンプルだが冗長性なし |
| Auto-RP | Cisco独自。Candidate RP と MA(Mapping Agent)を選出 |
| BSR(Bootstrap Router) | 標準規格(RFC)。Candidate RP と BSR を選出 |
PIM-SM vs PIM-DM 比較
| 項目 | PIM-DM | PIM-SM |
|---|---|---|
| RP | 不要 | 必要 |
| 初期動作 | Flood & Prune | Joinのみ |
| ツリー | SPT | RPT → SPT |
| 適用場面 | 受信者が密集 | 受信者がまばら |
| オーバーヘッド | 初期に大(Flood) | 低い |
PIM-SM / SSM / bidir / MSDP の整理
| ソース数 | RP | ユースケース | |
|---|---|---|---|
| PIM-SM | 汎用 | 必要 | 一般的なマルチキャスト |
| SSM | 少数・明確 | 不要 | 映像配信、IPTV |
| bidir | 大量 | 必要(共有ツリーのみ) | 金融データ、多対多 |
| MSDP | - | RP間連携 | マルチドメイン/AS間 |
覚え方: PIM-SMを中心に「ソースが明確ならSSM」「ソースが大量ならbidir」「ドメインまたぐならMSDP」
各方式の詳細
SSM (Source-Specific Multicast)
- 受信者がソースを指定して直接受け取る → RPが不要
- IGMPv3で「このソースからのこのグループが欲しい」と明示的に要求
- ソースへ直接最短パスツリー(SPT)を構築
- アドレス範囲:
232.0.0.0/8
bidir (Bidirectional PIM)
- ソースが大量にいるケース向け
- (S,G)ステートを一切作らない → ステート爆発を防ぐ
- トラフィックは常にRPを経由する共有ツリー上を双方向に流れる
MSDP (Multicast Source Discovery Protocol)
- RP間の連携プロトコル
- 複数のPIMドメイン間でマルチキャストソース情報を共有
- RP同士がMSDPピアリングしてSA (Source Active) メッセージを交換
- BGPのマルチキャスト版みたいなイメージ
IGMP(Internet Group Management Protocol)
| バージョン | 特徴 | 対応PIM |
|---|---|---|
| IGMPv1 | 基本的なグループ参加・離脱 | PIM-DM / PIM-SM |
| IGMPv2 | Leave Group メッセージ追加(離脱が速くなる) | PIM-SM |
| IGMPv3 | ソース指定(INCLUDE/EXCLUDE)が可能 | SSM |
鉄板の出題パターン: 「SSMに必要な条件は?」→ IGMPv3
覚え方:
- IGMPv2 → ソース指定不可 → RP必須 → PIM-SM
- IGMPv3 → ソース指定可能 → RP不要にできる → SSM
IGMP Snooping
L2スイッチがIGMPメッセージを覗き見(Snooping)して、不要なポートへのマルチキャスト転送を抑制する機能。
| 項目 | 内容 |
|---|---|
| 目的 | 不要なポートへのマルチキャストフラッド抑制 |
| 動作 | IGMPのJoin/Leaveを監視し、グループ参加ポートだけへ転送 |
| デフォルト | ほとんどのCatalyst系スイッチで有効 |
マルチキャスト設定コマンド
| 設定目的 | コンフィグモード | コマンド例 |
|---|---|---|
| マルチキャストルーティング有効化 | Global config | ip multicast-routing |
| PIM-SM有効化 | Interface config | ip pim sparse-mode |
| PIM-DM有効化 | Interface config | ip pim dense-mode |
| 静的RP指定 | Global config | ip pim rp-address 10.1.1.1 |
| Auto-RP Candidate RP | Global config | ip pim send-rp-announce Lo0 scope 10 |
| Auto-RP Mapping Agent | Global config | ip pim send-rp-discovery Lo0 scope 10 |
| IGMP バージョン変更 | Interface config | ip igmp version 3 |
確認コマンド
| コマンド | 見るポイント |
|---|---|
show ip pim neighbor | PIMネイバー一覧 |
show ip pim rp mapping | RPの割り当てとグループ範囲 |
show ip mroute | マルチキャストルーティングテーブル((S,G)エントリ) |
show ip igmp groups | IGMPグループ参加情報 |
show ip igmp interface | IFごとのIGMP設定・バージョン |
show ip multicast | マルチキャストルーティングの状態 |