IPv6マルチキャストルーティング(PIM-SM)

この記事は約14分で読めます。

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)

以上

コメント

タイトルとURLをコピーしました