項目一覧
IGMP の設定
グループ メンバーシップ プロトコルについて
ホストとルーティングデバイス間で使用されるマルチキャストプロトコルと、マルチキャストルーティングデバイス自体間で使用されるマルチキャストプロトコルには大きな違いがあります。特定のサブネットワーク上のホストは、特定のマルチキャストグループからのパケットの受信に関心があるかどうかのみをルーティングデバイスに通知する必要があります。送信元ホストは、そのルーティング デバイスに、それが特定のマルチキャスト グループのトラフィックの送信元であることを通知するだけで済みます。言い換えれば、どのホストも配布ツリーの詳細な知識を必要としません。マルチキャスト グループへの参加をルーティング デバイスに通知するために必要なのは、グループ メンバーシップ プロトコルだけです。一方、隣接するルーティング デバイス間では、マルチキャスト ルーティング プロトコルは、送信元からリーフまでのネットワーク トポロジーと配信ツリーの詳細な認識を構築するため、ループを回避する必要があります。そのため、マルチキャスト ネットワークのホストルーター部分とルーター ルーター部分では、異なるマルチキャスト プロトコルが使用されます。
マルチキャストグループメンバーシッププロトコルを使用すると、直接接続されたサブネット(通常はLAN)上のホストが特定のマルチキャストグループからのトラフィックを受信したいときに、ルーティングデバイスが検出できます。LAN 上の複数のホストがそのマルチキャスト グループのトラフィックを受信したい場合でも、LAN 固有のブロードキャスト特性のため、ルーティング デバイスはそのマルチキャスト グループの各パケットのコピーを 1 つだけそのインターフェイスに送信します。マルチキャストグループメンバーシッププロトコルが、サブネット上に関係するホストがないことをルーティングデバイスに通知すると、パケットは保留され、そのリーフは配信ツリーからプルーニングされます。
Internet Group Management Protocol(IGMP)およびMulticast Listener Discovery(MLD)プロトコルは、標準のIPマルチキャストグループメンバーシッププロトコルです。 IGMP と MLD には、ホストとルーティング デバイスでサポートされている複数のバージョンがあります。
IGMPv1—RFC 1112 で定義された元のプロトコル。明示的な参加メッセージはルーティング デバイスに送信されますが、ホストがグループから離脱するタイミングを判断するためにタイムアウトが使用されます。このプロセスは、ルーティングデバイス、特に古いまたは小さなルーティングデバイスの処理サイクルを浪費します。
IGMPv2—RFC 2236 で定義されています。IGMPv2 では、参加メッセージに明示的な脱退メッセージを追加することで、LAN 上に関心のあるリスナーがいないグループをルーティング デバイスがより簡単に判断できるようにしています。
IGMPv3—RFC 3376 で定義されています。IGMPv3 は、マルチキャスト グループ、または SSM(Source-Specific Multicast)の単一コンテンツ ソースのサポートを最適化します。
MLDv1—RFC 2710 で定義されています。MLDv1 は IGMPv2 と似ています。
MLDv2—RFC 3810 で定義されています。IGMPv3 に類似した MLDv2。
IGMP と MLD のさまざまなバージョンには、下位互換性があります。ルーティング・デバイスでは、LANインターフェイス上で複数のバージョンのIGMPおよびMLDを実行するのが一般的です。下位互換性は、LAN 上で実行されるすべてのバージョンの中で最も基本的なバージョンに戻すことで実現されます。たとえば、1 つのホストが IGMPv1 を実行している場合、IGMPv2 を実行している LAN に接続されているルーティング デバイスは IGMPv1 動作にドロップバックでき、IGMPv2 の利点が事実上なくなります。複数の IGMP バージョンを実行することで、IGMPv1 と IGMPv2 の両方のホストが、ルーティング デバイス上でそれぞれのバージョンのピアを見つけるようになります。
MXシリーズプラットフォームでは、インストール時のJunos OSリリースに応じて、IGMPv2とIGMPv3を同じインターフェイス上で一緒に設定できることとできない場合があります。両方を一緒に設定すると、マルチキャストトラフィック転送で予期しない動作が発生する可能性があります。
参照
IGMPについて
IGMP(インターネット グループ管理プロトコル)は、マルチキャスト グループ内のホストとルーティング デバイスのメンバーシップを管理します。IP ホストは IGMP を使用して、そのマルチキャスト グループ メンバーシップを、すぐ隣接するマルチキャスト ルーティング デバイスに報告します。マルチキャスト ルーティング デバイスは、IGMP を使用して、接続された物理ネットワークごとに、どのグループにメンバーがいるかを学習します。
IGMP は、関連する複数のマルチキャスト プロトコル(たとえば、DVMRP(Distance Vector Multicast Routing Protocol)や PIMv1(Protocol Independent Multicast version 1)など)のトランスポートとしても使用されます。
ルーティング デバイスは、ダウンストリーム グループ メンバーを持つ隣接ルーティング デバイスから明示的な参加およびプルーニング メッセージを受信します。PIM が使用中のマルチキャスト プロトコルである場合、IGMP は次のようにプロセスを開始します。
マルチキャスト グループ G に参加するために、ホストは IGMP を介してメンバーシップ情報を伝達します。
そして、ルーティング・デバイスは、マルチキャスト・グループG宛てのデータパケットを、明示的なジョイン・メッセージが受信されたインターフェイスにのみ転送します。
指定ルーター(DR)は、アクティブなメンバーがいる各グループのグループ固有のランデブーポイント(RP)に向けて、定期的な参加メッセージとプルーニングメッセージを送信します。1 つ以上のルーティング デバイスが自動的または静的に RP として指定され、すべてのルーティング デバイスが RP を介して明示的に参加する必要があります。
RP に向かうパスに沿った各ルーティング デバイスは、グループのワイルドカード(任意のソース)状態を構築し、RP に向けてジョイン メッセージとプルーニング メッセージを送信します。
ルートエントリーという用語は、ルーティングデバイスで維持される状態を指し、ディストリビューションツリーを表すために使用されます。
ルート エントリには、次のようなフィールドを含めることができます。
送信元アドレス
グループ アドレス
パケットが受け入れられる着信インターフェイス
パケットが送信される発信インターフェイスのリスト
タイマー
フラグビット
ワイルドカード ルート エントリーの着信インターフェイスは、RP の方向を指しています。
発信インターフェイスは、RP に向けてジョイン メッセージおよびプルーニング メッセージを送信した隣接するダウンストリーム ルーティング デバイスと、グループ G へのメンバーシップを要求した直接接続されたホストを指します。
この状態では、すべてのグループ メンバーに到達する共有の RP 中心の分散ツリーが作成されます。
IGMP は、関連する複数のマルチキャスト プロトコル(たとえば、DVMRP(Distance Vector Multicast Routing Protocol)や PIMv1(Protocol Independent Multicast version 1)など)のトランスポートとしても使用されます。
Junos OS リリース 15.2 以降、PIMv1 はサポートされていません。
IGMP は IP の不可欠な部分であり、IPマルチキャスト トラフィックを受信する必要があるすべてのルーティング デバイスとホストで有効にする必要があります。
各接続されたネットワークに対して、マルチキャスト ルーティング デバイスはクエリアまたは非クエリアのいずれかになります。クエリア ルーティング デバイスは、一般的なクエリ メッセージを定期的に送信して、グループ メンバーシップ情報を求めます。マルチキャスト グループのメンバーであるネットワーク上のホストは、レポート メッセージを送信します。ホストがグループを脱退すると、グループ脱退メッセージを送信します。
IGMP バージョン 3(IGMPv3)は、包含リストと除外リストをサポートしています。包含リストを使用すると、マルチキャストグループに送信できるソースを指定できます。このタイプのマルチキャスト グループは、SSM(Source-Specific Multicast)グループと呼ばれ、そのマルチキャストアドレスは 232/8 です。
IGMPv3は、送信元フィルタリングのサポートを提供します。例えば、ルーティング・デバイスは、トラフィックを受諾または拒否する特定のルーティング・デバイスを指定することができます。IGMPv3 を使用すると、マルチキャスト ルーティング デバイスは、隣接するルーティング デバイスにとって関心のあるソースを学習できます。
除外モードは、包含リストとは逆の動作をします。これにより、リストされているもの以外のすべての送信元をSSMグループに送信できます。
IGMPv3 は、プロトコルのバージョン 1 および 2 と相互運用します。ただし、旧式の IGMP ホストおよびルーティング デバイスとの互換性を維持するために、IGMPv3 ルーティング デバイスは、プロトコルのバージョン 1 および 2 も実装する必要があります。IGMPv3 は、次のメンバーシップ レポート レコード タイプをサポートします。 モードが許可され、新しいソースが許可され、古いソースがブロックされます。
参照
IGMP の設定
開始する前に、以下を実行します。
ルーターがマルチキャストソースに直接接続されているかどうかを確認します。受信者は、これらのソースを特定できる必要があります。
ルーターがマルチキャストグループの受信機に直接接続されているかどうかを確認します。受信機が存在する場合は、IGMPが必要です。
スパース、デンス、またはスパースデンスモードを使用するようにマルチキャストを構成するかどうかを決定します。各モードには、異なる構成上の考慮事項があります。
スパース モードまたはスパース デンスモードを使用する場合、RP のアドレスを決定します。
スタティック設定、BSR、または自動 RP 方式のいずれで RP を見つけるかを決定します。
スパース、デンス、またはスパースデンスモードでPIMを設定する際に、マルチキャストが独自のRPFルーティングテーブルを使用するように設定するかどうかを決定します。
マルチキャスト セッションのアナウンスをリッスンするように SAP プロトコルと SDP プロトコルを構成します。 セッションアナウンスメントプロトコルの設定を参照してください。
Internet Group Management Protocol(IGMP)を設定するには、 igmp ステートメントを含めます。
igmp { accounting; interface interface-name { disable; (accounting | no-accounting); group-policy [ policy-names ]; immediate-leave; oif-map map-name; promiscuous-mode; ssm-map ssm-map-name; static { group multicast-group-address { exclude; group-count number; group-increment increment; source ip-address { source-count number; source-increment increment; } } } version version; } query-interval seconds; query-last-member-interval seconds; query-response-interval seconds; robust-count number; traceoptions { file filename <files number> <size size> <world-readable | no-world-readable>; flag flag <flag-modifier> <disable>; } }
以下の階層レベルでこのステートメントを使用することができます。
[edit protocols][edit logical-systems logical-system-name protocols]
デフォルトでは、IGMP は、PIM(プロトコル独立マルチキャスト)を設定するすべてのインターフェイスと、DVMRP(ディスタンスベクトルマルチキャストルーティングプロトコル)を設定するすべてのブロードキャストインターフェイスで有効になっています。
PIMを設定せずに、インターフェイスにIGMPを設定できます。PIM は、通常、IGMP ダウンストリーム インターフェイスでは必要ありません。そのため、ルーター上のすべての IGMP ダウンストリーム(IGMP のみ)のインターフェイスを表す「疑似 PIM インターフェイス」は 1 つだけ作成されます。これにより、メモリなどのルーターリソースの消費量が削減されます。マルチキャスト ルーティングを有効にし、マルチキャスト データパケットのリバースパス転送を実行し、アップストリーム インターフェイスのマルチキャスト転送テーブルにデータを入力し、双方向 PIM および PIM スパース モードの場合は、IGMP グループ メンバーシップをマルチキャスト ルーティング ドメインに配布するには、アップストリーム IGMP インターフェイスで PIM を設定する必要があります。
IGMP の有効化
インターネットグループ管理プロトコル(IGMP)は、サブネット上でグループを確立、維持、削除することで、マルチキャストグループを管理します。マルチキャスト ルーティング デバイスは、IGMP を使用して、接続された各物理ネットワーク上にメンバーを持つグループを学習します。ルーターがIPv4マルチキャストパケットを受信するには、IGMPを有効にする必要があります。IPv6ネットワークではマルチキャストの処理方法が異なるため、IGMPはIPv4ネットワークにのみ必要です。IGMP は、PIM を設定するすべての IPv4 インターフェイス、および DVMRP を設定するすべての IPv4 ブロードキャスト インターフェイスで自動的に有効になります。
インターフェイスで PIM および DVMRP が設定されていないか、インターフェイスで IGMP が明示的に無効になっているため、IGMP がインターフェイスで実行されていない場合は、IGMP を明示的に有効にできます。
IGMP を明示的に有効にするには:
参照
IGMP ホストクエリー メッセージ間隔の変更
IGMPの目的は、サブネット全体のグループメンバーシップでルーターを最新の状態に保つことです。ルーターは、すべてのメンバーが誰であるかを知る必要はなく、そのメンバーが存在することだけを知ることができます。各ホストは、どのマルチキャスト グループがサブスクライブしているかを追跡します。各リンクで、1 つのルーターがクエリアに選択されます。IGMP クエリア ルーターは、接続された各ネットワークで一般的なホスト クエリ メッセージを定期的に送信して、メンバーシップ情報を求めます。メッセージは、全システム マルチキャスト グループ アドレス 224.0.0.1 に送信されます。
クエリ間隔、応答間隔、および堅牢性変数は、すべてグループ メンバーシップ タイムアウトの計算に使用される変数であるという点で関連しています。グループ メンバーシップ タイムアウトは、マルチキャスト ルーターがサブネット上にホスト グループのメンバーが存在しないと判断するまでに経過する必要がある秒数です。グループ メンバーシップのタイムアウトは、(堅牢性変数 x クエリ間隔) + (クエリ応答間隔) として計算されます。グループ メンバーシップ タイムアウトの期限が切れる前に特定のグループのレポートが受信されなかった場合、ルーティング デバイスは、そのグループのリモートから発信されたマルチキャスト パケットを、接続されたネットワークに転送するのを停止します。
デフォルトでは、ホストクエリーメッセージは 125 秒ごとに送信されます。この間隔を変更して、サブネット上で送信される IGMP メッセージの数を変更できます。
クエリ間隔を変更するには、次のようにします。
参照
IGMP クエリー応答間隔の変更
クエリ応答間隔は、クエリア ルーターがホスト クエリ メッセージを送信してからホストから応答を受信するまでの最大経過時間です。この間隔を設定することで、サブネット上の IGMP メッセージのバースト ピークを調整できます。間隔を長く設定して、トラフィックのバースト性を低くします。バースト性トラフィックとは、データ伝送の不均一なパターンのことで、データ伝送速度が非常に高い場合もあれば、非常に低い場合もあります。
クエリ応答間隔、ホストクエリ間隔、および堅牢性変数は、すべてグループ メンバーシップ タイムアウトの計算に使用される変数であるという点で関連しています。グループ メンバーシップ タイムアウトは、マルチキャスト ルーターがサブネット上にホスト グループのメンバーが存在しないと判断するまでに経過する必要がある秒数です。グループ メンバーシップのタイムアウトは、(堅牢性変数 x クエリ間隔) + (クエリ応答間隔) として計算されます。グループメンバーシップタイムアウトの期限が切れる前に、特定のグループのレポートが受信されなかった場合、ルーティングデバイスは、そのグループのためにリモートで発信されたマルチキャストパケットを、接続されたネットワークに転送するのを停止します。
既定のクエリ応答間隔は 10 秒です。小数点以下 1 桁までサブ秒間隔を設定できます。設定可能な範囲は 0.1 から 0.9 で、その後 1 秒間隔で 1 から 999,999 です。
クエリの応答間隔を変更するには、次のようにします。
参照
IGMP の即時脱退ホスト削除の指定
即時脱退設定は、IGMP メンバーシップの脱退遅延を最小限に抑えるのに役立ちます。この設定を有効にすると、最後のホストがマルチキャストグループから離れた直後に、ルーティングデバイスがマルチキャストグループから離脱します。
即時脱退設定では、ホスト トラッキングが有効になり、デバイスは参加メッセージを送信するホストを追跡できます。これにより、IGMP は、最後のホストがマルチキャスト グループの脱退メッセージを送信するタイミングを判断できます。
即時脱退設定が有効な場合、デバイスは、最初にIGMPグループ固有のクエリーをインターフェイスに送信せずに、転送テーブルエントリからインターフェイスを削除します。インターフェイスは、IGMP 脱退メッセージで指定されたマルチキャスト グループのマルチキャスト ツリーからプルーニングされます。即時脱退設定により、複数のマルチキャスト グループが同時に使用されている場合でも、スイッチド ネットワーク上のホストの帯域幅管理が最適化されます。
即時脱退が無効で、一方のホストが脱退グループメッセージを送信した場合、ルーティングデバイスはまずグループクエリを送信して、別の受信者が応答するかどうかを判断します。応答するレシーバーがない場合、ルーティング デバイスはインターフェイス上のすべてのホストをマルチキャスト グループから削除します。即時脱退は、IGMP バージョン 2 と IGMP バージョン 3 の両方でデフォルトで無効になっています。
即時脱退を有効にすると IGMPv2 および MLDv1 のホスト トラッキングが有効になりますが、これらのバージョンでは、インターフェイス上に 1 つのホストがある場合にのみ即時脱退を使用します。その理由は、IGMPv2 と MLDv1 では、インターフェイス上の 1 つのホストだけがメンバーシップ クエリーに応答してグループ参加レポートを送信するレポート抑制メカニズムを使用しているためです。他の関心のあるホストは、レポートを抑止します。このメカニズムの目的は、同じグループに対するレポートの洪水を回避することです。しかし、ルーターは 1 つの関心のあるホストについてのみ認識し、他のホストについては認識しないため、ホストの追跡にも干渉します。
インターフェイスで即時脱退を有効にするには:
参照
IGMP インターフェイス レベルでの不要な IGMP レポートのフィルタリング
特定のマルチキャスト グループに参加できるサブネットを制限する必要があるとします。 group-policy ステートメントを使用すると、インターフェイスレベルで不要なIGMPレポートをフィルタリングできます。IGMPバージョン2(IGMPv2)またはバージョン3(IGMPv3)を実行しているルーターでこのステートメントが有効になっている場合、ルーターがIGMPレポートを受信した後、ルーターはグループを指定されたグループポリシーと比較し、そのポリシーで設定されたアクションを実行します(たとえば、ポリシーが定義されたアドレスまたはネットワークと一致する場合はレポートを拒否します)。
グループ アドレスを照合するポリシーの route-filter ステートメントを使用して、IGMP グループ アドレス(IGMPv2 用)のみに一致するようにポリシーを定義します。IGMP(送信元、グループ)アドレス(IGMPv3用)に一致するようにポリシーを定義するには、ポリシーの route-filter ステートメントを使用してグループアドレスと一致させ、ポリシーの source-address-filter ステートメントを使用して送信元アドレスと一致させます。
MXシリーズプラットフォームでは、インストール時のJunos OSリリースに応じて、IGMPv2とIGMPv3を同じインターフェイス上で一緒に設定できることとできない場合があります。両方を一緒に設定すると、マルチキャストトラフィック転送で予期しない動作が発生する可能性があります。
不要なIGMPレポートをフィルタリングするには:
参照
リモート サブネットワークからの IGMP メッセージの受け入れ
デフォルトでは、IGMP インターフェイスは、同じサブネットからの IGMP メッセージのみを受け入れます。 promiscuous-mode ステートメントを含めることで、ルーティングデバイスは、間接的に接続されたサブネットからのIGMPメッセージを受け入れることができます。
/ 32 ループバックアドレスをドナーアドレスとして使用する番号なしイーサネットインターフェイスでIGMPを有効にする場合、このインターフェイスで受信したIGMPパケットを受け入れるようにIGMPプロミスキャスモードを設定する必要があります。
promiscuous-modeを有効にする場合、イーサネットセグメント上のすべてのルーターをpromiscuous modeステートメントで設定する必要があります。それ以外の場合、最小のIPv4アドレスで構成されたインターフェイスのみが、このイーサネットセグメントのIGMPのクエリアとして機能します。
インターフェイスでIGMPプロミスキャスモードを有効にするには:
参照
IGMP ラストメンバー クエリー間隔の変更
last-member クエリ間隔は、グループ脱退メッセージへの応答として送信されたクエリーメッセージを含む、グループ固有のクエリーメッセージ間の最大時間です。この間隔を設定することで、ルーティング・デバイスがグループの最後のメンバーの損失を検出するのに要する時間を変更することができます。
クエリアとして機能するルーティング デバイスは、ホストからグループ脱退メッセージを受信すると、ルーティング デバイスは、脱退するグループに複数のグループ固有のクエリーを送信します。クエリアは、特定の間隔で特定の数のこれらのクエリを送信します。送信されたクエリの数は、最後のメンバーのクエリ数と呼ばれます。クエリが送信される間隔は、最後のメンバーのクエリ間隔と呼ばれます。どちらの設定も構成可能なため、退出レイテンシを調整できます。IGMP 脱退遅延は、マルチキャスト グループからの脱退要求から、マルチキャスト グループの最後のバイトのデータを受信するまでの時間です。
最後のメンバーのクエリー数 x (回)、最後のメンバーのクエリー間隔 = (等しい) は、ルーティング・デバイスがグループの最後のメンバーがグループを脱退したと判断し、グループ・トラフィックの転送を停止するのに要する時間です。
既定の最後のメンバーのクエリ間隔は 1 秒です。小数点以下 1 桁までサブ秒間隔を設定できます。設定可能な範囲は 0.1 から 0.9 で、その後 1 秒間隔で 1 から 999,999 です。
この間隔を変更するには、次のようにします。
ロバスト性変数を設定することで、最後のメンバーのクエリ数を構成できます。この 2 つは常に等しいです。
参照
IGMP 堅牢性変数の変更
IGMP 堅牢性変数を微調整して、サブネットで予想されるパケット損失を許容します。堅牢なカウントは、IGMPv2 および IGMPv3 の特定の IGMP メッセージ間隔を自動的に変更します。堅牢な数を増やすと、パケット損失は大きくなりますが、サブネットワークの離脱レイテンシが増加します。
クエリールーターは、IGMPv2 を実行している共有ネットワークで IGMP 脱退メッセージを受信すると、IGMP グループ クエリーメッセージを指定された回数送信する必要があります。送信された IGMP グループ クエリー メッセージの数は、堅牢なカウントによって決まります。
robustness 変数の値は、以下の IGMP メッセージ間隔の計算にも使用されます。
グループメンバー間隔—マルチキャストルーターが、ネットワーク上にグループのメンバーがもういないと判断するまでに経過しなければならない時間。この間隔は、(堅牢性変数 x クエリ間隔) + (1 x クエリ応答間隔) として計算されます。
その他のクエリア存在間隔—堅牢なカウントは、マルチキャスト ルーターが、クエリアである別のマルチキャスト ルーターがなくなったと判断するまでに経過する必要がある時間を計算するために使用されます。この間隔は、(堅牢性変数 x クエリ間隔) + (0.5 x クエリ応答間隔) として計算されます。
Last-member query count—ルーターがグループのローカルメンバーがいないと想定する前に送信されたグループ固有のクエリーの数。クエリの数は、堅牢性変数の値と等しくなります。
IGMPv3 では、インターフェイスの状態が変化すると、システムはそのインターフェイスからの状態変化レポートを直ちに送信します。状態変化レポートが 1 つ以上のマルチキャスト ルーターによって見逃された場合は、再送信されます。再送信される回数は、堅牢なカウントから 1 を引いた数です。IGMPv3 では、堅牢なカウントは、グループ メンバーシップ間隔、古いバージョンのクエリア間隔、およびその他のクエリア存在間隔を決定する要因にもなります。
既定では、堅牢性変数は 2 に設定されています。サブネットでパケットが失われることが予想される場合は、この値を増やすことができます。
数値は 2 から 10 までです。
ロバスト性変数の値を変更するには、次のようにします。
参照
最大IGMPメッセージレートの制限
このセクションでは、ルータが 1 秒間に送信 する IGMP パケットの最大数の制限を変更する方法について説明します。
1秒あたりに送信されるIGMPパケットの最大数を増やすことは、IGMPに参加するインターフェイスの数が多いルーターで役立つ場合があります。
ルーターが1秒間に送信できるIGMPパケットの最大数の制限を変更するには、 maximum-transmit-rate ステートメントを含め、送信する1秒あたりの最大パケット数を指定します。
参照
IGMP バージョンの変更
デフォルトでは、ルーティングデバイスはIGMPv2を実行します。異なるバージョンのIGMPを実行しているルーティングデバイスは、サブネット上のホストがサポートするIGMPの最低共通バージョンを決定し、そのバージョンで動作します。
SSM(Source-Specific Multicast)機能を有効にするには、ホストとホストの直接接続されたルーティング デバイスでバージョン 3 を設定する必要があります。静的に設定されたマルチキャスト グループで送信元アドレスを指定する場合は、バージョンを IGMPv3 に設定する必要があります。
送信元アドレスが定義された静的マルチキャストグループで設定され、IGMPバージョンがバージョン2に設定されている場合、送信元は無視され、グループのみが追加されます。この場合、参加は IGMPv2 グループ参加として扱われます。
個々のインターフェイス階層レベルで IGMP バージョン設定を構成すると、interface all ステートメントが上書きされます。つまり、新しいインターフェイスは、interface all ステートメントで指定したバージョン番号を継承しません。デフォルトでは、その新しいインターフェイスはversion 2で有効になっています。新しいインターフェイスを追加するときは、version numberを明示的に指定する必要があります。例えば、interface allでversion 3を指定した場合、新しいインターフェースにversion 3ステートメントを設定する必要があります。また、[edit interface interface-name static group multicast-group-address]階層レベルでマルチキャストグループのインターフェイスを設定する場合は、version numberと他のグループパラメータを指定する必要があります。それ以外の場合、インターフェイスはデフォルトのversion 2で有効になります。
IGMP バージョン 1(IGMPv1)を使用するようにルーティング デバイスを既に設定した後、IGMPv2 を使用するよう設定した場合、ルーティング デバイスは最大 6 分間 IGMPv1 を使用し続け、その後 IGMPv2 を使用します。
SSM 機能のために IGMPv3 に変更するには、次の手順を実行します。
MXシリーズプラットフォームでは、インストール時のJunos OSリリースに応じて、IGMPv2とIGMPv3を同じインターフェイス上で一緒に設定できることとできない場合があります。両方を一緒に設定すると、マルチキャストトラフィック転送で予期しない動作が発生する可能性があります。
参照
IGMP 静的グループ メンバーシップの有効化
IGMP 静的グループ メンバーシップを作成して、受信側ホストなしでマルチキャスト転送をテストできます。IGMP 静的グループ メンバーシップを有効にすると、インターフェイスはダウンストリーム ホストからメンバーシップ レポートを受信せずに、インターフェイスにデータが転送されます。静的IGMPグループメンバーシップを有効にするルーターは、サブネットの指定ルーター(DR)である必要があります。それ以外の場合、トラフィックはダウンストリームにフローしません。
IGMP 静的グループ メンバーシップを有効にする場合、IGMP インターフェイスとして all オプションが指定されていると、group-count、group-increment、source-count、および source-increment ステートメントを使用して複数のグループを設定することはできません。
IGMP静的グループメンバーシップでは、CoS(サービスクラス)調整はサポートされていません。
この例では、静的グループ 233.252.0.1 を作成します。
ルーティング デバイスをランデブー ポイント(RP)に接続するポイントツーポイント リンクに静的 IGMP グループ エントリーを設定した場合、静的 IGMP グループ エントリーは RP へのジョイン メッセージを生成しません。
IGMP スタティック グループ メンバーシップを作成して、マルチキャスト トラフィックを受信したいインターフェイスでマルチキャスト転送をテストする場合、いくつかのスタティック グループを自動的に作成するように指定できます。これは、各受信者を個別に設定することなく、複数の受信者への転送をテストする場合に便利です。
この例では、3 つのグループを作成します。
DRでは、
group-countステートメントを含め、作成するグループ数を指定して、作成する静的グループの数を設定します。[edit protocols igmp] user@host# set interface fe-0/1/2 static group 233.252.0.1 group-count 3
設定をコミットしたら、
show configuration protocol igmpコマンドを使用して IGMP プロトコルの設定を確認します。user@host> show configuration protocol igmp
interface fe-0/1/2.0 { static { group 233.252.0.1 { group-count 3; } } }設定をコミットし、送信元がトラフィックを送信した後、
show igmp groupコマンドを使用して、静的グループ 233.252.0.1、233.252.0.2、および 233.252.0.3 が作成されていることを確認します。user@host> show igmp group Interface: fe-0/1/2 Group: 233.252.0.1 Source: 10.0.0.2 Last reported by: Local Timeout: 0 Type: Static Group: 233.252.0.2 Source: 10.0.0.2 Last reported by: Local Timeout: 0 Type: Static Group: 233.252.0.3 Source: 10.0.0.2 Last reported by: Local Timeout: 0 Type: Static
IGMP静的グループメンバーシップを作成して、マルチキャストトラフィックを受信したいインターフェイスでマルチキャスト転送をテストする場合、グループが作成されるたびにグループアドレスが自動的にインクリメントされるように設定することもできます。これは、各受信者を個別に設定せずに複数の受信者への転送をテストしたい場合や、グループアドレスをシーケンシャルにしたくない場合に便利です。
この例では、3 つのグループを作成し、グループごとにグループ アドレスを 2 ずつ増やします。
DRでは、
group-incrementステートメントを含め、グループごとにアドレスをインクリメントする数を指定することで、グループアドレスのインクリメントを設定します。増分は、IPv4 アドレスと同様にドット付き 10 進表記で指定します。[edit protocols igmp] user@host# set interface fe-0/1/2 static group 233.252.0.1 group-count 3 group-increment 0.0.0.2
設定をコミットしたら、
show configuration protocol igmpコマンドを使用して IGMP プロトコルの設定を確認します。user@host> show configuration protocol igmp
interface fe-0/1/2.0 { version 3; static { group 233.252.0.1 { group-increment 0.0.0.2; group-count 3; } } }設定をコミットし、送信元がトラフィックを送信した後、
show igmp groupコマンドを使用して、静的グループ 233.252.0.1、233.252.0.3、および 233.252.0.5 が作成されていることを確認します。user@host> show igmp group Interface: fe-0/1/2 Group: 233.252.0.1 Source: 10.0.0.2 Last reported by: Local Timeout: 0 Type: Static Group: 233.252.0.3 Source: 10.0.0.2 Last reported by: Local Timeout: 0 Type: Static Group: 233.252.0.5 Source: 10.0.0.2 Last reported by: Local Timeout: 0 Type: Static
IGMP静的グループメンバーシップを作成してマルチキャストトラフィックを受信するインターフェイスでマルチキャスト転送をテストし、ネットワークがSSM(Source-Specific Multicast)モードで動作している場合、マルチキャスト送信元アドレスを受け入れるように指定することもできます。これは、特定のマルチキャスト ソースからマルチキャスト レシーバーへの転送をテストする場合に便利です。
SSM の範囲でグループ アドレスを指定する場合は、送信元も指定する必要があります。
静的に設定されたマルチキャスト グループで送信元アドレスを指定する場合、インターフェイスの IGMP バージョンは IGMPv3 に設定する必要があります。IGMPv2 がデフォルト値です。
この例では、グループ 233.252.0.1 を作成し、IP アドレス 10.0.0.2 を唯一の送信元として受け入れます。
DRで、
sourceステートメントを含め、送信元ホストのIPv4アドレスを指定して、送信元アドレスを設定します。[edit protocols igmp] user@host# set interface fe-0/1/2 static group 233.252.0.1 source 10.0.0.2
設定をコミットしたら、
show configuration protocol igmpコマンドを使用して IGMP プロトコルの設定を確認します。user@host> show configuration protocol igmp
interface fe-0/1/2.0 { version 3; static { group 233.252.0.1 { source 10.0.0.2; } } }設定をコミットし、送信元がトラフィックを送信した後、
show igmp groupコマンドを使用して、静的グループ 233.252.0.1 が作成され、送信元 10.0.0.2 が受け入れられたことを確認します。user@host> show igmp group Interface: fe-0/1/2 Group: 233.252.0.1 Source: 10.0.0.2 Last reported by: Local Timeout: 0 Type: Static
IGMP スタティック グループ メンバーシップを作成して、マルチキャスト トラフィックを受信したいインターフェイスでマルチキャスト転送をテストする場合、複数のマルチキャスト ソースを自動的に受け入れるように指定できます。これは、指定した複数のマルチキャスト送信元からマルチキャスト受信者への転送をテストする場合に便利です。
この例では、グループ 233.252.0.1 を作成し、アドレス 10.0.0.2、10.0.0.3、および 10.0.0.4 を送信元として受け入れます。
DRでは、
source-countステートメントを含め、受け入れる送信元数を指定することで、受け入れるマルチキャスト送信元アドレスの数を設定します。[edit protocols igmp] user@host# set interface fe-0/1/2 static group 233.252.0.1 source 10.0.0.2 source-count 3
設定をコミットしたら、
show configuration protocol igmpコマンドを使用して IGMP プロトコルの設定を確認します。user@host> show configuration protocol igmp
interface fe-0/1/2.0 { version 3; static { group 233.252.0.1 { source 10.0.0.2 { source-count 3; } } } }設定をコミットし、送信元がトラフィックを送信した後、
show igmp groupコマンドを使用して、静的グループ233.252.0.1が作成され、送信元10.0.0.2、10.0.0.3、および10.0.0.4が受け入れられたことを確認します。user@host> show igmp group Interface: fe-0/1/2 Group: 233.252.0.1 Source: 10.0.0.2 Last reported by: Local Timeout: 0 Type: Static Group: 233.252.0.1 Source: 10.0.0.3 Last reported by: Local Timeout: 0 Type: Static Group: 233.252.0.1 Source: 10.0.0.4 Last reported by: Local Timeout: 0 Type: Static
マルチキャスト トラフィックを受信するインターフェイスでスタティック グループを設定し、多数のマルチキャスト ソースを自動的に受け入れるように指定する場合、受け入れた送信元ごとにアドレスを増やす数を指定することもできます。これは、各受信者を個別に設定せずに複数の受信者への転送をテストしたい場合や、送信元アドレスをシーケンシャルにしたくない場合に便利です。
この例では、グループ 233.252.0.1 を作成し、アドレス 10.0.0.2、10.0.0.4、および 10.0.0.6 を送信元として受け入れます。
マルチキャスト送信元アドレスの増分を設定するには、
source-incrementステートメントを含め、送信元ごとにアドレスを増分する数を指定します。増分は、IPv4 アドレスと同様にドット付き 10 進表記で指定します。[edit protocols igmp] user@host# set interface fe-0/1/2 static group 233.252.0.1 source 10.0.0.2 source-count 3 source-increment 0.0.0.2
設定をコミットしたら、
show configuration protocol igmpコマンドを使用して IGMP プロトコルの設定を確認します。user@host> show configuration protocol igmp
interface fe-0/1/2.0 { version 3; static { group 233.252.0.1 { source 10.0.0.2 { source-count 3; source-increment 0.0.0.2; } } } }設定をコミットし、送信元がトラフィックを送信した後、
show igmp groupコマンドを使用して、静的グループ233.252.0.1が作成され、送信元10.0.0.2、10.0.0.4、および10.0.0.6が受け入れられたことを確認します。user@host> show igmp group Interface: fe-0/1/2 Group: 233.252.0.1 Source: 10.0.0.2 Last reported by: Local Timeout: 0 Type: Static Group: 233.252.0.1 Source: 10.0.0.4 Last reported by: Local Timeout: 0 Type: Static Group: 233.252.0.1 Source: 10.0.0.6 Last reported by: Local Timeout: 0 Type: Static
マルチキャスト トラフィックを受信するインターフェイスでスタティック グループを設定し、ネットワークが SSM(Source-Specific Multicast)モードで動作している場合、特定のマルチキャスト送信元アドレスを除外するように指定できます。
デフォルトでは、静的グループに設定されたマルチキャスト送信元アドレスは、包含モードで動作します。インクルードモードでは、グループのマルチキャストトラフィックは、設定された送信元アドレスから受け入れられます。また、静的グループを除外モードで動作するように設定することもできます。除外モードでは、グループのマルチキャストトラフィックは、設定された送信元アドレス以外の任意のアドレスから受け入れられます。
静的に設定されたマルチキャスト グループで送信元アドレスを指定する場合、インターフェイスの IGMP バージョンは IGMPv3 に設定する必要があります。IGMPv2 がデフォルト値です。
この例では、グループ 233.252.0.1 の送信元としてアドレス 10.0.0.2 を除外します。
DRでは、
excludeステートメントを含め、除外するIPv4送信元アドレスを指定することで、除外モードで動作するマルチキャスト静的グループを設定します。[edit protocols igmp] user@host# set interface fe-0/1/2 static group 233.252.0.1 exclude source 10.0.0.2
設定をコミットしたら、
show configuration protocol igmpコマンドを使用して IGMP プロトコルの設定を確認します。user@host> show configuration protocol igmp
interface fe-0/1/2.0 { version 3; static { group 233.252.0.1 { exclude; source 10.0.0.2; } } }設定をコミットし、送信元がトラフィックを送信した後、
show igmp group detailコマンドを使用して、静的グループ 233.252.0.1 が作成され、静的グループが除外モードで動作していることを確認します。user@host> show igmp group detail Interface: fe-0/1/2 Group: 233.252.0.1 Group mode: Exclude Source: 10.0.0.2 Last reported by: Local Timeout: 0 Type: Static
参照
IGMP 参加および退出イベントの記録
ネットワークでIGMPチューニングが必要かどうかを判断するには、IGMP参加およびIGMP退出イベントを記録するようにルーティングデバイスを設定できます。ルーティング デバイスまたは個々のインターフェイスに対して、グローバルにイベントを記録できます。
表 1 では、記録可能な IGMP イベントについて説明します。
ERRMSGタグ |
定義 |
|---|---|
RPD_IGMP_JOIN |
IGMP 加入イベントを記録します。 |
RPD_IGMP_LEAVE |
IGMP 脱退イベントを記録します。 |
RPD_IGMP_ACCOUNTING_ON |
IGMP アカウンティングが IGMP インターフェイスで有効になっている場合に記録します。 |
RPD_IGMP_ACCOUNTING_OFF |
IGMP インターフェイスで IGMP アカウンティングが無効になっている場合に記録します。 |
RPD_IGMP_MEMBERSHIP_TIMEOUT |
IGMP メンバーシップ タイムアウト イベントを記録します。 |
IGMP アカウンティングを有効にするには:
参照
論理インターフェイスでのIGMPマルチキャストグループ参加数の制限
group-limit ステートメントを使用すると、論理インターフェイスの IGMP マルチキャスト グループ参加数を制限できます。IGMPバージョン 2(IGMPv2)またはバージョン3(IGMPv3)を実行しているルーターでこのステートメントが有効になっている場合、グループレポートの受信時に制限が適用されます。グループ数の上限に達すると、それ以降の参加要求は拒否されます。
IGMP マルチキャスト グループの制限を設定する場合は、次の点に注意してください。
各 any-source グループ (*,G) は、制限に対して 1 つのグループとしてカウントされます。
各送信元固有のグループ(S,G)は、制限に向けて 1 つのグループとしてカウントされます。
IGMPv3 除外モードのグループは、制限にカウントされます。
送信元固有のグループが複数ある場合は、同じグループに対するグループであっても、個別にグループ制限にカウントされます。たとえば、(S1, G1) と (S2, G1) は、設定された制限に対して 2 つのグループとしてカウントされます。
任意のソースグループとソース固有のグループの組み合わせは、同じグループ用であっても、個別にグループ制限にカウントされます。たとえば、(*, G1) と (S, G1) は、設定された制限に対して 2 つのグループとしてカウントされます。
ネットワーク上にすでに存在するグループ制限よりも低いグループ制限をネットワーク上で設定してコミットすると、構成からすべてのグループが削除されます。その後、グループはネットワークへの再参加を要求する必要があります(新しく設定されたグループの上限まで)。
動的プロファイルを使用して、IGMP論理インターフェイス上のマルチキャストグループを動的に制限することができます。
Junos OS リリース 12.2 以降、論理インターフェイスで受信した IGMP マルチキャスト グループ参加に対するシステム ログ警告しきい値をオプションで設定できます。トラブルシューティングのためにシステム ログ メッセージを確認し、インターフェイスで過剰な量の IGMP マルチキャスト グループ参加が受信されていないかどうかを検出するのに役立ちます。これらのログメッセージは、設定されたグループ制限を超えたとき、設定されたしきい値を超えたとき、およびグループ数が設定されたしきい値を下回ったときに通知します。
group-thresholdステートメントでは、警告メッセージが記録されるしきい値を設定することができます。範囲は 1 から 100% です。警告しきい値はグループ制限のパーセンテージであるため、警告しきい値を設定するには、group-limitステートメントを設定する必要があります。たとえば、グループ数が設定された警告しきい値を超えているが、設定されたグループ制限を下回っている場合、マルチキャスト グループは引き続き受け入れられ、デバイスは警告メッセージをログに記録します。また、グループ数が設定された警告しきい値を下回ると、デバイスは警告メッセージを記録します。さらに、log-intervalステートメントを設定することで、ログメッセージ間の時間(秒単位)を指定することができます。範囲は 6 から 32,767 秒です。
設定されたしきい値を超えて追加されたすべてのエントリと、設定された制限の後に拒否されたすべてのエントリにより、警告メッセージがログに記録されるため、ログメッセージのスロットリングを検討できます。ログ間隔を設定することで、IGMP マルチキャスト グループ参加時に生成されるシステム ログ警告メッセージの量を抑制できます。
ACXシリーズルーターでは、マルチキャストルートの最大数は1024です。
IGMP 論理インターフェイスでのマルチキャスト グループ参加を制限するには:
設定内容を確認するには、 show protocols igmp コマンドを使用します。設定されたグループ制限、オプションの警告しきい値、ログメッセージ間の間隔など、インターフェイス上のIGMPの動作を確認するには、 show igmp interface コマンドを使用します。
参照
IGMP プロトコル トラフィックのトレース
トレース操作は、送受信されたさまざまなタイプのルーティングプロトコルパケットや、ルーティングポリシーのアクションなど、ルーティングプロトコルの動作に関する詳細なメッセージを記録します。特定のトレース・フラグを含めることによって、ログに記録するトレース操作を指定できます。次の表では、含めることができるフラグについて説明します。
旗 |
形容 |
|---|---|
すべての |
すべての操作をトレースします。 |
クライアント通知 |
トレース通知。 |
全般 |
一般的な流れをトレースします。 |
群 |
トレース グループの操作。 |
ホスト通知 |
ホスト通知をトレースします。 |
去る |
脱退グループ メッセージをトレースします(IGMPv2 のみ)。 |
mtrace |
mtrace パケットをトレースします。 |
正常 |
通常のイベントをトレースします。 |
パケット |
すべての IGMP パケットをトレースします。 |
政策 |
トレース ポリシー処理 |
クエリ |
IGMP メンバーシップ クエリー メッセージをトレースします(一般的なクエリーとグループ固有のクエリーを含む)。 |
報告 |
メンバーシップ・レポート・メッセージをトレースします。 |
ルート |
トレース ルーティング情報。 |
状態 |
状態遷移をトレースします。 |
タスク |
トレース・タスク処理。 |
タイマー |
トレース・タイマー処理 |
次の例では、すべてのルーティングプロトコルパケットに対してトレースが有効になっています。次に、トレースが絞り込まれて、特定のタイプの IGMP パケットのみに焦点が当てられます。IGMP のトレース操作を設定するには、次の手順に従います。
参照
IGMP の無効化
インターフェイスでIGMPを無効にするには、 disable ステートメントを含めます。
disable;
以下の階層レベルでこのステートメントを使用することができます。
[edit protocols igmp interface interface-name][edit logical-systems logical-system-name protocols igmp interface interface-name]手記:ACXシリーズルーターは、
[edit logical-systems logical-system-name protocols]階層レベルをサポートしていません。
参照
IGMP とノンストップ アクティブ ルーティング
ノンストップアクティブルーティング (NSR)構成には、ルーティングエンジンのフェイルオーバー時にルーティングが中断されないよう情報を共有する2つのルーティングエンジンが含まれます。これらの NSR 設定には、PIM に関連する IGMP によるパッシブ サポートが含まれています。プライマリルーティングエンジンはIGMPを使用してPIMマルチキャスト状態を判断し、このIGMPから派生した情報はバックアップルーティングエンジンに複製されます。新しいプライマリ ルーティングエンジン上の IGMP (フェイルオーバー後) は、IGMP 動作を通じて状態情報を迅速に再学習します。暫定的には、新しいプライマリ ルーティングエンジンは、レプリケーション プロセスが古いプライマリ ルーティングエンジンから受信した IGMP 由来の PIM 状態を保持します。この状態情報は、新しいプライマリ ルーティングエンジン上の IGMP によって更新されない限り、タイムアウトします。追加の IGMP 設定は必要ありません。
参照
変更履歴
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer を使用します。