複数経路が存在するときのマルチキャストパケットの転送

ユニキャストルーティングでは等コストのルートが存在すれば、等コストのルート間で負荷分散することが可能です。ですが、マルチキャストパケットのルーティングではソースからレシーバまで、等コストのルートがあっても負荷分散しません。

マルチキャストパケットのルーティングは、RPFインタフェースで受信したパケットをOILに含まれるインタフェースに転送するという仕組みです。特定のIPアドレスに対するRPFインタフェースはただ一つです。RPFインタフェースがただ一つに決まることから、等コストのルートが存在していてもマルチキャストパケットのルーティングでは負荷分散を行いません。さらに、マルチキャストパケットがルーティングされる経路もRPFインタフェースによって決まってきます。

マルチキャストパケットの転送経路の例

具体的に、次のシンプルなネットワーク構成で考えます。

図 ネットワーク構成例
図 ネットワーク構成例

話を簡単にするために、PIM-DMでマルチキャストルーティングを行っているとします。R1はソースから送信されたマルチキャストパケットをPIMネイバーが存在するインタフェースであるSerial0/0とSerial0/1へフラッディングします。R2には、2つのマルチキャストパケットが届きます。マルチキャストパケットをルーティングするためには、まずRPFチェックを行います。R2のユニキャストルーティングテーブルを考えると、ソースのIPアドレス192.168.1.100に対するユニキャストルーティングテーブルのエントリは、192.168.1.0/24で等コストのルートです。そのネクストホップアドレスと出力インタフェースは、以下の通りです。

  • 192.168.0.1 Serial0/0
  • 192.168.0.5 Serial0/1

RPFインタフェースはただ一つ決まります。等コストのルートの場合は、ネクストホップのIPアドレスが大きいルーティングテーブルのエントリに従ってRPFインタフェースが決まります。つまり、このネットワーク構成の場合、ソースのIPアドレス192.168.1.100に対するRPFインタフェースはSerial0/1です。

R2に届く2つのマルチキャストパケットのうち、Serial0/0で受信したマルチキャストパケットはRPFチェックが失敗するので破棄されます。RPFインタフェースであるSerial0/1で受信したマルチキャストパケットはRPFチェックが成功し、ルーティングされることになります。

RPFチェックが失敗したSerial0/0からPIMネイバーであるR1にPruneメッセージが送信されます。

最終的にソースから送信されたマルチキャストパケットは、R1-R2間のSerial0/1のインタフェースを通じてルーティングされます。

図 マルチキャストパケットの転送経路
図 マルチキャストパケットの転送経路

このように等コストのルートがあっても、マルチキャストパケットのルーティングでは負荷分散は行いません。また、転送経路はユニキャストルーティングテーブルやルータのアドレッシングによって決まってしまうことになります。

ip mrouteコマンド

ルータのアドレッシングやユニキャストルーティングによって決まってしまうマルチキャストパケットがルーティングされる経路を明示的に指定するために、ip mrouteコマンドを利用することができます。ip mrouteコマンドは、特定のアドレス(あるいはアドレス範囲)に対するRPFインタフェース、RPFネイバーをスタティックに設定するためのコマンドです。ip mrouteコマンドの構文は次の通りです。

ip mrouteコマンド

Router(config)#ip mroute <address> <mask> <interface>|<ip-address>

<address>:IPアドレス
<mask>:サブネットマスク
<interface>:RPFインタフェース
<ip-address>:RPFネイバーのIPアドレス

<address> <mask>で指定した範囲のアドレスに対するRPFインタフェースおよびRPFネイバーを設定することができます。

さきほどのネットワーク構成例で、R2で次のように設定すれば192.168.1.0/24に対するRPFインタフェースをSerial0/0に変更することができます。

R2 ip mrouteの設定

ip mroute 192.168.1.0 255.255.255.0 serial0/0

R2でRPFインタフェースをSerial0/0に変更すれば、マルチキャストパケットはR1-R2間のSerial0/0を通じてルーティングされるようになります。

図 ip mroute設定後のマルチキャストパケットの転送経路
図 ip mroute設定後のマルチキャストパケットの転送経路

ここでは、話を簡単にするためにPIM-DMで考えましたが、PIM-SMでも同じです。PIM-SMの場合は、RPFインタフェースを変更することで送信元ツリーや共有ツリーを作成するためのPIM Joinメッセージを送信するインタフェースが変わります。そして、その結果として変更したRPFインタフェースを通じて、マルチキャストパケットがルーティングされるようになります。

IPマルチキャストの仕組み