IPv6オペレータ育成プログラム

IPv6ハンズオンセミナー
マルチキャスト編＜セッションテキスト＞

日本アルカテル・ルーセント株式会社
鹿志村 康生1
1© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

IPv6オペレータ育成プログラム

本日のターゲット• IPv6マルチキャストで使用されるプロトコル・機能のキ
使 されるプ
機能
仕組みを理解する（PIM/MLD/MLD‐snooping）。
– TrafficがSourceからReceiverに届くまでのシーケンス。

• 実機を用いてIPv6マルチキャストの設定を行い、動作を確認する。
– マルチベンダ環境(Alaxala/Alcatel/Cisco)。
(//)© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

2

IPv6オペレータ育成プログラム

Agenda（第1部：セッション)• IPv6の基礎：ヘッダフォーマット/アドレッシング
基礎
ダドグ• マルチキャストとは？
• MLDv1/v2• Multicast Forwarding と PIM
PIM‐SM (ASM: Any Source Multicast)
PIM SSM (SSM: Source Specific Multicast)
PIM‐SSM• MLD Snooping• 注意すべき構成
構成© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

3

IPv6オペレータ育成プログラム

Agenda（第2部：ハンズオン)
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 ASM動作確認–PIM‐SSM動作確認–MLD‐Snooping動作確認
MLD Snooping動作確認–PIM Route Failover

4 Advanced course
4.
–PIM DRの動作–Static MLD joinj–SSM mapping

5. まとめ© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

4

IPv6オペレータ育成プログラム

IPv6の基礎：ヘッダフォーマット/アドレッシング© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

5

IPv6オペレータ育成プログラム

IPv6ヘッダフォーマット
ダ
0
5

1

2

Version

3

4
6

5

6

7

8
7

9

0

1

2
8

3

4

Traffic Class

5

6
9

7

8

9

0
0

1

2

3

4
1

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オペレータ育成プログラム

IPv6アドレス表記法◆IPv4のアドレス表記法
2進数表記（32ビット）

11000000 10101000 00000000 00000001

・8ビットに区切り10進数で表現 区切り文字はピリオド「.」192.168.0.1◆IPv6のアドレス表記法
2進数表記（128ビット）

0010000000000001 0000110110111000 1011111011101111 1100101011111110
0000000000000000 0000000000000000 0000000000000000 0001001000110100

・16ビットに区切り16進数で表現 区切り文字はコロン「:」2001:0db8:beef:cafe:0000:0000:0000:1234

・省略表記①：各ブロックの先頭の連続する「0」は省略可能
省略表記① 各ブロックの先頭の連続する「0」は省略可能
2001:db8:beef:cafe:0:0:0:1234

・省略表記②：連続した「0」は1回に限り「::」に省略可能
省略表記②：連続した「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を合わせた
グロ
バルル ティングプレフィックスとサブネットIDを合わせた
上位64ビット◆IPv6アドレスの種類●ユニキャストアドレス
１対１ 通信ネットワークインターフェイス毎に設定されるアドレス
グローバルアドレス，リンクローカルアドレス，ULA●マルチキャストアドレス
１対多 通信グループを識別するアドレスで複数のノードを識別IPv6ではIPv4のブロードキャストの置き換えとしても利用●エニーキャストアドレス
キャ
ア
１対１of
対
多 通信
複数のノードに指定可能な「機能」に対して設定されるアドレス© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

8

IPv6オペレータ育成プログラム

ユニキャストアドレス◆グローバルユニキャストアドレス
001

グローバルルーティンググ
バグ
プレフィックス（3ビット）

48ビット

サブネットID

インターフェイスID

16ビット

64ビット

・いわゆるグローバルアドレス
いわゆるグロ バルアドレス （例）2001:db8::1◆リンクローカルユニキャストアドレス
1111111010

0

10ビット

54ビット

イ タ
インターフェイスIDイ
64ビット

・同一リンク（セグメント）内にて一意なアドレス（fe80::/10）
プラグアンドプレイなどのリンク内通信で利用される◆ユニークローカルユニキャストアドレス（ULA）
1111110 L

グローバルID

8ビット
Lビット：0 未定義

