IPv6環境でPIM-SMを使用してマルチキャストルーティングを行う。
構成図
機器はCMLのIOSv(15.9(3)M4)を使用。マルチキャストルーティングを行う前提としてIGPでNWの済から隅までルーティングできる状態にする必要があるため、全ルータでOSPFv3を有効化する。
SenderとReceiver以外でマルチキャストルーティング(ipv6 multicast-routing)を有効化する。IPv4 PIMはマルチキャストルーティングを有効化するインタフェースでip pim sperse-modeコマンドが必要となるが、IPv6 PIMではIPv6 multicast-routingコマンドを実行することで、IPv6が有効化されているインタフェースで自動的にPIMv6が有効化される。ReceiverはMLDv2(IGMPv3のIPv6版)を有効化し、マルチキャストグループ(FF05::1)に参加する。R2のLoopbackアドレス(2:2:2:2::)をRPに指定する。
コンフィグ全体
マルチキャストルーティングのコンフィグ
IPv6 PIM-SMのマルチキャストルーティングに関する設定は以下の2つのみ。
ipv6 multicast-routing
ipv6 pim rp-address 2:2:2:2::
Receiverは、マルチキャストを受信する設定が必要になるため、MLDv2を有効化する。
int gi0/0
ipv6 mld join-group ff05::1
つまるところ、マルチキャストトラフィックを中継する必要があるルータでPIMv6を有効化し、ReceiverではMLDv2を有効化する。Senderはマルチキャストルーティングに関する設定は不要。
動作確認
まず、PIMネイバーの形成を確認する。OSPFv3等のIGPも同様だが、ネイバーを形成する際(Helloパケットを送信する際)はリンクローカルアドレスを使用することに注意する。
R1#show ipv6 pim nei
PIM Neighbor Table
Mode: B - Bidir Capable, G - GenID Capable
Neighbor Address Interface Uptime Expires Mode DR pri
FE80::2 GigabitEthernet0/1 00:04:22 00:01:23 B G DR 1
FE80::2 GigabitEthernet0/2 00:04:11 00:01:33 B G DR 1
次にマルチキャストグループFF05::1のRPを確認する。RPが2:2:2:2::(R2)であることが確認できる。
R1#show ipv6 pim group-map ff05::1
IP PIM Group Mapping Table
(* indicates group mappings being used)
FF00::/8*
SM, RP: 2:2:2:2::
RPF: Gi0/1,FE80::2
Info source: Static
Uptime: 00:08:43, Groups: 0
ReceiverでMLDv2を有効化していない状態でSenderからマルチキャストトラフィックを流してみる。すると、Receiverが存在しないため、R1、R2のディストリビューションツリーのOILはNullとなる。
R1#show ipv6 mroute
Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group,
C - Connected, L - Local, I - Received Source Specific Host Report,
P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set,
J - Join SPT, Y - Joined MDT-data group,
y - Sending to MDT-data group
g - BGP signal originated, G - BGP Signal received,
N - BGP Shared-Tree Prune received, n - BGP C-Mroute suppressed,
q - BGP Src-Active originated, Q - BGP Src-Active received
E - Extranet
Timers: Uptime/Expires
Interface state: Interface, State
(2010::1, FF05::1), 00:00:33/00:02:56, flags: SPFT
Incoming interface: GigabitEthernet0/0
RPF nbr: 2010::1
Outgoing interface list: Null
R2#show ipv6 mroute
Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group,
C - Connected, L - Local, I - Received Source Specific Host Report,
P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set,
J - Join SPT, Y - Joined MDT-data group,
y - Sending to MDT-data group
g - BGP signal originated, G - BGP Signal received,
N - BGP Shared-Tree Prune received, n - BGP C-Mroute suppressed,
q - BGP Src-Active originated, Q - BGP Src-Active received
E - Extranet
Timers: Uptime/Expires
Interface state: Interface, State
(2010::1, FF05::1), 00:01:28/00:02:56, flags: SP
Incoming interface: GigabitEthernet0/1
RPF nbr: FE80::1
Outgoing interface list: Null
R2⇒R3にはマルチキャストトラフィックは流れないため、R3のディストリビューションツリーは空となる。
続いて、ReceiverでMLDv2を有効化する。
Receiver#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Receiver(config)#int gi0/0
Receiver(config-if)#ipv6 mld join-group ff05::1
Receiver(config-if)#end
Receiver#wr
すると、R3のGi0/0にマルチキャストグループFF05::1を受信するホストが存在することが確認できる。
R3#show ipv6 mld group
MLD Connected Group Membership
Group Address Interface Uptime Expires
FF05::1 GigabitEthernet0/0 00:00:22 00:03:58
これでSenderからReceiverまでIPv6マルチキャストルーティングが可能な状態となる。SenderでFF05::1宛にpingを実行する。
Sender#ping ff05::1
Output Interface: GigabitEthernet0/0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FF05::1, timeout is 2 seconds:
Packet sent with a source address of 2010::1
Reply to request 0 received from 2050::1, 27 ms
Reply to request 1 received from 2050::1, 3 ms
Reply to request 1 received from 2050::1, 10 ms
Reply to request 2 received from 2050::1, 3 ms
Reply to request 3 received from 2050::1, 3 ms
Reply to request 4 received from 2050::1, 2 ms
Success rate is 100 percent (5/5), round-trip min/avg/max = 2/8/27 ms
6 multicast replies and 0 errors.
ping実行後、R1、R2、R3のディストリビューションツリーは以下の通りとなる。
R1#show ipv6 mroute
Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group,
C - Connected, L - Local, I - Received Source Specific Host Report,
P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set,
J - Join SPT, Y - Joined MDT-data group,
y - Sending to MDT-data group
g - BGP signal originated, G - BGP Signal received,
N - BGP Shared-Tree Prune received, n - BGP C-Mroute suppressed,
q - BGP Src-Active originated, Q - BGP Src-Active received
E - Extranet
Timers: Uptime/Expires
Interface state: Interface, State
(2010::1, FF05::1), 00:03:12/00:00:17, flags: SFT
Incoming interface: GigabitEthernet0/0
RPF nbr: 2010::1
Immediate Outgoing interface list:
GigabitEthernet0/2, Forward, 00:00:44/00:02:44
⇒Tビットが存在するため、(S,G)エントリに従って最短パスでマルチキャストルーティングを行う。
⇒RP(R2)は経由しない。
R2#show ipv6 mroute
Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group,
C - Connected, L - Local, I - Received Source Specific Host Report,
P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set,
J - Join SPT, Y - Joined MDT-data group,
y - Sending to MDT-data group
g - BGP signal originated, G - BGP Signal received,
N - BGP Shared-Tree Prune received, n - BGP C-Mroute suppressed,
q - BGP Src-Active originated, Q - BGP Src-Active received
E - Extranet
Timers: Uptime/Expires
Interface state: Interface, State
(*, FF05::1), 00:02:09/00:03:22, RP 2:2:2:2::, flags: S
Incoming interface: Tunnel2
RPF nbr: 2:2:2:2::
Immediate Outgoing interface list:
GigabitEthernet0/2, Forward, 00:02:09/00:03:22
(2010::1, FF05::1), 00:00:55/00:03:27, RP 2:2:2:2::, flags: SPR
Incoming interface: Tunnel2
RPF nbr: 2:2:2:2::
Immediate Outgoing interface list:
GigabitEthernet0/2, Null, 00:00:55/00:03:22
(2010::1, FF05::1), 00:03:24/00:03:27, flags: S
Incoming interface: GigabitEthernet0/1
RPF nbr: FE80::1
Inherited Outgoing interface list:
GigabitEthernet0/2, Forward, 00:02:09/00:03:22
R3#show ipv6 mroute
Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group,
C - Connected, L - Local, I - Received Source Specific Host Report,
P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set,
J - Join SPT, Y - Joined MDT-data group,
y - Sending to MDT-data group
g - BGP signal originated, G - BGP Signal received,
N - BGP Shared-Tree Prune received, n - BGP C-Mroute suppressed,
q - BGP Src-Active originated, Q - BGP Src-Active received
E - Extranet
Timers: Uptime/Expires
Interface state: Interface, State
(*, FF05::1), 00:02:29/never, RP 2:2:2:2::, flags: SCJ
Incoming interface: GigabitEthernet0/1
RPF nbr: FE80::1
Immediate Outgoing interface list:
GigabitEthernet0/0, Forward, 00:02:29/never
(2010::1, FF05::1), 00:01:16/00:02:15, flags: SJT
Incoming interface: GigabitEthernet0/2
⇒(S,G)エントリでは最短パスとなるR1がRPFネイバーとなる。
RPF nbr: FE80::1
Inherited Outgoing interface list:
GigabitEthernet0/0, Forward, 00:02:29/never
⇒Receiverから受信したMLDv2 joinに従い、Receiverにマルチキャストトラフィックを複製し、転送。
R3#show ipv6 mld int gi0/0
GigabitEthernet0/0 is up, line protocol is up
Internet address is FE80::2/10
MLD is enabled on interface
Current MLD version is 2
⇒MLDv2が有効。
MLD query interval is 125 seconds
MLD querier timeout is 255 seconds
MLD max query response time is 10 seconds
Last member query response interval is 1 seconds
MLD activity: 7 joins, 0 leaves
MLD querying router is FE80::2 (this system)
以上
コメント