等コスト パス間での IP マルチキャスト ロード スプリットの前提条件
IP マルチキャストをデバイスで有効にするには、『IP Multicast Routing Configuration Guide』の「Configuring Basic IP Multicast」モジュールに記載されているタスクを使用します。
この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
IP マルチキャストをデバイスで有効にするには、『IP Multicast Routing Configuration Guide』の「Configuring Basic IP Multicast」モジュールに記載されているタスクを使用します。
ロード スプリットとロード バランシングは同じではありません。ロード スプリットでは、複数の等コスト リバース パス フォワーディング(RPF)パスを介して (*, G) および (S, G) トラフィック ストリームをランダムに分散する手段が提供され、必ずしもそれらの等コスト RPF パス上で平衡のとれた IP マルチキャスト トラフィック負荷が得られるわけではありません。IP マルチキャスト トラフィックのロード スプリットに使用される方法は、(*, G) および (S, G) トラフィック ストリームをランダムに分散させることによって、フローをカウントしてではなく、むしろ疑似乱数判定を作成して、使用可能な各 RPF パスに等価な量のトラフィック フローを分散させようとします。これらの方法は総称して等コスト マルチパス(ECMP)マルチキャスト ロード スプリットと呼ばれ、ほぼ同量の帯域幅を使用する多くのトラフィック ストリームがあるネットワークでのロード シェアリングを向上させます。
一連の等コスト リンクにわたってわずか 2、3 の (S, G) または (*, G) ステート フローしかない場合は、それらの良好なバランスが得られる可能性は非常に低くなります。この制限を克服するため、(S, G) ステートの場合は事前に計算された発信元アドレス、または (*, G) ステートの場合はランデブー ポイント(RP)アドレスを使用して、合理的な形式のロード バランシングを実現できます。この制限は、Cisco Express Forwarding(CEF)または EtherChannel でのフロー単位のロード スプリットに同様に適用されます。わずかなフローがある限り、それらの方法でロード スプリットを行っても、何らかの形式の手動によるエンジニアリングなしでは良好なロード分散は得られません。
デフォルトでは、Protocol Independent Multicast スパースモード(PIM-SM)、Source Specific Multicast(PIM-SSM)、双方向 PIM(Bidir-PIM)、グループについては、複数の等コストパスが使用可能な場合、IPv4 マルチキャストトラフィック向けのリバースパスフォワーディング(RPF)は、最も大きい IP アドレスを持つ PIM ネイバーに基づきます。この方法は、最高 PIM ネイバー動作と呼ばれます。この動作は、PIM-SM の RFC 2362 に基づいていますが、PIM-SSM、および Bidir-PIM にも適用されます。
次の図に、複数の等コスト パスが存在する場合の IP マルチキャストのデフォルト動作を説明するためにここで使用するサンプル トポロジを示します。
![]() (注) |
次の図および例では設定内のルータを使用していますが、任意のデバイス(ルータやコントローラ)を使用できます。 |
この図では、2 つの送信元 S1 および S2 が、トラフックを IPv4 マルチキャスト グループ G1 および G2 に送信しています。PIM-SM、PIM-SSM、PIM-DM のいずれかをこのトポロジに使用できます。PIM-SM を使用する場合は、ip pim spt-threshold コマンドのデフォルト 0 がデバイス 2 で使用中であること、内部ゲートウェイプロトコル(IGP)が実行中であること、S1 および S2 (デバイス 2 で入力した場合)で show ip route コマンドの出力に、デバイス 1 のシリアルインターフェイス 0 とシリアルインターフェイス 1 が、デバイス 2 の等コストネクストホップ PIM ネイバーとして表示されることを前提としています。
追加の設定を行うことなく、図に示すトポロジ内の IPv4 マルチキャスト トラフィックは、どちらのインターフェイスがより高い IP アドレスを持っているかに応じて、常に 1 つのシリアル インターフェイス(シリアル インターフェイス 0 またはシリアル インターフェイス 1)を経由して移動します。たとえば、デバイス 1 上のシリアル インターフェイス 0 とシリアル インターフェイス 1 で設定されている IP アドレスが、それぞれ 10.1.1.1 と 10.1.2.1 であるものとします。このシナリオが与えられているとして、PIM-SM と PIM-SSM の場合、デバイス 2 は、図に示されるすべてのソースおよびグループについて、常に PIM 加入メッセージを 10.1.2.1 に送信し、常にシリアル インターフェイス 1 上で IPv4 マルチキャスト トラフィックを受信します。
IPv4 RPF ルックアップが中継マルチキャスト デバイスによって実行され、IPv4 (*,G) および (S, G) マルチキャスト ルート(ツリー)のための RPF インターフェイスと RPF ネイバーが決定されます。RPF ルックアップは、RPF ルート選択とルート パス選択によって構成されます。RPF ルート選択は、マルチキャスト ツリーのルートを特定するために、IP ユニキャスト アドレスだけで動作します。(*, G) ルート(PIM-SM および Bidir-PIM)の場合、マルチキャストツリーのルートはグループ G の RP アドレスです。(S, G) ツリー(PIM-SM、PIM-SSM)の場合、マルチキャストツリーのルートは送信元 S です。RPF ルート選択では、ルーティング情報ベース(RIB)で、また設定済みの場合(または使用可能な場合)は、ディスタンス ベクター マルチキャスト ルーティング プロトコル(DVMRP)ルーティング テーブル、マルチプロトコル ボーダー ゲートウェイ プロトコル(MBGP)ルーティング テーブルまたは設定済みの静的マルチキャストルータで、RP または送信元に対する最適なルートが検索されます。得られたルートが使用可能な 1 つのパスだけだった場合は、RPF ルックアップが完了し、ルートのネクストホップ デバイスおよびインターフェイスが、このマルチキャスト ツリーの RPF ネイバーと RPF インターフェイスになります。そのルートに使用可能な複数のパスがある場合は、ルート パス選択を使用して、どのパスを選択するかが決定されます。
IP マルチキャストでは、ルート パス選択に次の方法が使用できます。
![]() (注) |
IP マルチキャストで使用可能なルート パス選択のデフォルトの方法以外のすべての方法で、いくつかの形式の ECMP マルチキャスト ロード スプリッティングが可能です。 |
最も高い PIM ネイバー:これはデフォルトの方法です。したがって、設定は不要です。複数の等コスト パスが使用できる場合は、RPF for IPv4 マルチキャスト トラフィックは、最も大きい IP アドレスを持つ PIM ネイバーに基づき、その結果、設定しなければ、ECMP マルチキャスト ロード スプリットはデフォルトでディセーブルになります。
ECMP マルチキャスト ロード スプリットの送信元アドレスに基づいた方法:ip multicast multipath コマンドを使用して、ECMP マルチキャスト ロード スプリットを設定できます。この形式の ip multicast multipath コマンドを入力すると、S ハッシュアルゴリズムを使用した送信元アドレスに基づく ECMP マルチキャスト ロード スプリットがイネーブルになります。詳細については、「S ハッシュアルゴリズムを使用した、送信元アドレスに基づく ECMP マルチキャスト ロード スプリット」の項を参照してください。
ECMP マルチキャスト ロード スプリットの送信元アドレスとグループアドレスに基づいた方法:ip multicast multipath コマンドに s-g-hash キーワードと basic キーワードを指定して、ECMP マルチキャスト ロード スプリットを設定できます。この形式の ip multicast multipath コマンドを入力すると、基本 S-G ハッシュアルゴリズムを使用した送信元アドレスとグループアドレスに基づく ECMP マルチキャスト ロード スプリットがイネーブルになります。詳細については、「基本 S-G ハッシュアルゴリズムを使用した、送信元アドレスとグループアドレスに基づく ECMP マルチキャスト ロード スプリット」の項を参照してください。
ECMP マルチキャスト ロード スプリットの送信元アドレス、グループアドレス、ネクストホップアドレスに基づいた方法:ip multicast multipath コマンドに s-g-hash キーワードと next-hop-based キーワードを指定して、ECMP マルチキャスト ロード スプリットを設定できます。この形式のコマンドを入力すると、ネクストホップ ベースの S-G ハッシュ アルゴリズムを使用した、ソース アドレス、グループ アドレス、およびネクストホップ アドレスに基づく ECMP マルチキャスト ロード スプリットが可能になります。詳細については、「送信元アドレス、グループアドレス、およびネクストホップアドレスに基づく ECMP マルチキャスト ロード スプリットのイネーブル化」の項を参照してください。
デフォルト動作(最高 PIM ネイバー動作)は、IP マルチキャストでのどのような形の ECMP ロード スプリットにもならず、使用可能なパスのネクスト ホップ PIM ネイバーの中から最も大きい IP アドレスを持つ PIM ネイバーを選択します。ネクストホップが show ip pim neighbor コマンドの出力に表示された場合、PIM ネイバーとみなされます。これは、PIM Hello メッセージがネクストホップから受信され、タイムアウトしていない場合です。使用可能なネクスト ホップのいずれも PIM ネイバーでない場合は、そのまま最も高い IP アドレスを持つネクスト ホップが選択されます。
一般に、IP マルチキャスト トラフィックのロード スプリットには、次の方法が使用できます。
ソース アドレス、ソース アドレスとグループ アドレス、またはソース アドレスとグループ アドレスとネクスト ホップ アドレスに基づいて、ECMP マルチキャスト ロード スプリッティングをイネーブルにできます。等コスト パスが認識された後、ECMP マルチキャスト ロード スプリットは、ユニキャスト トラフィックと同様に、パケットごとではなく、(S, G) ごとに動作します。
IP マルチキャストをロード スプリットする別の方法としては、2 つ以上の等コスト パスを Generic Routing Encapsulation(GRE)トンネルに統合して、ユニキャスト ルーティング プロトコルがロード スプリットを実行できるようにするか、または Fast または Gigabit EtherChannel インターフェイス、マルチリンク PPP(MLPPP)リンク バンドル、またはマルチリンク フレーム リレー(FR.16)リンク バンドルなどのバンドル インターフェイスを介してロード スプリットできるようにします。
デフォルトでは、IPv4 マルチキャスト トラフィックの ECMP マルチキャスト ロード スプリットはディセーブルになっています。ECMP マルチキャスト ロード スプリットは、ip multicast multipath コマンドを使用してイネーブルにできます。
発信元アドレスに基づく ECMP マルチキャスト ロード スプリットのトラフィックは、S ハッシュ アルゴリズムを使用して、各 (*, G) または (S, G) ステートの RPF インターフェイスが、ステートの解決される RPF アドレスに応じて、使用可能な等コスト パスの中から選択されるようにします。(S, G) ステートの場合、RPF アドレスはステートの発信元アドレスです。(*, G) ステートの場合、RPF アドレスはステートのグループ アドレスに関連付けられた RP のアドレスです。
発信元アドレスに基づいて ECMP マルチキャスト ロード スプリットを設定すると、さまざまなステートのマルチキャスト トラフィックを等コスト インターフェイスのうち複数を介して受信できます。原則として、IPv4 マルチキャストによって適用される方法は、IPv4 CEF でのデフォルトのフロー単位のロード スプリットまたは Fast および Gigabit EtherChannel で使用されるロード スプリットとかなり似ています。しかし、ECMP マルチキャスト ロード スプリットのこの方法は、局在化の影響を受けます。
送信元アドレスとグループ アドレスに基づく ECMP マルチキャスト ロード スプリットでは、送信元アドレスとグループ アドレスに基づいた基本 S-G ハッシュ アルゴリズムと呼ばれる、単純なハッシュが使用されます。基本 S-G ハッシュ アルゴリズムは、ハッシュ値を出すためにランダム化を一切使用しないため、予測可能です。ただし、S-G ハッシュ アルゴリズムは、特定のソースとグループについて、どのデバイス上でそのハッシュが計算されたかに関係なく常に同じハッシュが得られるため、局在化する傾向があります。
![]() (注) |
基本の S-G ハッシュ アルゴリズムでは、Bidir-PIM グループは無視されます。 |
IPv4 マルチキャストの ECMP マルチキャスト ロード スプリットで使用される方法では、同じ数の等コスト パスがトポロジ内の複数の場所に存在するネットワークにおいて、一貫したロード スプリットが可能です。フローを N パスを通過して分割させるために RP アドレスまたは送信元アドレスが計算されると、フローはトポロジ内のすべての場所で同じようにそれらの N パスを通過して分割されます。一貫したロード スプリットによって予測可能性を考慮でき、それにより、IPv4 マルチキャスト トラフィックのロード スプリットを手動で操作できるようになります。
ソース アドレスまたはソースおよびグループ アドレスによってマルチキャスト トラフィックをロード スプリットするために IPv4 マルチキャストで使用されるハッシュ機能には通常、局在化と呼ばれる問題があります。ソース アドレスまたはソースおよびグループ アドレスに基づく ECMP マルチキャスト ロード スプリットの副産物として、局在化は、一部のトポロジ内のルータがロード スプリットに使用可能なすべてのパスを効果的に使用できないという問題です。
次の図に、ソース アドレスに基づく、またはソース アドレスとグループ アドレスに基づく ECMP マルチキャスト ロード スプリットを設定した場合の局在化の問題を説明するために、ここで使用するトポロジを示します。
![]() (注) |
次の図および例では設定内のルータを使用していますが、任意のデバイス(ルータやスイッチ)を使用できます。 |
図に示すトポロジでは、ルータ 7 がルータ 5 およびルータ 6 を経由してソース S1 ~ S10 に向かう 2 つの等コスト パスがあることに注目してください。このトポロジでは、トポロジ内のすべてのルータで ECMP マルチキャスト ロード スプリッティングが ip multicast multipath コマンドを使用して有効になっていると仮定します。このシナリオでは、ルータ 7 は、10 個の (S, G) ステートに等コスト ロード スプリットを適用します。このシナリオにおける局在化の問題は、ルータ 7 に影響します。そのルータがソース S1 ~ S5 についてはルータ 5 でシリアル インターフェイス 0 を選択し、ソース S6 ~ S10 についてはルータ 6 でシリアル インターフェイス 1 を選択することになるからです。さらに、このトポロジでは、局在化の問題による影響はルータ 5 とルータ 6 にも及びます。ルータ 5 には、ルータ 1 上のシリアル インターフェイス 0 およびルータ 2 上のシリアル インターフェイス 1 を経由する S1 ~ S5 への 2 つの等コスト パスがあります。ルータ 5 は、2 つのパスのどちらを使用するかの選択に同じハッシュ アルゴリズムを適用するため、ソース S1 ~ S5 には 2 つのアップストリーム パスのうちの片方だけを使用することになります。つまり、すべてのトラフィックがルータ 1 とルータ 5 を流れるか、またはルータ 2 とルータ 5 を流れるかのいずれかになります。このトポロジでは、ロード スプリットにルータ 1 とルータ 5 およびルータ 2 とルータ 5 を使用することはできません。同様に、局在化問題は、ルータ 3 とルータ 6 およびルータ 4 とルータ 6 に当てはまります。つまり、このトポロジでは、ロード スプリットにルータ 3 とルータ 6 およびルータ 4 とルータ 6 の両方を使用することはできません。
ソース、グループ、およびネクストホップ アドレスに基づいて ECMP マルチキャスト ロード スプリットを設定すると、ソース、グループ、およびネクストホップ アドレスに基づくより複雑なハッシュ、ネクストホップ ベースの S-G ハッシュ アルゴリズムが有効になります。ネクスト ホップ ベースの S-G ハッシュ アルゴリズムは、ハッシュ値の計算にランダム化を一切使用しないため、予測可能です。S ハッシュ アルゴリズムや基本 S-G ハッシュ アルゴリズムと違って、ネクスト ホップ ベースの S-G ハッシュ アルゴリズムに使用されるハッシュ メカニズムは、局在化の傾向がありません。
![]() (注) |
IPv4 マルチキャストにおけるネクストホップ ベースの S-G ハッシュ アルゴリズムは、IPv6 ECMP マルチキャスト ロード スプリットで使用されるものと同じアルゴリズムであり、PIM-SM ブートストラップ デバイス(BSR)に使用されるものと同じハッシュ機能を活用できます。 |
ネクストホップ ベースのハッシュ機能では局在化は生成されず、パスで障害が発生した場合により良い RPF の安定性が維持されます。これらの利点には、ソース アドレスまたは RP IP アドレスを使用して信頼性を持って予測したり、ネクスト ホップ ベースの S-G ハッシュ アルゴリズムを使用した場合にロード スプリットの成果をエンジニアリングしたりすることができないという代償が伴います。多くのカスタマー ネットワークは等コスト マルチパス トポロジを実装しているため、ロード スプリットの手動操作は多くの場合必須ではありません。むしろ、IP マルチキャストのデフォルトの動作が IP ユニキャストと類似している必要があります。つまり、IP マルチキャストはベストエフォート ベースで複数の等コスト パスを使用すると期待されます。そのため、局在化の異常により、IPv4 マルチキャストのロード スプリットはデフォルトで有効にできません。
![]() (注) |
また、CEF ユニキャストのロード スプリットは局在化を示さない方法を使用し、同様にロード スプリットの結果を予測したりロード スプリットの結果を操作するために使用することはできません。 |
ネクストホップ ベースのハッシュ機能では、PIM ネイバーの実際のネクストホップ IP アドレスが計算に取り込まれるため、局在化を回避できます。そのため、ハッシュの結果は各デバイスで異なり、実質的に局在化の問題はありません。局在化の回避に加えて、このハッシュ機能は、パスの障害に直面して選択された RPF パスの安定性も向上させます。4 つの等コスト パスを持つデバイスと、これらのパス間でロード スプリットされる多数のステートを考えます。これらのパスの 1 つに障害が発生し、残りの 3 つのパスが使用可能な状態になったとします。ハッシュ機能の二極化によって使用されるハッシュ機能(S ハッシュおよび基本の S-G ハッシュ アルゴリズムによって使用されるハッシュ機能)を使用して、すべてのステートの RPF パスは再コンバージェンスされるため、それら 3 つのパスの間(特にそれら 3 つのパスのいずれかをすでに使用していたパス)で変更される可能性があります。したがって、これらのステートは、その RPF インターフェイスとネクスト ホップ ネイバーが不必要に変更されることになります。この問題が発生するのは、このアルゴリズムでは、選択されるパスが、考慮できるすべてのパスの総数を取ることにより決定されるためです。このため、いったんパスが変わると、すべてのステートの RPF 選択も変更の対象となります。ネクスト ホップ ベースのハッシュ アルゴリズムでは、RPF の変更されたパスを使用していたステートだけが、残る 3 つのパスのいずれかへと再コンバージェンスする必要があります。すでにこれらのパスのいずれかを使用しているステートは、変更されません。4 つ目のパスが再び稼働し始めると、最初はそれを使用していたステートが、ただちに再コンバージェンスしてそのパスに戻ります。他のステートは、一切影響を受けません。
![]() (注) |
ネクスト ホップ ベースの S-G ハッシュ アルゴリズムでは、Bidir-PIM グループは無視されます。 |
ECMP を介する IP マルチキャスト トラフィックのロード スプリットがイネーブルになっておらず、RP またはソースに向けて複数の等コスト パスが存在する場合、IPv4 マルチキャストは、まず最も大きい IP アドレスの PIM ネイバーを選択します。PIM ネイバーとは、受信した PIM ハロー(または PIMv1 クエリ)メッセージのソース デバイスです。たとえば、IGP で学習された、または 2 つのスタティック ルート経由で設定された 2 つの等コスト パスを持つデバイスを考えてみます。これら 2 つのパスのネクスト ホップは、10.1.1.1 と 10.1.2.1 です。これらのネクスト ホップ デバイスの両方が PIM ハロー メッセージを送信した場合、10.1.2.1 が最も IP アドレスの大きい PIM ネイバーとして選択されます。10.1.1.1 だけが PIM ハロー メッセージを送信した場合は、10.1.1.1 が選択されます。これらのデバイスのどちらも PIM ハロー メッセージを送信しない場合は、10.1.2.1 が選択されます。PIM ハロー メッセージへのこの違いが、スタティック マルチキャスト ルート(mroute)しか持たない特定のタイプのダイナミック フェールオーバー シナリオの構築を可能にします。それ以外では、これはあまり有用ではありません。
![]() (注) |
スタティック mroute の設定の詳細については、ftp://ftpeng.cisco.com/ipmulticast /config-notes/static-mroutes.txt で Cisco IOS IP マルチキャスト FTP サイトにある『Configuring Multiple Static Mroutes in Cisco IOS』設定ノートを参照してください。 |
ECMP を介する IP マルチキャスト トラフィックのロード スプリットがイネーブルになっている場合、ネイバーからの PIM ハロー メッセージの存在は考慮されません。つまり、選択される RPF ネイバーは、そのネイバーからの PIM ハロー メッセージを受信したかどうかに左右されません。選択は、等コスト ルート エントリの有無にだけ依存します。
PIM-SM を (*, G) または (S, G) 転送で使用していた場合、または PIM-SSM を (S, G) 転送で使用していた場合でも、PIM アサート処理が発生したことが原因で ip multicast multipath コマンドでの ECMP マルチキャスト ロード スプリットが有効でなくなる場合もあります。
次の図に、PIM-SM および PIM-SSM での ECMP マルチキャスト ロード スプリットの PIM アサート処理への影響を説明するためにここで使用するサンプル トポロジを示します。
![]() (注) |
次の図および例では設定内のルータを使用していますが、任意のデバイス(ルータやコントローラ)を使用できます。 |
図に示すトポロジでは、デバイス 2 とデバイス 5 の両方がシスコデバイスで、ip multicast multipath コマンドを使用して ECMP マルチキャスト ロード スプリット用に一貫性を持って設定されており、ロードスプリットが期待どおりに動作し続けるようになっています。つまり、両方のデバイスがデバイス 3 とデバイス 4 を等コストネクストホップとして持ち、等コストパスのリストを同じ方法で(IP アドレスにより)ソートします。各 (S, G) ステートまたは (*, G) ステートに対してマルチパス ハッシュ関数を適用すると、それらは同じ RPF ネイバー(デバイス 3 またはデバイス 4)を選択し、その PIM 加入をこのネイバーに送信するようになります。
デバイス 5 とデバイス 2 が ip multicast multipath コマンドで一貫性のないように設定されている場合、またはデバイス 5 がサードパーティ製デバイスの場合は、デバイス 2 とデバイス 5 が、一部の (*, G) ステートまたは (S, G) ステートに対して異なる RPF ネイバーを選択する可能性があります。たとえば、デバイス 2 は、特定の (S, G) ステートに対してデバイス 3 を選択し、デバイス 5 は特定の (S, G) ステートに対してデバイス 4 を選択したりします。このシナリオでは、デバイス 3 とデバイス 4 が両方ともそのステートのトラフィックのギガビット イーサネット インターフェイス 1/0/0 への転送を開始し、お互いの転送したトラフィックを見て、トラフィックの重複を回避するためにアサート処理を開始します。その結果、その (S, G) ステートについては、ギガビット イーサネット インターフェイス 1/0/0 に最も大きい IP アドレスを持つデバイスがトラフィックを転送します。ところが、デバイス 2 とデバイス 5 は両方ともアサート選定での選択結果を追跡し、このアサートで選択されたデバイスが自分がその RPF 選択で計算して得たデバイスと同じでなくても、そのステートのための PIM 加入をこのアサートで選択されたデバイスに送信します。このため、PIM-SM と PIM-SSM では、ECMP マルチキャスト ロード スプリットの動作が保証されるのは、LAN 上のすべてのダウンストリーム デバイスが一貫性を持って設定されたシスコ デバイスである場合だけです。
ユニキャスト ルーティングが変わると、すべての IP マルチキャスト ルーティング ステートが、利用可能なユニキャスト ルーティング情報を元にしてただちに再コンバージェンスされます。特に、1 つのパスが停止した場合、残りのパスがただちに再コンバージェンスされ、そのパスが再び稼働し始めた場合、それ以降は、マルチキャスト転送は、そのパスが停止する前に使用されていた同じ RPF パスに再コンバージェンスされます。再コンバージェンスは、ECMP 上の IP マルチキャスト トラフィックのロード スプリットが設定されているかどうかにかかわらず発生します。
ECMP マルチキャスト ロード スプリットは、BGP を通じて学習した RPF 情報とも、その他のプロトコルから学習した RPF 情報と同じ方法で一緒に動作します。このプロトコルによりインストールされた複数のパスの中から 1 つのパスを選択します。BGP での主な違いは、デフォルトでは単一のパスしかインストールされないことです。たとえば、BGP スピーカーがプレフィックスに 2 つの同一外部 BGP(eBGP)パスを学習した場合、最も小さいデバイス ID を持つパスが最良パスとして選択されます。この最良パスが IP ルーティング テーブルにインストールされます。BGP マルチパス サポートがイネーブルになっており、隣接する同一の AS から複数の eBGP パスが学習された場合、単一の最良パスが選ばれるのではなく、複数のパスが IP ルーティング テーブルにインストールされます。デフォルトでは、BGP は IP ルーティング テーブルに 1 つのパスしかインストールしません。
BGP に学習されるプレフィックスに ECMP マルチキャスト ロード スプリットを使用するには、BGP マルチパスをイネーブルにする必要があります。一度設定されると、BGP によりリモート ネクスト ホップ情報がインストールされた場合、その BGP ネクスト ホップに対して(ユニキャストとして)最良のネクスト ホップを検出するため、RPF ルックアップが再帰的に実行されます。たとえば、与えられたプレフィックスに対して単一の BGP パスしかないのに、その BGP ネクスト ホップに到達する IGP パスが 2 つあった場合、マルチキャスト RPF は、この異なる 2 つの IGP パス間で正しくロード スプリットします。
特定のソースまたは RP に対して IGP を使用して等コスト ルートをインストールすることが可能でない場合、スタティック ルートを設定して、ロード スプリットのための等コスト パスを指定することができます。ソフトウェアは、プレフィックスに対し 1 つのスタティック mroute という設定をサポートしていないため、等コスト パスの設定にスタティック mroute は使用できません。再帰的なルート ルックアップを使用した場合のこの制限にはいくつかの回避策がありますが、その回避策は等コスト マルチパス ルーティングには適用できません。
![]() (注) |
スタティック mroute の設定の詳細については、ftp://ftpeng.cisco.com/ipmulticast/config-notes/static-mroutes.txt で Cisco IOS IP マルチキャスト FTP サイトにある『Configuring Multiple Static Mroutes in Cisco IOS』設定ノートを参照してください。 |
IPv4 マルチキャストでは等コスト マルチパスにスタティック mroute のみを指定できます。しかし、それらのスタティック mroute はマルチキャストにのみ適用できます。または、等コスト マルチパスがユニキャストおよびマルチキャスト ルーティングの両方に適用されるように指定できます。IPv6 マルチキャストでは、このような制限はありません。等コスト マルチパス mroute を、ユニキャスト ルーティングのみ、マルチキャスト ルーティングのみ、またはこの双方に適用するスタティック IPv6 mroute に設定することができます。
IP マルチキャスト トラフィックのロード スプリットは、複数のパラレル リンクを単一のトンネルに統合し、マルチキャスト トラフィックがそのトンネルを介してルーティングされるようにすることによっても達成できます。ロード スプリッティングのこの方法は、ECMP マルチキャスト ロード スプリッティングよりも設定が複雑です。GRE リンクを使用した等コスト パスを介したロード スプリットを設定するのが有利である例として、(S, G) ステートまたは (*, G) ステートの合計数が非常に小さく、各ステートによって伝送される帯域幅の変動が大きいため、ソースまたは RP アドレスの手動でのエンジニアリングでさえトラフィックの適切なロード スプリットを保証できない場合が挙げられます。
![]() (注) |
ECMP マルチキャスト ロード スプリットの可用性があるため、通常は、パケットごとのロード シェアリングが必要な場合にしかトンネルを使用する必要はありません。 |
IP マルチキャスト トラフィックは、ファストまたはギガビット EtherChannel インターフェイス、MLPPP リンク バンドル、マルチリンク フレーム リレー(FRF.16)バンドルなどのバンドル インターフェイスを介したロード スプリットにも使用できます。GRE またはその他のタイプのトンネルも、このような形態のレイヤ 2 リンク バンドルを構成できます。このようなレイヤ 2 メカニズムを使用する場合は、ユニキャストとマルチキャストのトラフィックがどのようにロード スプリットされるかを理解しておく必要があります。
トンネルを介した等コスト パス間で IP マルチキャスト トラフィックをロード スプリットするには、その前に CEF のパケットごとのロード バランシングを設定しておく必要があります。これをしなければ、GRE パケットにパケットごとのロード バランシングが行われません。
発信元アドレスに基づいて複数の等コスト パス間で IP マルチキャスト トラフィックの負荷を分割するには、次のタスクを実行します。
ソースから 2 つ以上の等コスト パスが使用できる場合は、ユニキャスト トラフィックはそれらのパスの間でロード スプリットされます。一方、マルチキャスト トラフィックは、デフォルトでは、複数の等コスト パスの間でロード スプリットすることはありません。一般に、マルチキャスト トラフィックは、RPF ネイバーから下流に流れます。PIM 仕様によると、複数のネイバーが同じメトリックを持つ場合、このネイバーは最も大きい IP アドレスを持っていなければなりません。
ip multicast multipath コマンドでロードスプリットを設定すると、システムは送信元アドレスに基づき、S ハッシュアルゴリズムを使用して複数の等コストパスの間でマルチキャストトラフィックをロードスプリットします。ip multicast multipath コマンドを設定していて、複数の等コストパスが存在する場合、マルチキャストトラフィックを伝送するパスは、送信元 IP アドレスに基づいて選択されます。異なる複数のソースからのマルチキャスト トラフィックが、異なる複数の等コスト パスの間でロード スプリットされます。同一ソースから異なる複数のマルチキャスト グループに送信されたマルチキャスト トラフィックについては、複数の等コスト パスの間でロード スプリットは行われません。
![]() (注) |
ip multicast multipath コマンドは、トラフィックのロードバランシングではなくロードスプリットを行います。ソースからのトラフィックは、そのトラフィックがその他のソースからのトラフィックよりはるかに多い場合でも、1 つのパスしか使用しません。 |
発信元アドレスに基づいて ECMP マルチキャスト ロード スプリットを有効にするには、十分な数の送信元(少なくとも 3 つの送信元)が必要です。
ECMP マルチキャスト ロード スプリットを設定するには、RP が使用できる複数のパスが必要です。
![]() (注) |
送信元または RP がそれぞれ使用できるパスが複数あることを確認するには、ip-address 引数に送信元の IP アドレスまたは RP の IP アドレスを指定して、show ip route コマンドを使用します。コマンドの出力に複数のパスが表示されない場合は、ECMP マルチキャスト ロード スプリットを設定することはできません。 |
最短パス ツリー(SPT)フォワーディングで PIM-SM を使用する場合は、すべての (S, G) ステートのフォワーディングに T ビットを設定する必要があります。
ECMP マルチキャスト ロード スプリットを設定する前に、show ip rpf コマンドを使用して、送信元が IP マルチキャストマルチパス機能を利用できるかどうかを確認しておくことをベストプラクティスとして推奨します。
BGP は、デフォルトでは複数の等コスト パスをインストールしません。maximum-paths コマンドを使用して(たとえば BGP での)マルチパスを設定してください。詳細は、ECMP マルチキャスト ロード スプリットでの BGP の使用のセクションを参照してください。
ソースから 2 つ以上の等コスト パスが使用できる場合は、ユニキャスト トラフィックはそれらのパスの間でロード スプリットされます。一方、マルチキャスト トラフィックは、デフォルトでは、複数の等コスト パスの間でロード スプリットすることはありません。一般に、マルチキャスト トラフィックは、RPF ネイバーから下流に流れます。PIM 仕様によると、複数のネイバーが同じメトリックを持つ場合、このネイバーは最も大きい IP アドレスを持っていなければなりません。
ip multicast multipath コマンドは、同一の PIM ネイバー IP アドレスに複数の等コストパスを介して到達できるような設定はサポートしていません。この状況は、通常、番号付けされていないインターフェイスを使用している場合に発生します。ip multicast multipath コマンドを設定する際は、すべてのインターフェイスに異なる IP アドレスを使用します。
ip multicast multipath コマンドは、トラフィックのロードバランシングではなくロードスプリットを行います。ソースからのトラフィックは、そのトラフィックがその他のソースからのトラフィックよりはるかに多い場合でも、1 つのパスしか使用しません。
ソース アドレスに基づいたマルチキャスト トラフィックの ECMP マルチキャスト ロード スプリット(S ハッシュ アルゴリズムを使用)をイネーブルにして、ネットワーク上にある複数のパスの利点を活かすには、次の作業を実行します。S ハッシュ アルゴリズムは、ハッシュ値の計算にランダム化を一切使用しないため、予測可能です。ただし、S ハッシュ アルゴリズムは、特定のソースについて、ハッシュが計算されたデバイスに関係なく常に同じハッシュが得られるため、局在化する傾向があります。
![]() (注) |
複数の着信インターフェイスからのトラフィックのレシーバになるデバイスで ECMP マルチキャスト ロート スプリットをイネーブルにします。これは、ユニキャスト ルーティングと反対です。ユニキャストの視点からすると、複数の発信インターフェイスに接続されている送信デバイス上でマルチキャストがアクティブになっています。 |
発信元アドレスに基づいて ECMP マルチキャスト ロード スプリットを有効にするには、十分な数の送信元(少なくとも 3 つの送信元)が必要です。
ECMP マルチキャスト ロード スプリットを設定するには、RP が使用できる複数のパスが必要です。
![]() (注) |
送信元または RP がそれぞれ使用できるパスが複数あることを確認するには、ip-address 引数に送信元の IP アドレスまたは RP の IP アドレスを指定して、show ip route コマンドを使用します。コマンドの出力に複数のパスが表示されない場合は、ECMP マルチキャスト ロード スプリットを設定することはできません。 |
最短パス ツリー(SPT)フォワーディングで PIM-SM を使用する場合は、すべての (S, G) ステートのフォワーディングに T ビットを設定する必要があります。
ECMP マルチキャスト ロード スプリットを設定する前に、show ip rpf コマンドを使用して、送信元が IP マルチキャストマルチパス機能を利用できるかどうかを確認しておくことをベストプラクティスとして推奨します。
BGP は、デフォルトでは複数の等コスト パスをインストールしません。maximum-paths コマンドを使用して(たとえば BGP での)マルチパスを設定してください。詳細については、「ECMP マルチキャスト ロード スプリットでの BGP の使用」の項を参照してください。
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
ip multicast multipath 例:
|
S ハッシュ アルゴリズムを使用した、ソース アドレスに基づく ECMP マルチキャスト ロード スプリットをイネーブルにします。
|
ステップ 4 |
冗長トポロジ内のすべてのデバイスで、ステップ 3 を繰り返します。 |
-- |
ステップ 5 |
exit 例:
|
グローバル コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。 |
ステップ 6 |
show ip rpf source-address [group-address ] 例:
|
(任意)IP マルチキャスト ルーティングが RPF チェックの実行に使用する情報を表示します。
|
ステップ 7 |
show ip route ip-address 例:
|
(任意)IP ルーティング テーブルの現在のステータスを表示します。
|
ソース アドレスとグループ アドレスに基づいたマルチキャスト トラフィックの ECMP マルチキャスト ロード スプリット(基本 S-G ハッシュ アルゴリズムを使用)をイネーブルにして、ネットワーク上にある複数のパスの利点を活かすには、次の作業を実行します。基本 S-G ハッシュ アルゴリズムは、ハッシュ値の計算にランダム化を一切しようしないため、予測可能です。ただし、基本 S-G ハッシュ アルゴリズムは、特定のソースとグループについて、ハッシュが計算されているデバイスに関係なく常に同じハッシュが得られるため、局在化する傾向があります。
基本 S-G ハッシュ アルゴリズムは、ECMP マルチキャスト ロード スプリットに対して、S ハッシュ アルゴリズムよりも柔軟なサポートを提供します。ロード スプリットに基本 S-G ハッシュ アルゴリズムを使用すると、特に、グループに多数のストリームを送信するデバイスや、IPTV サーバーや MPEG ビデオ サーバーのように多くのチャネルをブロードキャストするデバイスからのマルチキャスト トラフィックを、複数の等コスト パスの間でより効果的にロード スプリットすることが可能になります。
![]() (注) |
複数の着信インターフェイスからのトラフィックのレシーバになるデバイスで ECMP マルチキャスト ロート スプリットをイネーブルにします。これは、ユニキャスト ルーティングと反対です。ユニキャストの視点からすると、複数の発信インターフェイスに接続されている送信デバイス上でマルチキャストがアクティブになっています。 |
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
ip multicast multipath s-g-hash basic 例:
|
基本 S-G ハッシュ アルゴリズムを使用した、ソース アドレスとグループ アドレスに基づく ECMP マルチキャスト ロード スプリットをイネーブルにします。
|
ステップ 4 |
冗長トポロジ内のすべてのデバイスで、ステップ 3 を繰り返します。 |
-- |
ステップ 5 |
exit 例:
|
グローバル コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。 |
ステップ 6 |
show ip rpf source-address [group-address ] 例:
|
(任意)IP マルチキャスト ルーティングが RPF チェックの実行に使用する情報を表示します。
|
ステップ 7 |
show ip route ip-address 例:
|
(任意)IP ルーティング テーブルの現在のステータスを表示します。
|
ソース アドレス、グループ アドレス、およびネクスト ホップ アドレスに基づいたマルチキャスト トラフィックの ECMP マルチキャスト ロード スプリット(ネクスト ホップ ベースの S-G ハッシュ アルゴリズムを使用)をイネーブルにして、ネットワーク上にある複数のパスの利点を活かすには、次の作業を実行します。ネクスト ホップ ベースの S-G ハッシュ アルゴリズムは、ハッシュ値の計算にランダム化を一切使用しないため、予測可能です。S ハッシュ アルゴリズムや基本 S-G ハッシュ アルゴリズムと違って、ネクスト ホップ ベースの S-G ハッシュ アルゴリズムに使用されるハッシュ メカニズムは、局在化の傾向がありません。
ネクスト ホップ ベースの S-G ハッシュ アルゴリズムは、ECMP マルチキャスト ロード スプリットに対して、S ハッシュ アルゴリズムよりも柔軟なサポートを提供し、局在化の問題をなくします。ECMP マルチキャスト ロード スプリットにネクスト ホップ ベースの S-G ハッシュ アルゴリズムを使用すると、グループに多数のストリームを送信するデバイスや、IPTV サーバーや MPEG ビデオ サーバーのように多くのチャネルをブロードキャストするデバイスからのマルチキャスト トラフィックを、複数の等コスト パスの間でより効果的にロード スプリットすることが可能になります。
コマンドまたはアクション | 目的 | |||
---|---|---|---|---|
ステップ 1 |
enable 例:
|
特権 EXEC モードを有効にします。
|
||
ステップ 2 |
configure terminal 例:
|
グローバル コンフィギュレーション モードを開始します。 |
||
ステップ 3 |
ip multicast multipath s-g-hash next-hop-based 例:
|
ネクスト ホップ ベースの S-G ハッシュ アルゴリズムを使用した、ソース アドレス、グループ アドレス、およびネクスト ホップ アドレスに基づく ECMP マルチキャスト ロード スプリットをイネーブル化します。
|
||
ステップ 4 |
冗長トポロジ内のすべてのルータについて、ステップ 1 ~ 3 を繰り返します。 |
-- |
||
ステップ 5 |
end 例:
|
グローバル コンフィギュレーション モードを終了し、特権 EXEC モードに戻ります。 |
||
ステップ 6 |
show ip rpf source-address [group-address ] 例:
|
(任意)IP マルチキャスト ルーティングが RPF チェックの実行に使用する情報を表示します。
|
||
ステップ 7 |
show ip route ip-address 例:
|
(任意)IP ルーティング テーブルの現在のステータスを表示します。
|
次の例は、S ハッシュ アルゴリズムを使用した、ソース アドレスに基づく ECMP マルチキャスト ロード スプリットをルータ上でイネーブルにする方法を示します。
ip multicast multipath
次の例は、基本 S-G ハッシュ アルゴリズムを使用した、ソース アドレスとグループ アドレスに基づく ECMP マルチキャスト ロード スプリットをルータ上でイネーブルにする方法を示します。
ip multicast multipath s-g-hash basic
次の例は、ネクスト ホップ ベースの S-G ハッシュ アルゴリズムを使用した、ソース アドレス、グループ アドレス、およびネクスト ホップ アドレスに基づく ECMP マルチキャスト ロード スプリットをルータ上でイネーブルにする方法を示します。
ip multicast multipath s-g-hash next-hop-based
関連項目 |
マニュアル タイトル |
---|---|
この章で使用するコマンドの完全な構文および使用方法の詳細。 |
の「IP マルチキャスト ルーティングのコマンド」の項を参照してください。Command Reference (Catalyst 9600 Series Switches) |
標準/RFC | タイトル |
---|---|
RFC 4601 |
『Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol Specification』 |
次の表に、このモジュールで説明する機能のリリースおよび関連情報を示します。
これらの機能は、特に明記されていない限り、導入されたリリース以降のすべてのリリースで使用できます。
リリース |
機能 |
機能情報 |
---|---|---|
Cisco IOS XE Gibraltar 16.11.1 |
IP マルチキャストの最適化:ECMP を介した IP マルチキャストトラフィックのロードスプリット |
ロード スプリットとロード バランシングは同じではありません。ロード スプリットでは、複数の等コスト リバース パス フォワーディング(RPF)パスを介して (*, G) および (S, G) トラフィック ストリームをランダムに分散する手段が提供され、必ずしもそれらの等コスト RPF パス上で平衡のとれた IP マルチキャスト トラフィック負荷が得られるわけではありません。 |
Cisco Feature Navigator を使用すると、プラットフォームおよびソフトウェアイメージのサポート情報を検索できます。Cisco Feature Navigator にアクセスするには、https://cfnng.cisco.com/にアクセスします。