サブネットID
16ビット
1 ランダム生成による独自割り当て[RFC4193]

インターフェイスID
64ビット

・自由に利用可能なローカルアドレス（fd00::/8）
・廃止されたサイトローカルアドレスの代用© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

9

IPv6オペレータ育成プログラム

マルチキャストアドレス◆マルチキャストアドレス
11111111

フラグ
グ
スコープ
0RPT

グループID

8ビット

4ビット

4ビット

112ビット

フラグ

意味

Tフラグ

0：恒久的な割り当て（IANAにより定義済み）アドレス

Pプラグ

1：Unicast‐Prefix‐basedマルチキャストアドレス（RFC3306）※P=1の場合にはT=1

Rフラグ

1：PIM‐SMにおけるRendezvous
1：PIM
SMにおけるRendezvous Point (RP)マッピング用（RFC3956）※R=1の場合P=1 T=1

1：一時的な割り当てアドレス

スコープ：マルチキャストの有効範囲を指定
0000（0）予約

0101（5）site‐local scope0001（1）（ ）interface‐local scopep1000（8）（ ）organizational‐local
g
scope
p

0010（2）link‐local scope1110（E）

global scope

0100（4）admin‐local scope1111（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

リンク内のすべてのIPv6ルータ

FF02:0:0:0:0:0:0:C

DHCPサーバ／リレーエージェント

FF02:0:0:0:0:1:FFxx:xxxx

要請ノードマルチキャストアドレス（xx:xxxxはノードのユニキャスト
アドレスまたはエニキャストアドレスの下位24 ビット）

◆RFC3306 Unicast-Prefix-based マルチキャストアドレス
グローバルユニキャストIPv6プレフィックスを持つ場合、そのプレフィックス情報をマルチキャスト
アドレス内に埋め込むことによりGlobally ユニークなマルチキャストアドレスを持つことが出来る
R P T スコー
011 プ

Reserve

Plefix長Network Prefix

グループID

4ビット

8ビット

8ビット

64ビット

32ビット

=
=
=

11111111 0

8ビット

4ビット

◆例：

FF3E:0040:2001:0123:c001:1100:0000:abcd
Plex=64

Unicast prefixgroupID=任意

Unicast Prefix = 2001:0123:c001:1100::/64を持つ場合© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

11

IPv6オペレータ育成プログラム

マルチキャスト 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

IPv6オペレータ育成プログラム

マルチキャストとは？

© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

13

IPv6オペレータ育成プログラム

ユニキャスト通信とマルチキャスト通信◆ユニキャスト 特定の相手への1対1の通信
Bに送信

B

A
C
Src IP = A
Dst IP = B◆マルチキャスト そのGroupに参加している多数への1対多、又は多対多の通信
誰かGroup1の情報が欲しい人へ送信

1欲しい！
参加
1欲しい！

A

参加
1欲しい！
Src IP = A
Dst IP = Group1(マルチキャスト)

参加© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

14

IPv6オペレータ育成プログラム

マルチキャスト通信のメリット◆多数の受信者へ同一コンテンツを送信する際のサーバ負荷の軽減◆多数の受信者へ同一コンテンツを送信する際のサ
バ負荷の軽減◆ネットワーク帯域の有効利用
6Mbps x 1000人
6Mb=> 6Gbps

・・
・

6Mbpsのマルチキャスト
キ
1Stream分でOK＝サーバ負荷軽減・・・

Streamはネットワーク上
で必要に応じて複製＝帯域の有効利用

・・
・

・
・・

© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

15

IPv6オペレータ育成プログラム

マルチキャストの適用領域◆レジデンシャル ブロードバンド
ブロ ドバンド
IP/TV、ライブストリーミング
Game、コンテンツダウンロード◆ 般◆一般のエンタープライズ
タ プ イズE-ラーニング、社内中継
アプリケーション配信
多地点会議
センサーネットワーク◆金融
一斉同報(音声)
ファイナンスシステム(株価情報、取引情報の一斉配信)◆公共河川、道路等の監視カメラ
一斉同報(音声、災害情報等)
地域内情報配信© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

16

IPv6オペレータ育成プログラム

