IPv6 ハンズオンセミナー マルチキャスト編 < セッションテキスト > 日本アルカテル ルーセント株式会社鹿志村康生 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 11
本日のターゲット IPv6 オペレータ育成プログラム IPv6マルチキャストで使用されるプロトコル 機能の仕組みを理解する (PIM/MLD/MLD snooping) Traffic が Source から Receiver に届くまでのシーケンス 実機を用いて IPv6 マルチキャストの設定を行い 動作を確認する マルチベンダ環境 (Alaxala/Alcatel/Cisco) / Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 2
Agenda( 第 1 部 : セッション ) IPv6 オペレータ育成プログラム IPv6の基礎 : ヘッダフォーマット / アドレッシング マルチキャストとは? MLDv1/v2 Multicast Forwarding と PIM PIM SM (ASM: Any Source Multicast) PIM SSM (SSM: Source SpecificMulticast) MLD Snooping 注意すべき構成 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 3
Agenda( 第 2 部 : ハンズオン ) IPv6 オペレータ育成プログラム 1. ハンズオン環境について 2. 設定とStatusの確認 > Enable IPv6 multicast routing Enable MLD Enable PIM Configuring RP for PIM ASM Configuring PIM SSM Configuring MLD Snooping 3. 動作確認 Stream の送信 PIM ASM 動作確認 PIM SSM 動作確認 MLD Snooping 動作確認 PIM Route Failover 4. Advanced course PIM DRの動作 Static MLD join SSM mapping 5. まとめ Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 4
IPv6 の基礎 : ヘッダフォーマット / アドレッシング Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 5
IPv6ヘッダフォーマット IPv6 オペレータ育成プログラム 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Version Traffic Class Flow Label Payload Length Next Header Hop Limit Source Address Destination Address 新設されたフィールド IPv6 ではヘッダの長さは固定長 名称が変更されたフィールド ( 現状に則した名称に ) Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 6
IPv6 アドレス表記法 IPv4 のアドレス表記法 2 進数表記 (32 ビット ) IPv6 のアドレス表記法 2 進数表記 (128 ビット ) 11000000 10101000 00000000 00000001 IPv6 オペレータ育成プログラム 8 ビットに区切り 10 進数で表現区切り文字はピリオド. 192.168.0.1 0010000000000001 0000110110111000 1011111011101111 1100101011111110 0000000000000000 0000000000000000 0000000000000000 0001001000110100 16 ビットに区切り 16 進数で表現区切り文字はコロン : 2001:0db8:beef:cafe:0000:0000:0000:1234 省略表記 1: 各ブロックの先頭の連続する 0 は省略可能 2001:db8:beef:cafe:0:0:0:1234 省略表記 2: 連続した 0 は 1 回に限り :: に省略可能 2001:db8:beef:cafe::1234 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 7
IPv6 アドレスの構造 IPv6 アドレスの種類 IPv6 オペレータ育成プログラム グローバルルーティングプレフィックス ネットワークの識別 サブネット ID インターフェイス ID ノードの識別 64 ビット 64 ビット 128 ビット プレフィックスグローバルルーティングプレフィックスとサブネット ID を合わせた上位 64ビット IPv6アドレスの種類 ユニキャストアドレス 1 対 1 通信ネットワークインターフェイス毎に設定されるアドレスグローバルアドレス, リンクローカルアドレス,ULA マルチキャストアドレス 1 対多通信グループを識別するアドレスで複数のノードを識別 IPv6ではIPv4のブロードキャストの置き換えとしても利用 エニーキャストアドレス 1 対 1of 多通信複数のノードに指定可能な 機能 に対して設定されるアドレス Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 8
ユニキャストアドレス グローバルユニキャストアドレス 001 (3 ビット ) グローバルルーティンググプレフィックス サブネット ID IPv6 オペレータ育成プログラム インターフェイス ID 48 ビット 16 ビット 64 ビット いわゆるグローバルアドレス ( 例 )2001:db8::1 リンクローカルユニキャストアドレス 1111111010 0 インターフェイスイ ID 10 ビット 54 ビット 64 ビット 同一リンク( セグメント ) 内にて一意なアドレス (fe80::/10) プラグアンドプレイなどのリンク内通信で利用される ユニークローカルユニキャストアドレス (ULA) [RFC4193] 1111110 L グローバルID サブネットID インターフェイスID 8ビット 16ビット 64ビット Lビット :0 未定義 1 ランダム生成による独自割り当て 自由に利用可能なローカルアドレス (fd00::/8) 廃止されたサイトローカルアドレスの代用 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 9
マルチキャストアドレス 11111111 フラグ 0RPT マルチキャストアドレス スコープグループ ID 8ビット 4ビット 4ビット 112ビット フラグ 意味 T フラグ 0: 恒久的な割り当て (IANA により定義済み ) アドレス 1: 一時的な割り当てアドレス P プラグ 1:Unicast Prefix based マルチキャストアドレス (RFC3306) P=1 の場合には T=1 R フラグ 1:PIM SM における Rendezvous Point (RP) マッピング用 (RFC3956) R=1 の場合 P=1 T=1 スコープ : マルチキャストの有効範囲を指定 0000(0) 予約 0101(5) site local scope IPv6 オペレータ育成プログラム 0001(1) ( ) interface local scope 1000(8) ( ) organizational local scope 0010(2) link local scope 1110(E) global scope 0100(4) admin local scope 1111(F) 予約 例 : PIM-SM(ASM) マルチキャストアドレス FF15::1234 PIM-SSM(ASM) マルチキャストアドレス FF38::abcd Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 10
マルチキャストアドレス IPv6 オペレータ育成プログラム 定義済みのマルチキャストアドレス : 主に各種コントロールパケットのために使用 FF02:0:0:0:0:0:0:1 リンク内のすべての IPv6 ノード (IPv4 のブロードキャストの代用 ) FF02:0:0:0:0:0:0:2 FF02:0:0:0:0:0:0:C FF02:0:0:0:0:1:FFxx:xxxx リンク内のすべての IPv6 ルータ DHCP サーバ / リレーエージェント 要請ノードマルチキャストアドレス (xx:xxxx はノードのユニキャストアドレスまたはエニキャストアドレスの下位 24 ビット ) RFC3306 Unicast-Prefix-based マルチキャストアドレス グローバルユニキャスト IPv6 プレフィックスを持つ場合 そのプレフィックス情報をマルチキャストアドレス内に埋め込むことにより Globally ユニークなマルチキャストアドレスを持つことが出来る 11111111 0 R P T スコー Reserve Plefix 長 Network Prefix グループID 0 1 1 プ 8ビット 4ビット 4ビット 8ビット 8ビット 64ビット 32ビット = = = 例 : FF3E:0040:2001:0123:c001:1100:0000:abcd Plex=64 Unicast prefix groupid= 任意 Unicast Prefix = 2001:0123:c001:1100::/64 を持つ場合 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 11
マルチキャスト MAC アドレス 128 Bits FF3E:0040:2001:0123:c001:1100:0000:abcd 33-33-00-00-ab-cd 16 Bits 32 Bits 48 Bits FF3E:0040:2001:0123:c001:1100:0000:abcd と FF18:0040:2001:0234:1002:0010:0000:abcd はMACアドレスが同じになる MLD-Snoopingの実装によっては区別出来ないことも Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 12
マルチキャストとは? Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 13
ユニキャスト通信とマルチキャスト通信 ユニキャスト特定の相手への 1 対 1 の通信 A B に送信 Src IP = A Dst IP = B B C マルチキャストその Group に参加している多数への 1 対多 又は多対多の通信 誰か Group1 の情報が欲しい人へ送信 参加 1 欲しい! A 参加 1 欲しい! Src IP = A Dst IP = Group1( マルチキャスト ) 参加 1 欲しい! Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 14
マルチキャスト通信のメリット 多数の受信者へ同一コンテンツを送信する際のサーバ負荷の軽減 ネットワーク帯域の有効利用 6Mbps x 1000 人キ => 6Gbps 6Mbpsのマルチキャスト 1Stream 分でOK =サーバ負荷軽減 Streamはネットワーク上で必要に応じて複製 = 帯域の有効利用 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 15
マルチキャストの適用領域 レジデンシャルブロードバンド IP/TV ライブストリーミング Game コンテンツダウンロード 一般のエンタープライズ E-ラーニング 社内中継アプリケーション配信多地点会議センサーネットワーク 金融一斉同報 ( 音声 ) ファイナンスシステム ( 株価情報 取引情報の一斉配信 ) 公共河川 道路等の監視カメラ一斉同報 ( 音声 災害情報等 ) 地域内情報配信 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 16
IPv6 マルチキャストによるサービス例 IPv6 マルチキャスト放送システム (i-inprov6) 塾の遠隔授業などに利用衛星配信と比べコストが最大で1/10に イニシャル: 数億円 2,000 万円弱 ランニング :1,000 万円 / 月 100 万円 / 月有名講師が全校舎を担当レベルを均一化 1 授業当たりの利益向上 緊急地震速報配信サービス (OCN) 気象業務支援センターの緊急地震速報を配信緊急性 リアルタイム性 配信効率性 コンビニ店舗への一括配信 (FamilyMart) y 6,000 店舗をデュアルスタック化 衛星からブロードバンド & マルチキャストへ キオスク端末への新商品キャンペーンン 従業員向けマニュアル等の大容量ファイル一括配信 遠隔授業風景 http://becare.co.jp/service/case01.html 受信端末 / アプリケーション http://www.ntt.com/jishinsokuho/index.html キヨスク端末 ( Fami ポート ) Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 17
マルチキャストプロトコル source Receiver PIM PIM MLD MLD: Receiver~Router 間で Group への参加 / 離脱をシグナリング PIM: Router~Router 間でマルチキャスト配信 Treeを構築 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 18
Terminologies i IPv6 オペレータ育成プログラム ソース / センダー (Source/Sender) マルチキャスト送信端末 FHR LHR レシーバ / リスナー (Receiver/Listener) ソ マルチキャスト受信端末 RP (Rendezvous Point) ソース PIM SM にてソースとレシーバを結び付ける場所 ( ルータ ) 上流 (Upstream) Trafficが流れてくる方向 下流 (Downstream) Traffic が流れて行く方向 ファーストホップルータ (First Hop Router) ソースが接続されているルータ ラストホップルータ (Last Hop Router) レシーバが接続されているルータ LHR LHR レシーバ Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 19
Terminologies IPv6 オペレータ育成プログラム マルチキャストグループ (Multicast t Group) マルチキャストトラフィックのSenderとReceiverで構成されるグループ MDT (Multicast Distribution Tree) マルチキャスト配信ツリー そのMulticast Groupのトラフィックを配信するためのTree 大きく Shortest Path Tree(Source Tree) と Shared Tree に分類される Join マルチキャストグループへの参加 Leave(MLD)/Prune(PIM) マルチキャストグループから離脱 ASM (Any Source Multicast) ソースを特定しないマルチキャストサービス形態 SSM (Source Specific Multicast) ソースが特定されるマルチキャストサービス形態 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 20
MLD(Multicast Listener Discovery) v1/ v2 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 21
MLDv1(RFC2710) Multicast Listener(Receiver)~Router 間での Group への参加 / 離脱をシグナリング RouterはMLD General Queryで定期的に Listenerの有無を確認 Listener Leave 時にはその Group への参加者が他に居ないかをMulticast Address Specific Query で確認 MLD は ICMPv6 protocol のサブセット Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 22
MLDv1 パケットフォーマット 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Type Code Checksum Max Response Delay Reserved Multicast Address Type : 130 : Multicast Listener Query - General Query - Multicast-Address-Specific Query 131 : Multicast Listener Report Multicast Address : Report ターゲットとするMulticast Address General Query ゼロ Multicast-Address-Specific Query ターゲットとするMulticast Address 132 : Multicast Listener Done Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 23
IPv6 宛先アドレスと各種タイマー メッセージタイプ IPv6 宛先 Address ------------ ------------------------ General Query link-scope all-nodes (FF02::1) Multicast-Address-Specific t ifi Query ターゲットの multicast t address Report ターゲットのmulticast address Done link-scope all-routers (FF02::2) デフォルトタイマー [Query Interval] = 125 Sec [Maximum Response Delay] = 10000mSec [Multicast Listener Interval] (expire timer on router side) = [Query Interval] * 2 + 10Sec = 260 Sec [Other querier Present interval] = [Query Interval] * 2 + 5Sec = 255 Sec [Unsolicited Report Interval] =10Sec [Last Listener Query Count(Robustness Variable)] =2 [Last Listener Query Interval] =1Sec Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 24
MLDv1 Groupへの Join IPv6 Src=HostのLink-Local IPv6 Dst=FF18::1:1 ICMPv6/MLD Report Multicast-Address=FF18::1:1 Receiver は MLD Report を Router へ送信することにより特定 Group への参加を表明する Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.
MLD Querier の選出 IPv6 オペレータ育成プログラム MLD Querier FE80::10 FE80::20 MLD Non-Querier IPv6 Src=Router の Link-Local L IPv6 Dst=FF02::1 ICMPv6/MLD Query 最初は全てのRouterがQueryを送信する 最もIPv6 Address 小さいRouterがそのSubnet 上でのQuerierとなる 他のRouterは 自分より小さいSource AddressのQuery を受信した時点で Non-Querier となる Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.
MLDv1 Group からのLeave MLD Querier MLD Non-Querier 2 IPv6 Src=HostのLink-Local IPv6 Dst=FF18::1:1 ICMPv6/MLD Query Multicast-Address=FF18::1:1 3 1 1. Host1 から all-routers へ MLD Done 送信 2. MLD Querier から Multicsat-Address-Specific-Query を該当 Group Address 宛に送信 3. Host2 がまだ Join している場合には Last Listener Query Interval 以内にMLD Reportを送信 IPv6 Src=Host の Link-LocalLocal IPv6 Dst=FF02::2 ICMPv6/MLD Done Multicast-Address=FF18::1:1 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.
MLDv1 Group からのLeave MLD Querier MLD Non-Querier 2 IPv6 Src=HostのLink-Local IPv6 Dst=FF18::1:1 ICMPv6/MLD Query Multicast-Address=FF18::1:1 1 1. Host1 から all-routers へ MLD Done 送信 2. MLD Querier から Multicsat-Address-Specific-Query を該当 Group Address 宛に送信 (Timeout=1sec を Default では 2 回 ) 3. Timeout により Router は MLD entry 削除 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.
MLDv2(RFC3810) GroupだけでなくSourceを指定しての Join/Leave が可能 (SSM への対応 ) Include/Exclude Source List の追加 MLDv1 との Backward Compatibility 有り 宛先 IPv6 アドレスは全て FF02::16 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 29
MLDv2 Report パケットフォーマット 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Type=143 Reserved Checksum Reserved #ofmcast Address Records[M] Multicast Address Records [1] Multicast Address Records [2]... Multicast Address Records [M] Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 30
MLDv2 Multicast Address Record フォーマット Record Type Aux Data Len Number of Sources (N) Multicast Address Source Address [1] Source Address [N] Record Type: 1. MODE_IS_INCLUDE - IS_IN ({S},G) 2. MODE_IS_EXCLUDE - IS_EX ({S},G) 3. CHANGE_TO_INCLUDE_MODE - TO_IN ({S},G) 4. CHANGE_TO_EXCLUDE_MODE - TO_EX ({S},G) 5. ALLOW_NEW_SOURCES - ALLOW ({S},G) [(S,G) のJoin] 6. BLOCK_OLD_SOURCES OLD - BLOCK ({S},G) [(S,G) の Leave] Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 31
MLDv2 (*,G)/(S,G) への Join (*,G) へJoin (S,G) へJoin IPv6 Src=HostのLink-Local IPv6 Dst=FF02::16 ICMPv6/MLDv2 Report Record Type=CHANGE_TO_EXCLUDE Multicast-Address=FF18::1:1 Source-Address= IPv6 Src=HostのLink-Local IPv6 Dst=FF02::16 ICMPv6/MLDv2 Report Record Type=ALLOW_NEW_SOURCES Multicast-Address=FF38::1:1 Source-Address=2001:10::1 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.
MLDv2 (*,G)/(S,G) への Leave (*,G) からLeave (S,G) からLeave IPv6 Src=HostのLink-Local IPv6 Dst=FF02::16 ICMPv6/MLDv2 Report Record Type=CHANGE_TO_INCLUDE Multicast-Address=FF18::1:1 Source-Address= IPv6 Src=HostのLink-Local IPv6 Dst=FF02::16 ICMPv6/MLDv2 Report Record Type=BLOCK_OLD_SOURCES Multicast-Address=FF38::1:1 Source-Address=2001:10::1 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.
MLDv2 Queryへの応答 MLDv2 query (*,G) へJoin (S,G) へJoin IPv6 Src=HostのLink-Local IPv6 Dst=FF02::16 ICMPv6/MLDv2 Report Record Type=MODE_IS_EXCLUDE Multicast-Address=FF18::1:1 Source-Address= IPv6 Src=HostのLink-Local IPv6 Dst=FF02::16 ICMPv6/MLDv2 Report Record Type=MODE_IS_INCLIDE Multicast-Address=FF38::1:1 Source-Address=2001:10::1 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.
Multicast Forwardingと PIM (Protocol Independent Multicast) Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 35
Multicast Distribution Tree(MDT) マルチキャストトラフィックは必ず構成された Tree 上を上流 > 下流へ向かって転送される Shortest Path Tree/Source Tree/(S,G) Tree Treeの頂点はSource (S,G) ベースのForwarding Receiver~SourceまでのRouting 上の最短経路となる Shared Tree / RP Tree / (*,G) Tree Treeの頂点はRP (*,G) ベースの Forwarding Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.
RPF interface(incoming interface) IPv6 オペレータ育成プログラム Reverse Path Forwarding (RPF) MDTを構成する際に Multicast Sourceアドレス /RPアドレスを元に どのInterfaceが上流のInterfaceかを各 Routerで決定する 決定には Unicast Routing 情報 /Multicast 用 Routing 情報 (BGP mc-addr-family/static-mroute 等 ) が必要 Outgoing interface(list) Joinされた下流側のInterface OIF/OIL RPF Neighbor RPF interface 上の ある Router から見た上流側のNext Hop Router Address (*,G)/(S,G) ごとに決定される PIM Join/PruneはRPF Neighborに対して送信される RPF Check ある (*,G)/(S,G) について そのRPF interfaceから受信されたマルチキャストパケットは下流へ転送される RPF でない Interfaceから受信されたパケットは破棄される Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 37
RPF Check IPv6 オペレータ育成プログラム Multicast Packet RPF Check Pass =>Forward E0 E1 RPF Check Fail =>Drop E2 (2001:10::10, FF38::1:1) RPF interface = E0 RPF Neighbor = FE80::2 Outgoing Interface = E2 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 38
PIM ヘッダパケットフォーマット IPv6 Source Addr IPv6 Destination Addr IPv6 NextHeader = Router Link-Local address = Message Typeによる = 103(0x67) 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Ver=2 Type Reserved Checksum Message Types IPv6 destination Address 0 = Hello ALL-PIM-ROUTERS(FF02::D) 1 = Register RP Address 2 = Register-Stop First Hop Router(source of register) 3 = Join/Prune ALL-PIM-ROUTERS(FF02::D) 4 = Bootstrap ALL-PIM-ROUTERS(FF02::D) 5 = Assert ALL-PIM-ROUTERS(FF02::D) 8 = Candidate-RP-Advertisement BSR address Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 39
PIM Hello/PIM Neighbor Router 同士は定期的にHello PacketをLink Localに送信し 互いをPIM Neighborとして認識する RPF neighbor が PIM Neighbor として認識されていればRPF Neighborに対しJoin/Pruneを送信出来る 同一 Subnet 上に複数の PIM router が存在する場合は PIM DR priority(dr priorityが同じ場合には Address の大小によるtie break) により Designated Router(DR) が1つ決定される Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 40
PIM Neighbor Discovery PIM Hello DR-Priority=5 DR PIM Hello DR-Priority=10 その Subnet の中で最も大きい DR-Priority Pi it を持つ Router(Priority it が同じ場合は最も大きいAddressを持つRouter) がDRとして選出される PIM Helloは定期的に FF02::D (All-PIM-ROUTERS) 宛てに送信される TimerのDefault 値 Hello Interval = 30 Sec Holdtime = 30 x 3.5 = 105 sec DRがTimeoutしたら新しいDRが選出される DRはそのSubnet 上でMLDを受信した場合にその要求をPIMへ反映させる権利を持つ (DR 以外は MLD を受信しても PIM の動作を起こせない ) Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.
PIM SM(RFC4601) IPv6 オペレータ育成プログラム RP(Rendezvous Point) となるRouterが必要 Sourceの情報はRPに登録 (Register) される 一方 受信要求はRPに向かってHop-by-Hopで転送されていく RPはそのマルチキャストドメイン内の (S,G) の情報を管理する 1 対多 多対多の通信に有効 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.
PIM SMの動作 (1) IPv6 オペレータ育成プログラム 3PIM Register 受信 (S,G) RP 2PIM Register E2 E0 4PIM Register-Stop E1 1Multicast Traffic 送信 Src=2001:1::10 Dst=FF18::1:1 1 SourceがMulticast Trafficを送信 (2001:1::10,FF18::1:1) 2 First Hop Router が RP へ Unicast で PIM Register を送信 SourceからのMulticast PacketをPIMでEnapしたもの 3 RPがRegisterを受信し RPに (S,G) の情報が作られる 4 RP から First Hop Routerへ PIM Register-Stop を送信 First Hop RouterはPIM Registerの送信を停止する Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 43
PIM SMの動作 (2) IPv6 オペレータ育成プログラム (S,G) 7PIM (S,G) Join 6PIM (*,G) Join (*,G) E0 E2 E1 5MLD Report RP 8Traffic が RP を経由して Shared-Tree に従い Forwarding される 7PIM (S,G) Join 5 Receiverが該当 Groupに対してMLD Reportを送信 (*, FF18::1:1) 6 Last Hop RouterからRPへの方向にPIM (*,G) Joinを送信 #RPを頂点とするShared-Tree(RP-Tree) が作られる 7 RPからSource 方向へPIM(S,G) Joinを送信 8 First Hop Routerまで (S,G) Joinが伝播され SourceからRPを経由した経路でMulticast Trafficの転送が始まる Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 44
PIM SMの動作 (3) IPv6 オペレータ育成プログラム (S,G) 9LHRで (S,G) entryが作られる (*,G) RP (S,G) E0 E2 12Sourceから Shortest-Path-Tree E1 経由でも転送が始まる 10(S,G)Join 11(S,G)Join 9 SourceからのMulticast Packet 受信によりLHRで (S,G)Entryが作られるこのとき (*,G) RPF-IF = E0 (S,G) RPF-IF = E1 10 Sourceに対するRPF 方向に (S,G) Joinを送信 11 Sourceに対するRPF 方向に (S,G) Joinを送信 #Source を頂点とするShortest-Path-Tree が作られる 12 SouceからShortest-Path-Tree 経由でもForwardingが始まる Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 45
PIM SMの動作 (4) IPv6 オペレータ育成プログラム 13(S,G,rpt) Prune (*,G) (S,G) E0 E2 E1 (S,G) 14(S,G) Prune RP 15Stop (*,G) forwarding 14(S,G) Prune 13 Shortest-Path-TreeからTrafficを受信し始めたら RP 経由のTraffic は不要となるため RP 方向へ (S,G,rpt)prune を送信 (*,G)RPF-IF (S,G) RPF-IF 14 Shared-Tree 経由の転送が停止される 15 Source 方向へ (S,G) prune が送信され Source->RP への転送が停止される Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 46
PIM SMの動作 (5) IPv6 オペレータ育成プログラム Shared-Tree RP E2 E0 E1 Shortest-Path-Tree 最終的にShortest-Path-TreeへSwitchoverし TrafficはSPT 経由で Forwardingされる RP~ReceiverまでのShared-TreeはForwardingには使われないがTree 自体は維持される Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 47
RPの決定 IPv6 オペレータ育成プログラム Static-RP: 静的にRP Addressを設定 全てのRouterに設定が必要 BSR(Bootstrap Router): 幾つかの候補 (Candidate-RP) の中から Priority 等に応じて自動的に選出 / 広報 Embedded-RP Mulitcast AddressにRP Addressを埋め込む PIM-SMでのInter-domain 接続に使用 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 48
PIM BSR BSM BSR-Pri=255 C-BSR BSR C-BSR BSM BSR-Pri=64 Candidate-BSR(C-BSR) はBootstrap Message(BSM) をHop-by-Hopで Network 内に Flood する 最も高いBSR Priorityを持つRouterがBSRとして選出される Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 49
PIM BSR C-RP Advertisement (unicast) BSR C-RP Advertisement (unicast) C-RP2 FF18::/64 C-RP1 FF18::/64 Candidate-RP(C-RP) は選出されたBSRに対してC-RP Advertisementを Unicastで送信する (C-RP-Addr,Group-range,RP-Priority) Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 50
PIM BSR BSM C-RP1,range1,Pri1 C-RP2,range2,Pri2 BSR BSR priority 255 > 0 BSRは全てのC-RPの情報をBSMでNetwork 内にFloodする RP priority 各 Router はこの BSM の情報を元にして自身で RP を選択する 0 > 255 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 51
Embedded RP(RFC3956) IPv6 オペレータ育成プログラム Unicast-Prefix based Multicast Addressをベースとして Multicast Address の内部にRP Address を埋め込む Multicast AddressからRP Addressを自動的に判断出来る PIM-SMのDomain 間接続が主な目的 11111111 8 4 4 4 4 8 64ビット 32ビット 0 R 1 P = = = 1 T 1 スコープ Reser ve RIID Plefix 長 Network Prefix グループ ID 例 : FF78:0140:2001:0123:c001:1100:0000:0001 Unicast prefix groupid= 任意 Embedded RP Address = 2001:0123:c001:1100::1 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 52
PIM SSM (RFC4601/3569/4607) RPは不要 Receiverは (S,G) 両方を指定してJoin PIM-SMと比べてシンプルな動作 PIM-SMのSubset Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.
PIM SSMの動作 IPv6 オペレータ育成プログラム E2 2MLDv2 Report (S,G) E0 E1 3(S,G) Join 4TrafficがShortest- Path-Treeを経由して転送される 3(S,G) Join 1Multicast Traffic 送信 Src=2001:1::10 Dst=FF38::1:1 1 SourceがMulticast Trafficを送信 (2001:1::10,FF38::1:1) 2 Receiverが該当 Group/Sourceに対してMLDv2 Reportを送信 (2001:1::10,FF38::1:1) 3 Last Hop RouterからSourceの方向にPIM (S,G) Joinを送信 Sourceを頂点とするShortest-Path-Treeが作られる 4 SourceからShortest-Path-TreeでMulticast Trafficの転送が始まる Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 54
MLD Snooping Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 55
MLD Snoopingの必要性 IPv6 オペレータ育成プログラム MLD aware でない L2 Switch では 全ての Multicast TrafficはVLAN 内の全てのPortにFloodされる Join している Receiver 向けの Port のみに Multicast Trafficを適切に転送するためにはMLD Snoopingの機能が必要となる MLD Snooping 無し MLD Snooping 有り Join Join Join Join Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 56
MLD Snooping: Group への Join Port0 CPU MLD Report (*,FF18::2:1) Port1 Port2 Port3 Port4 Router Port=0 --------------------- McastAddr Ports --------------------- FF18::2:1 Port2,4 (3333:0002:0001) Join Join MLD Packet は中身をSnoop され MLD の中身を元にL2 上のForwarding Table が作成される その後 MLD PacketはRouterへ送信される Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 57
MLD Snooping: Entry のメンテナンス CPU 1 x Report Report Port0 General Query Report Router Port=0 --------------------- McastAddr Ports --------------------- FF18::2:1 Port2,4 (3333:0002:0001) Port1 Port2 Port3 Port4 Join Join MLD General Queryは全てのPortにFloodされる JoinしているHostはそれに応答しReportを返し MLD SnoopingのEntryはMaintainされるが Router 側へはMLD Reportは1つだけが送信される (Proxy 的な動き ) Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 58
MLD Snooping: Group からの Leave(1) Port0 CPU MLD Done Router Port=0 --------------------- McastAddr Ports --------------------- FF18::2:1 Port2,4 (3333:0002:0001) 0001) MLD Addr-Specific-Query Port1 Port2 Port3 Port4 Join Leave あるHostがLeaveすると そのPortのみに対してMcast-Addr-Specifig-Query が送信される QueryがTimeoutし受信者が他に居ないことが確認されると そのPort はMLD Snooping Entry から削除される ただし 他の PortでJoinしている Host が存在するため この時点ではRouterへはMLD Doneは送信されない Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 59
MLD Snooping: Group からの Leave(2) Port0 MLD Done Router Port=0 CPU --------------------- McastAddr Ports --------------------- FF18::2:1 Port2 (3333:0002:0001) 0001) MLD Done Addr Specific Query Port1 Port2 Port3 Port4 Leave 最後のHostがLeaveすると そのPortに対してMcast-Addr-Specifig-Query が送信される Query が Timeout し受信者が他に居ないことが確認されると その GroupのMLD Snooping Entryが削除され RouterへMLD Doneが送信される Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 60
MLD Snooping: その他 IPv6 オペレータ育成プログラム Router Port の認識 : MLD SnoopingはRouter Portが存在する状態 又はMLD Querier が存在する状態でないと正常に動作しない Router PortはMLD Query/PIM Helloの受信によって自動的に認識されるか 静的に設定する (SWのインプリに依存 ) Router Portの役割 : Receiver 側 :MLD packetをrouter Portへ送信 Sender 側 :Multicast Traffic を Router Port へ送信 MACアドレスの重複 : MAC アドレスのみで Multicast Group を識別している SW の場合 MACアドレスが重複するようなGroupアドレスを使用すると それぞれのGroupアドレスが区別不可の可能性がある MLDv2 SnoopingのSourceアドレスごとの区別も同様 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 61
MLD Snooping: 即座に Traffic を停止させる機能 ( 参考 ) IP/TV 監視カメラの環境など Join/Leave が頻繁に発生するような状況では 切り替えを早く行うためにLeave 時のTraffic 停止までの時間を短くすることが必要となる MLD Fast-Leave: Leaveを受信した際に Multicast Address Specific Queryを出さずに即座に Entry を削除する機能 同一 Port 上の他の Listenerの存在を確認出来ないため 1Port/1Hostであることが必要 MLD Host-tracking: MLD packet を送信した (Join している )Listener のSourceアドレスをTrackしておき 該当 Port 上の最後のTracked Hostが Leaveしたら即座にPort Entryを削除出来る Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 62
注意すべき構成 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 63
Receiver Side における DR Source / RP IPv6 オペレータ育成プログラム Router2 MLD Querier Multicast Traffic PIM Join Router1 DR MLD Report Router2をPrimaryのMulticast Forwarderにするつもりが Router1が予期せずDRになっていたため Router1がForwarderになってしまった DR Priority 又はLink-Local Addressの大小で要調整 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.
Receiver Side における DR Source / RP IPv6 オペレータ育成プログラム Router2 MLD Querier PIM Join DR Router1 MLD Report 上のような構成でRouter1のUplinkのみがDownした場合には Router1は LANセグメント側を経由するRouter2 側への経路を学習しておく必要がある (LAN セグメントを ospf passive にしている場合等は切り替え不可 ) また プロトコルのインプリによっては上記構成がうまくいかないことも Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.
PIM Neighbor IPv6 オペレータ育成プログラム Unicast Routing を元に RPF Neighbor が決定されても 対向の Router が PIM-NeighborでないとPIM-Join/Pruneを出せない Multicastが通る可能性のある全てのLinkでPIMをEnableにする Source or RP FE80::3 FE80::1 PIM Disable E1 FE80::4 (*,G)/(S,G) RPF Interface = E0 RPF Neighbor= FE80::1 PIM Neighbor Interface FE80::2 E1 E0 FE80::2 Join/ Prune RPF Neighbor が PIM-Neighborでないため Joinを出せない Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.
VRRP と PIM IPv6 オペレータ育成プログラム OSPF VRRP VRRP Master Virtual-IP Static Route NextHop=VRRP V-IP MLD Report RPF Neighbor となっている VRRP virtualアドレスが PIM-Neighborでないため Joinを出せない Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 67
L2 Switch だけの構成 IPv6 オペレータ育成プログラム VLAN X MLD Querier Multicast Traffic MLD Report MLD Report Querier が LAN 上に存在しない場合又は Router Port が存在しない場合には MLD Snooping がきちんと動作出来ない MLD Router を接続又は VLAN で IPv6 を Enable にして MLD Querier を設定 Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED. 68