IPv6マルチキャストによるサービス例
遠隔授業風景◆IPv6マルチキャスト放送システム（i-InproV6）●塾の遠隔授業などに利用
衛星配信と比べコストが最大で1/10に・イニシャル：数億円⇒2,000万円弱
・ランニング：1,000万円/月⇒100万円/月
ラ
グ 1 000万円/月 100万円/月

有名講師が全校舎を担当
レベルを均一化、1授業当たりの利益向上

http://becare.co.jp/service/case01.html
受信端末/アプリケーション
プ◆緊急地震速報配信サービス（OCN）●気象業務支援センターの緊急地震速報を配信
緊急性 リアルタイム性 配信効率性
緊急性、リアルタイム性、配信効率性

http://www.ntt.com/jishinsokuho/index.html◆コンビニ店舗への一括配信（FamilyMart）◆
ン
店舗 の 括配信（y）

キヨスク端末（ Famiポート）●6,000店舗をデュアルスタック化●衛星からブロードバンド&マルチキャストへ●キオスク端末への新商品キャンペーン
●キオスク端末への新商品キャンペ
ン、従業員向け
従業員向け
マニュアル等の大容量ファイル一括配信© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

17

IPv6オペレータ育成プログラム

マルチキャストプロトコル
sourceReceiver

PIM

PIM

MLD

MLD: Receiver～Router間でGroupへの参加/離脱を間p
参 /離脱を
シグナリング
PIM: Router～Router間でマルチキャスト配信Treeを構築© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

18

IPv6オペレータ育成プログラム

T
Terminologies
i l i
LHR

• ソース/センダー （Source/Sender）

FHR• マルチキャスト送信端末• レシーバ/リスナー （Receiver/Listener）

ソ ス
ソース

• マルチキャスト受信端末

LHR• RP （Rendezvous Point）• PIM
PIM‐SM
SM にてソにてソースとレシーバを結び付ける場所（ルータ）スとレシ バを結び付ける場所（ル タ）• 上流 (Upstream)

LHR

レシ バ
レシーバ

• Trafficが流れてくる方向• 下流 (Downstream)• Trafficが流れて行く方向• ファファーストホップルータ
ストホップル タ (First Hop Router)• ソースが接続されているルータ• ラストホップルータ (Last Hop Router)• レシーバが接続されているルータ
レシ バが接続されているル タ© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

19

IPv6オペレータ育成プログラム

Terminologiesl• マルチキャストグループ
マルチキャストグル プ (Multicast(M lti t GGroup))– マルチキャストトラフィックのSenderとReceiverで構成されるグループ。

• MDT (Multicast Distribution Tree）– マルチキャスト配信ツリー。
– そのMulticast Groupのトラフィックを配信するためのTree。
– 大きく、Shortest
大きく Shortest Path Tree(Source Tree)と、Shared
Tree)と Shared Treeに分類される。
Treeに分類される• Join– マルチキャストグループへの参加。

• Leave(MLD)/Prune(PIM)– マルチキャストグループから離脱。

• ASM (Any Source Multicast)– ソースを特定しないマルチキャストサービス形態。

• SSM ((Source Specificp
Multicast))– ソースが特定されるマルチキャストサービス形態。
© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

20

IPv6オペレータ育成プログラム

MLD(Multicast Listener Discovery)v1/ v2© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

21

IPv6オペレータ育成プログラム

MLDｖ１（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

IPv6オペレータ育成プログラム

MLDv1パケットフォーマット

012
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
p
Delay
y

Reserved

Multicast Address

Type :
130 : Multicast Listener Query- GeneralGl QueryQ- 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宛先アドレスと各種タイマー
メッセージタイプ
ジプ-----------General Query
M lti
Multicast-Address-Specifict Add
Sifi Query
Q
ReportDone

IPv6 宛先
宛 Address-----------------------link-scope all-nodes (FF02::1)
タ ゲ トのターゲットのmulticast
lti
t addressdd
ターゲットのmulticast address
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 Queryy Count(Robustness(
Variable)])]=2[Last Listener Query Interval]=1Sec© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

24

IPv6オペレータ育成プログラム

MLDｖ1 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.

IPv6オペレータ育成プログラム

MLD Querierの選出の選出
MLD
Non-Querier

MLD
Querier
FE80::10

FE80::20

IPv6
IP
6 S
Src=RouterのLink-Local
R t のLi k LlIPv6 Dst=FF02::1
ICMPv6/MLD Query• 最初は全てのRouterがQueryを送信する• 最もIPv6 Address小さいRouterがそのSubnet上でのQuerierとなる。
y• 他のRouterは、自分より小さいSource AddressのQueryを受信した
時点で “Non-Querier”となる© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

IPv6オペレータ育成プログラム

MLDv1 GroupからのLeave
からのMLD
Non-Querier

MLD
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送信

IPv6 Src
Src=HostのLink-Local
HostのLink Local
IPv6 Dst=FF02::2
ICMPv6/MLD Done
Multicast-Address=FF18::1:1

2. MLD QuerierからMulticsat-Address-Specific-Queryを
該当Group Address宛に送信
3 Host2がまだJoinしている場合には”Last Listener Query
3.
Interval”以内にMLD Reportを送信© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

IPv6オペレータ育成プログラム

MLDv1 GroupからのLeave
からのMLD
Non-Querier

MLD
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削除
3.
© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

IPv6オペレータ育成プログラム

MLDｖ2（RFC3810）• GroupだけでなくSourceを指定してのJoin/Leaveが可能 （SSMへの対応）
Join/Leaveが可能。（SSMへの対応）• Include/Exclude Source‐Listの追加• MLDv1とのBackward Compatibility有り• 宛先IPv6アドレスは全てFF02::16© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

29

IPv6オペレータ育成プログラム

MLDv2 Reportパケットフォーマット
012
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

Reserved

Checksum#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

IPv6オペレータ育成プログラム

MLDv2 Multicast Address Recordフォーマット
Record TypeAux Data Len

Number of Sources (N)Multicast Address
Source Address [1]・・・
Source Address [N]Record Type:yp
1. MODE_IS_INCLUDE - IS_IN ({S},G)
2. MODE_IS_EXCLUDE - IS_EX ({S},G)
3 CHANGE
3.
CHANGE_TO_INCLUDE_MODE
TO INCLUDE MODE - TO_IN
TO IN ({S}({S},G)G)
4. CHANGE_TO_EXCLUDE_MODE - TO_EX ({S},G)
5. ALLOW_NEW_SOURCES - ALLOW ({S},G) [(S,G)のJoin]
6 BLOCK6.
BLOCK_OLD_SOURCES
OLD SOURCES - BLOCK ({S}({S},G)G) [(S[(S,G)のLeave]G)のLeave]© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

31

IPv6オペレータ育成プログラム

MLDｖ2 (*,G)/(S,G)へのJoin/の(*,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=(S,G)へJoin(, )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.

IPv6オペレータ育成プログラム

MLDｖ2 (*,G)/(S,G)へのLeave/の(*,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=(S,G)からLeave(, )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.

IPv6オペレータ育成プログラム

MLDｖ2 Queryへの応答の応答
MLDv2 query(*,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=(S,G)へJoin(, )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.

IPv6オペレータ育成プログラム

Multicast ForwardingとPIM (Protocol Independent Multicast)© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

35

IPv6オペレータ育成プログラム

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.

IPv6オペレータ育成プログラム

Reverse Path Forwarding (RPF)• RPF interface(Incoming(g interface))
MDTを構成する際に、Multicast Sourceアドレス/RPアドレスを元に、どのInterfaceが上流のInterfaceかを各Routerで決定
する 決定にはUnicast Routing情報/Multicast用Routingする。決定にはUnicast
情報(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でない
たマルチキャストパケットは下流転送される。RPFでない
Interfaceから受信されたパケットは破棄される。
© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

37

IPv6オペレータ育成プログラム

RPF Check
Multicast
PacketRPF Check Pass=>Forward

E0

×

E1

RPF Check Fail=>DropE2(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

IPv6オペレータ育成プログラム

PIM ヘッダパケットフォーマット
ダ
IPv6 Source Addr
IPv6 Destination Addr
IPv6 NextHeader= Router Link-Local address= Message Typeによる= 103(0x67)

012
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-StopFirst Hop Router(source of register)

3 = Join/Prunei /ALL-PIM-ROUTERS(FF02::D)( 02)

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

IPv6オペレータ育成プログラム

PIM Hello/PIM Neighbor• Router同士は定期的にHello PacketをLink‐Localに送信し、互いをPIM Neighborとして認識する。
g
が PIM Neighborとして認識されていれg• RPF neighbor
ばRPF Neighborに対しJoin/Pruneを送信出来る。
同一Subnet上に複数のPIM
Subnet上に複数のPIM routerが存在する場合• 同
は、PIM DR‐priority（DR‐priorityが同じ場合にはAddressの大小によるtie break）により、Designated
Addressの大小によるtie‐break）により、Designated‐
Router(DR)が1つ決定される。

© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

40

IPv6オペレータ育成プログラム

PIM Neighbor
hb Discovery
PIM Hello
DR-Priority=5

DR

PIM Hello
DR-Priority=10◆そのSubnetの中で最も大きいDR-Priorityを持つRouter（Priorityが同じ場◆そのS
b tの中で最も大きいDR P i it を持 R t （P i 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.

IPv6オペレータ育成プログラム

PIM SM(RFC4601)()◆ RP(Rendezvous Point)となるRouterが必要。
◆Sourceの情報はRPに登録(Register)される。一方、( g)
受信要求はRPに向かってHop-by-Hopで転送されていく。RPはそのマルチキャストドメイン内の(S,G)の情報を
( , )
管理する。
◆１対多、多対多の通信に有効。

© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

IPv6オペレータ育成プログラム

PIM‐SMの動作(1)
動作
③
③PIM
Register受信
受信（S,G）②PIM Register

RP
E0④PIM Register-Stop

E2
E1①Multicast Traffic送信
Src=2001:1::10
Dst=FF18::1:1① SourceがMulticast Trafficを送信(2001:1::10,FF18::1:1)② First Hop RouterがRPへUnicastでPIM Registerを送信
SourceからのMulticast PacketをPIMでEnapしたもの。
③ RPがRegisterを受信し、RPに(S,G)の情報が作られる。
④ RPからFirst Hop RouterへPIM
Router PIM Register
Register-Stopを送信。
Stopを送信。
First Hop RouterはPIM Registerの送信を停止する。
© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

43

IPv6オペレータ育成プログラム

PIM‐SMの動作(2)動作（S,G） ⑦PIM (S,G) Join
⑥PIM (*( ,G)G) Join（*,G）
E0
E2⑤MLD Report

RP⑦PIM (S,G)(S G) Join

⑧TrafficがRPを経由してShared-Treeに従いForwardingされる

E1⑤ Receiverが該当Groupに対してMLD Reportを送信 (*, FF18::1:1)⑥ Last Hop RouterからRPへの方向にPIM (*,G) Joinを送信。
＃RPを頂点とするShared-Tree(RP-Tree)が作られる。
⑦ RPからSource方向へPIM(S,G) Joinを送信⑧ First Hop Routerまで(S,G) Joinが伝播され、SourceからRPを経由した
経路
経路でMulticast
Trafficの転送が始まる。
転送が始まる© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

44

IPv6オペレータ育成プログラム

PIM‐SMの動作(3)動作（S,G）⑨LHRで(S,G) entryが作られる
（ ）
（*,G）
(S,G)
E0
E2
E1
⑩(S,G)Join

RP⑫SourceからShortest Path Tree
Shortest-Path-Tree
経由でも転送が始まる⑪(S,G)Join⑨ SourceからのMulticast Packet受信によりLHRで(S,G)Entryが作られる
このとき、(*,G) RPF-IF = E0
(S,G) RPF-IF = E1
⑩ Sourceに対するRPF方向に(S,G) Joinを送信⑪ Sourceに対するRPF方向に(S,G) Joinを送信＃Sourceを頂点とするShortest-Path-Treeが作られるを頂点とするが作られる⑫ SouceからShortest-Path-Tree経由でもForwardingが始まる© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

45

IPv6オペレータ育成プログラム

PIM‐SMの動作(4)動作（S,G）⑬(S,G,rpt) Prune
（*,G）
（
）
(S,G)
E0
E2

⑭(S,G) Prune⑭(S,G) Prune

RP⑮Stop (*,G) forwarding

E1⑬ Shortest-Path-TreeからTrafficを受信し始めたら、RP経由のTrafficは不要となるため、RP方向へ(S,G,rpt)pruneを送信経由のは不要となるため
方向を送信(*,G)RPF-IF ≠ (S,G) RPF-IF⑭ Shared-Tree経由の転送が停止される。
⑮ Source方向へ(S,G)
S
方向へ(S G) pruneが送信され、Source->RPへの転送が停止される。
が送信され S
>RPへの転送が停止される© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

46

IPv6オペレータ育成プログラム

PIM‐SMの動作(5)動作
Shared-Tree

RP

E0
E2
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

IPv6オペレータ育成プログラム

RPの決定
決定
◆ 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

IPv6オペレータ育成プログラム

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でN t
Network内にFloodする。
k内にFl dする
最も高いBSR Priorityを持つRouterがBSRとして選出される。
© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

49

IPv6オペレータ育成プログラム

PIM BSR
C-RP2
FF18::/64/

C-RP
Advertisement(unicast)

C-RP
Advertisement(unicast)

BSR

C-RP1
FF18::/64

Candidate-RP(C-RP)は選出されたBSRに対してC-RP AdvertisementをUnicaｓｔで送信する。(C-RP-Addr,Group-range,RP-Priority)© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

50

IPv6オペレータ育成プログラム

PIM BSR

BSM
C-RP1,range1,Pri1
C-RP2,range2,Pri2

BSR

BSRは全てのC-RPの情報をBSMでNetwork内にFloodする。
各R t はこのBSMの情報を元にして自身でRPを選択する
各RouterはこのBSMの情報を元にして自身でRPを選択する。

BSR priority
255 > 0
RP priority
0 > 255© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

51

IPv6オペレータ育成プログラム

Embedded‐RP(RFC3956)
Unicast-Prefix based Multicast Addressをベースとして、
Multicast Addressの内部にRPの内部に
Addressを埋め込む。
を埋め込む
Multicast AddressからRP Addressを自動的に判断出来る。
PIM-SMのDomain間接続が主な目的。
8

4

4

4

R P T スコー Reser
RIID
ve
111 プ

=
=
=

11111111 0

4

8

64ビット

32ビット

Plefix長Network Prefix

グループID◆例：

FF78:0140:2001:0123:c001:1100:0000:0001
Unicast prefixgroupID=任意

Embedded RP Address = 2001:0123:c001:1100::1© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

52

IPv6オペレータ育成プログラム

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.

IPv6オペレータ育成プログラム

PIM‐SSMの動作
動作

E0
E2
②MLDv2 Report
(S,G)

E1
③(S,G) Join

④TrafficがShortestPath-Treeを経由して転送送される。

③(S G) Join③(S,G)①Multicast Traffic送信
Src=2001:1::10
Dst=FF38::1:1① SourceがMulticast Trafficを送信(2001:1::10,FF38::1:1)
p
Reportを送信
p② Receiverが該当Group/Sourceに対してMLDv2(2001:1::10,FF38::1:1)③ Last Hop RouterからSourceの方向にPIM (S,G) Joinを送信。
Sourceを頂点とするShortest-Path-Treeが作られる。
④ SourceからShortest-Path-TreeでMulticast Trafficの転送が始まる。
© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

54

IPv6オペレータ育成プログラム

MLD Snooping© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

55

IPv6オペレータ育成プログラム

MLD Snoopingの必要性
必 性◆ MLD awareでないL2 Switchでは、全てのMulticast
Switchでは 全てのMulticast
TrafficはVLAN内の全てのPortにFloodされる。
◆ JoinしているReceiver向けのPortのみにMulticast
Trafficを適切に転送するためにはMLD Snoopingの機能が必要となる。
能が必要となるMLD Snooping無し

Join

Join

MLD Snooping有り

Join

Join

© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

56

IPv6オペレータ育成プログラム

MLD Snooping: GroupへのJoin
Port0

MLD Report(*,FF18::2:1)

CPU

Port1

Port2

Port3

Port4

Router Port=0--------------------McastAddr
Ports--------------------FF18::2:1
Port2,4(3333:0002:0001)

Join

Join

MLD P
Packetは中身をSnoopされ、MLDの中身を元にL2上のForwarding
k tは中身をSされ MLDの中身を元にL2上のF
di
T bl
Table
が作成される。その後、MLD PacketはRouterへ送信される。
© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

57

IPv6オペレータ育成プログラム

MLD Snooping: Entryのメンテナンス
1 x Report

Port0

General Query

CPU

ReportPort1

Report

Port2

Port3

Port4

R t
RouterP
Port=0t 0--------------------McastAddr
Ports--------------------FF18 2 1
FF18::2:1
Port2,4
P t2 4(3333:0002:0001)

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

IPv6オペレータ育成プログラム

MLD Snooping: GroupからのLeave(1)Port0

MLD DoneCPU

MLD Addr-Specific-Query
Port1

Port2

Port3

Port4

Router Port=0--------------------McastAddr
Ports--------------------FF18::2:1
Port2,4(3333 0002 0001)(3333:0002:0001)

×

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

IPv6オペレータ育成プログラム

MLD Snooping: GroupからのLeave(2)Port0

MLD DoneCPU

Addr
Specific
Query
Port1

MLD Done
Port2

Port3

Port4

Router Port=0--------------------McastAddr
Ports--------------------FF18::2:1
Port2(3333 0002 0001)(3333:0002:0001)

Leave

最後のHostがLeaveすると、そのPortに対してMcast-Addr-Specifig-Queryが送信される QueryがTimeoutし受信者が他に居ないことが確認されると そのが送信される。QueryがTimeoutし受信者が他に居ないことが確認されると、そのGroupのMLD Snooping Entryが削除され、RouterへMLD Doneが送信される。
© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

60

IPv6オペレータ育成プログラム

MLD Snooping: その他◆ 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

IPv6オペレータ育成プログラム

MLD Snooping: 即座にTrafficを停止させる機能（参考）IP/TV、監視カメラの環境など、Join/Leaveが頻繁に発生するよう
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アド
p
を送信
(
)
レスをTrackしておき、該当Port上の最後のTracked HostがLeaveしたら即座にPort Entryを削除出来る。
© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

62

IPv6オペレータ育成プログラム

注意すべき構成© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

63

IPv6オペレータ育成プログラム

Receiver SideにおけるDR
Source / RP

MulticastT ffi
Traffic

PIM Join

Router2

Router1

MLD QuerierDR

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.

IPv6オペレータ育成プログラム

Receiver SideにおけるDR
Source / RP

Router2

MLD Querier

Router1
PIM JoinDR

MLD Report

上のような構成でRouter1のUplinkのみがDownした場合には、Router1はLANセグメント側を経由するRouter2側への経路を学習しておく必要がある。
(LANセグメントを”ospf(LANセグメントを
ospf passive
passive”にしている場合等は切り替え不可)にしている場合等は切り替え不可)
また、プロトコルのインプリによっては上記構成がうまくいかないことも。
© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

IPv6オペレータ育成プログラム

PIM‐NeighborUnicast Routingを元にRPF Neighborが決定されても、対向のRouterがPIM-NeighborでないとPIM-Join/Pruneを出せない。
⇒ Multicastが通る可能性のある全てのLinkでPIMをEnableにする。
Source or RP

FE80::3

E1 FE80::4(*,G)/(S,G)
RPF IInterfacet f= E0
RPF Neighbor= FE80::1
PIM Neighbor Interface
FE80 2
FE80::2
E1

FE80::1

PIM Disable

E0 FE80::2

Join/
Prune

RPF NeighborがPIM-NeighborでないためJoinを出せない© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

IPv6オペレータ育成プログラム

VRRPとPIM
OSPF

VRRP

VRRP Master
Virtual-IP

Static Route
NextHop=VRRP V-IP

MLD Report

RPF Neighborとなっているg
VRRP virtualアドレスがPIM-NeighborでないためJoinを出せない© Task Force on IPv4 Address Exhaustion, Japan ALL RIGHT RESERVED.

67

IPv6オペレータ育成プログラム

L2 Switchだけの構成
VLAN X
MLD Querier

MulticastTraffic

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