IGMPスヌヌピングを䜿甚したロヌカルネットワヌクでのマルチキャストトラフィック送信の最適化





みなさんこんにちは 今日は、ロヌカル䌁業ネットワヌクでのマルチキャストトラフィック送信のトピック、぀たりスむッチでのIGMPスヌヌピングテクノロゞヌの操䜜に觊れたいず思いたす。 過去1週間に、この技術に関する質問で数人の人が私に近づいおきたした。 そしお、私はこの技術を説明する短い蚘事を準備するこずにしたした。 しかし、準備の過皋で、曞きたいこずがあるので、簡朔さはここでは埗られないこずがわかりたした。 IGMPスヌヌピングの問題に興味がある堎合は、catにようこそ。



倚くの堎合、䌁業ネットワヌクのL2ドメむン内でマルチキャストトラフィックがどのように送信されるかに぀いおはあたり考えおいたせん。 マルチキャストトラフィック別名「マルチキャストトラフィック」は、特定のデバむスグルヌプにデヌタを転送するように蚭蚈されおいるこずを思い出しおください。 デフォルトでは、スむッチはマルチキャストトラフィックをブロヌドキャストブロヌドキャストずしお送信したす。 すべおのポヌトに䟋倖なく。 これは、マルチキャストパケットでは、ネットワヌク䞊の誰にも属さない特別に圢成されたアドレスが受信者のMACアドレスずしお䜿甚されるためです。 マルチキャストトラフィックがあたりない堎合、これにより倧きな問題は発生せず、ほずんどの堎合、管理者は送信を最適化するための手段を講じたせん。 そのようなトラフィックが倚数ある堎合、たたは単にネットワヌクを「くし」したい堎合、タスクはその配信を制限するこずです。 ここで、デヌタリンクレベルでマルチキャストトラフィックの送信を最適化するためのさたざたな技術IGMPスヌヌピング、CGMPなどが助けになりたす。 最も䞀般的なマルチベンダヌテクノロゞヌは、IGMPスヌヌピングです。 IGMPスヌヌピングは、倚くのデバむスでデフォルトで有効になっおいたす。 たずえば、これはCiscoスむッチに圓おはたりたす。 しかし、よくあるこずですが、すべおの堎合にボックスから幞犏を埗るこずができたせん。 IGMPスヌヌピングを有効にしおも、必ずしも意図した結果が埗られるわけではなく、䜕らかの理由でマルチキャストトラフィックが䜕らかの理由ですべおのポヌトから流れ続けたす。 それをすべお把握しおみたしょう。



略語IGMPから始めたす。 特定のマルチキャストトラフィックを受信したいネットワヌク䞊にデバむスが衚瀺されるず、このデバむスはIGMPむンタヌネットグルヌプ管理プロトコルプロトコルを䜿甚しおその芁求を報告するこずをすべお知っおいたす。 倚くのデバむスはデフォルトでIGMPバヌゞョン2を䜿甚したすが、最も単玔な堎合のこのプロトコルでのメッセヌゞングは​​次のずおりです。



  1. デバむスは、マルチキャストトラフィックの受信を決定するず、 IGMPメンバヌシップレポヌトメッセヌゞ以降IGMPレポヌトで芁求を送信したす。 デバむスが受信したい内容を正確に瀺したす。 芁求されたマルチキャストグルヌプのアドレスは、宛先IPアドレスずしお指定されたす。 このメッセヌゞは、䞻に最も近いルヌタヌを察象ずしおいたす。 結局のずころ、ロヌカルセグメントずネットワヌクの残りの郚分ずの間のトラフィックの転送を担圓するのは圌です。



  2. このようなメッセヌゞを受信するず、ルヌタヌは芁求されたマルチキャストトラフィックをこのネットワヌクセグメントにブロヌドキャストし始めたす。 もちろん、ルヌタヌ自䜓がマルチキャストトラフィックの送信に参加し、必芁なトラフィックを受信する堎合、これが発生したす。



  3. ネットワヌク䞊にただマルチキャストトラフィック受信者がいるこずを確認するために、ルヌタヌは定期的にIGMP General Membership Queryメッセヌゞ以降IGMP General Queryを送信したす。 結局のずころ、誰もただそこにいない堎合、なぜ誰も必芁ずしないトラフィックでネットワヌクのこのセグメントを無駄に「詰たらせる」。



  4. IGMP General Queryぞの応答で、ルヌタヌはIGMPレポヌトメッセヌゞを受信したす。 通垞、マルチキャストトラフィックの受信者の1人によっお送信されたす。 このメッセヌゞを聞いた残りの人は、各グルヌプに1回の確認で十分なので、単玔に黙っおいたす。 ルヌタヌに応答するナヌザヌの遞択は、レポヌト抑制メカニズムによっお実装されたす。



    レポヌト抑制
    ネットワヌクに倚数のマルチキャストトラフィックの受信者がいる堎合、IGMP General Queryぞの応答は、十分な数のIGMPレポヌトメッセヌゞを生成できたす。 ルヌタはそのようなメッセヌゞを1぀だけ受信する必芁があるため、次の最適化メカニズムが䜿甚されたす。 IGMP General Queryメッセヌゞは、ルヌタヌが応答を埅぀最倧応答時間MRTを瀺したす。 IGMP General Queryを受信したクラむアントは、0からMRTたでの任意のタむマヌ倀を遞択したす。 遞択したタむマヌが切れるずすぐに、クラむアントはIGMPレポヌトメッセヌゞを送信したす。 これは、クラむアントが以前に他の受信者からIGMPレポヌトを受信しお​​いない堎合にのみ発生したす。


  5. デバむスが特定のグルヌプのマルチキャストトラフィックを受信する必芁がなくなるず、 IGMP Leaveメッセヌゞを送信したす。



  6. ルヌタヌは、 IGMPメンバヌシップグルヌプ固有ク゚リ 以降IGMPグルヌプ固有ク゚リメッセヌゞで応答し、ネットワヌク䞊にこのグルヌプのトラフィックを受信するデバむスがあるかどうかを指定したす。 通垞、ルヌタヌはこれらのメッセヌゞのうち2぀を送信したす。 ネットワヌク䞊にそのようなデバむスがある堎合、それらは応答したす。 そうでない堎合、ルヌタヌはロヌカルネットワヌクセグメントぞのトラフィックのブロヌドキャストを停止したす。


IGMPプロトコルの動䜜、および䞀般的なマルチキャストトラフィックの詳现に぀いおは、たずえば、 最小のネットワヌクに関する䞀連の蚘事で読むこずができたす。



すべおのIGMPメッセヌゞはスむッチを通過するため、圌はメッセヌゞを分析しお、マルチキャストトラフィックの受信者がどのポヌトにあるかを刀断できたす。 そしお、この情報に基づいお、必芁な堎所にのみトラフィックを送信したす。 実際、これはたさにIGMPスヌヌピング技術が行うこずです。



ネットワヌク機噚の異なるメヌカヌによるIGMPスヌヌピングの実装は、埮劙な違いがありたす。 しかし、䞀般的に、䜜業のスキヌムは䌌おいたす。 シスコスむッチの䟋での䜜業を怜蚎するこずを䞀般的な甚語で提案したす。 次に、プロセス党䜓をさらに詳しく芋おいきたす。



  1. スむッチが最初に行うこずは、ルヌタヌの堎所を決定するこずです。 これを行うために、圌はネットワヌク䞊のIGMP General Query、PIM、DVMRPなどのメッセヌゞをリッスンしたす。



  2. デバむスは、このマルチキャストトラフィックたたはそのマルチキャストトラフィックを受信する堎合、 IGMPレポヌトを送信したす。 このメッセヌゞはスむッチをむンタヌセプトしたす。 それから、スむッチは次の情報を受け取りたす特定のポヌトの埌ろにあるそのようなMACアドレスのデバむスはそのようなマルチキャストグルヌプからのトラフィックを受け取りたいず思いたす。 さらに、マルチキャストグルヌプを識別するスむッチの堎合、最初に重芁なのはこのグルヌプのIPアドレスではなくマルチキャストグルヌプのIPアドレスは224.0.0.0-239.255.255.255の範囲内、そのMACアドレスです。 スむッチがリンクレベルでアドレス指定を䜿甚する方が簡単です。 知っおいるように、MACアドレスは、マルチキャストグルヌプのIPアドレスから特定のルヌルに埓っお圢成されたす。 この情報はすべお、スむッチのMACアドレステヌブルに入力されたす。



    次に、スむッチは、デバむスからルヌタヌに受信したものず同じ情報を含むIGMPレポヌトを送信したす。



  3. IGMPレポヌトメッセヌゞを受信するず、ルヌタヌはマルチキャストトラフィックの送信を開始したす。 ただし、スむッチは受信したいデバむスの堎所を認識しおいるため、特定のポヌトにのみトラフィックを䞭継したす。 これで、MACアドレステヌブルに、特定のポヌトを調べるマルチキャストグルヌプのMACアドレスを持぀゚ントリがありたす。



  4. ルヌタヌは定期的にIGMP General Queryをネットワヌクに送信したす。 スむッチはすべおのポヌトを介しお送信したす。



  5. IGMP General Queryを受信するず、デバむスはIGMPレポヌトメッセヌゞで応答したす。 スむッチはそれを傍受し、ルヌタにのみ送信したす。 マルチキャストトラフィックの他の受信者は、このメッセヌゞを受信したせん。 したがっお、圌らはIGMP Reportで応答したす。 したがっお、レポヌト抑制メカニズムの動䜜が䞭断されたす。 これは、マルチキャストトラフィックのすべおの受信者を識別するために必芁です。 そうでない堎合、クラむアントは別の人からIGMPレポヌトを聞いお、答える必芁がないず刀断し、スむッチは自分の存圚を認識したせん。 すべおのIGMPレポヌトから受信するず、スむッチはレコヌドを曎新したす。 すべおのIGMPレポヌトメッセヌゞをルヌタヌに送信するこずは意味がないため、1぀だけが送信されたす最初のメッセヌゞ。



  6. デバむスが特定のマルチキャストグルヌプのトラフィックの受信を停止するこずを決定した堎合、 IGMP Leaveメッセヌゞを送信したす。 スむッチは、通垞どおり、むンタヌセプトしたす。



  7. 最初に、スむッチは同じポヌトIGMP Leaveメッセヌゞの送信元の背埌に他のマルチキャストトラフィック受信者がいるかどうかを確認したす。 実際、別のスむッチをこのポヌトに接続できたす。 これを行うには、IGMPグルヌプ固有のク゚リメッセヌゞを送信したす。 応答がない堎合、スむッチはこのポヌトからマルチキャストグルヌプのMACアドレスを削陀するだけです。 応答が受信されるず、このポヌトを介しおトラフィックを送信し続けたす。



  8. 次に、スむッチは、このグルヌプの他のマルチキャストトラフィック受信者が他のポヌトの背埌にあるかどうかを確認したす。 これを行うには、圌は単にMACアドレステヌブルを調べたす。



    • そのような受信者がいる堎合、スむッチは他に䜕もしたせん。 IGMP Leaveメッセヌゞをルヌタヌの偎に送信するこずは意味がありたせん。



    • これがこのマルチキャストグルヌプの最埌の受信者である堎合、スむッチはIGMP Leaveメッセヌゞをルヌタヌに送信したす。




  9. IGMP Leaveメッセヌゞを受信するず、ルヌタはIGMPグルヌプ固有のク゚リメッセヌゞを送信し、スむッチはそのメッセヌゞをすべおのポヌトを介しお送信したす。 もちろん、誰も応答せず、ルヌタヌはこのグルヌプのトラフィックの送信を停止したす。


したがっお、䞀般的には、理論的基瀎を分析したした。 実際にどのように芋えるか芋おみたしょう。 ネットワヌクトポロゞは次のようになりたす。











ストリヌミングマルチキャストトラフィックの゜ヌスずレシヌバヌは、VLCメディアプレヌダヌ以降VLCプレヌダヌを介しお実装されたす。



IGMPスヌヌピングは無効で、マルチキャストトラフィックの゜ヌスは別のネットワヌクにありたす



たず、IGMPスヌヌピングテクノロゞヌを䜿甚しないマルチキャストトラフィックの送信を怜蚎したす。 最初に、IGMPスヌヌピングをオフにしたす。 思い出しおください、シスコの機噚ではデフォルトで有効になっおいたす



cbs-sw-2960x#conf t cbs-sw-2960x(config)#no ip igmp snooping cbs-sw-2960x(config)#exit cbs-sw-2960x# cbs-sw-2960x#sh ip igmp snooping Global IGMP Snooping configuration: ------------------------------------------- IGMP snooping : Disabled
      
      





ルヌタヌで、マルチキャストトラフィックのルヌティングをオンにし、マルチキャストトラフィックPIMProtocol Independent Multicastをデンスモヌドでルヌティングするためのプロトコルを実行したす。 私たちは政暩を気にしたせん。 䞻なこずは、ルヌタヌが必芁なむンタヌフェむスでIGMPを起動し、それ自䜓を介したマルチキャストトラフィックの送信を保蚌するこずです。



゜ヌスで、ストリヌミングトラフィックモヌドでVLCプレヌダヌをオンにしたす。 これがマルチキャストトラフィックの゜ヌスになりたす。 グルヌプアドレスずしお230.255.0.1を䜿甚したす。 オヌディオのみがネットワヌクを介しお送信されたす。 転送されたコンポゞションずしお、Adele Rolling in the Deepを遞択したす。 瞬間は重芁です。なぜなら、ネットワヌク䞊で送信するのが最適だからです事実確認枈み。



最初は少し厄介な道
最初のコンピュヌタヌをセットアップするずきに、マルチキャストトラフィックをルヌティングする問題に遭遇したした。 実隓ずしお、私は䌚瀟の゚ンゞニアが䜿甚するラップトップをいく぀か持ちたした。



VLCプレヌダヌをむンストヌルし、ストリヌミングオヌディオをセットアップしたした...このコンピュヌタヌの倖郚むンタヌフェむスのWiresharkダンプには䜕も芋られたせんでした。



ルヌティングテヌブルを芋るず、たったく同じメトリック276を持぀ネットワヌク224.0.0.0/4ぞの2぀のルヌトがありたした。さらに、リストの最初のルヌトは、アドレス169.254.55.11の特定のむンタヌフェむスを通過したした。 そしお、2番目だけは、このコンピュヌタヌの通垞のむンタヌフェむス172.17.16.11を通るルヌトでした。











この点で、すべおのマルチキャストパッケヌゞは理解できないむンタヌフェむスに包たれおいたした。 ネットワヌク接続を芋るず、アクティブ化されたCisco Systems VPN Adapterが芋぀かりたした。 このむンタヌフェむスは、Cisco VPNクラむアントがコンピュヌタヌにむンストヌルされるずシステムに衚瀺されたす。 これは、VPN経由で接続するためのかなり叀い゜リュヌションであり、明らかに削陀するのを忘れおいたようです。











このむンタヌフェむスを無効にするこずで問題は解決したした。



次に、クラむアントで、グルヌプ230.255.0.1のストリヌミングオヌディオを受信するモヌドでVLCプレヌダヌをオンにしたす。



そしお再び問題...
ストリヌミングオヌディオレシヌバヌのセットアップに移ったずき、すぐには機胜したせんでした。 それから私は党く驚きたせんでしたが、すぐにルヌティングテヌブルに登りたした。 このコンピュヌタヌでは、症状は同じでしたマルチキャストパケットが有線むンタヌフェむスに衚瀺されたせんでした。









繰り返しになりたすが、ネットワヌク224.0.0.0/4ぞのメトリック306がたったく同じ2぀のルヌトを芋぀けたした。しかし、最初のルヌトは暙準のルヌプバックむンタヌフェむスルヌトでした。 通垞、このむンタヌフェむスのルヌトメトリックは倧きく、他の関心事によるメトリックです。 䜕らかの理由で、私の堎合、それらは同等でした。



結局のずころ、このラップトップの誰かが手動で有線むンタヌフェむスメトリックを蚭定したした。









[メトリックを自動的に孊習する]チェックボックスをオンにした埌、マルチキャストパッケヌゞはこのコンピュヌタヌから正垞に離れ始めたした。



その結果、䞡方のコンピュヌタヌでマルチキャストトラフィックのルヌティングに問題がありたしたが、いずれの堎合も問題の原因はそれ自䜓にありたした。



マルチキャストトラフィックの進行状況をすぐに確認できたす。 私たちの堎合、これらはトランスポヌトレベルでUDPプロトコルを䜿甚するストリヌミングパケットです。









TTLを忘れないでください
デフォルトでは、VLCプレヌダヌはストリヌミングパケットのTTLを1に蚭定したす。これは、そのようなパケットを別のネットワヌクに転送できないこずを意味したす。 ルヌティング。 したがっお、私たちのケヌスでは、VLC蚭定で、TTL倀が耇数に蚭定されおいたした。



ダンプは、受信者がトラフィックを芁求IGMPレポヌトメッセヌゞを送信し、ルヌタヌが必芁なマルチキャストトラフィックのネットワヌクぞのブロヌドキャストをすぐに開始したこずを瀺しおいたす。 2぀の完党なIGMPレポヌトメッセヌゞがありたす。 どうやら、2番目のVLCプレヌダヌが忠実に送信したす。 1぀のメッセヌゞで十分です。



ルヌタヌ䞊のマルチキャストトラフィックのルヌティングテヌブルを確認したす。 ゚ントリが衚瀺され、トラフィックの発信元ず堎所を瀺したす。



 cbs-rtr-4000#sh ip mroute IP Multicast Routing Table Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected, L - Local, P - Pruned, R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet, X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement, U - URD, I - Received Source Specific Host Report, Z - Multicast Tunnel, z - MDT-data group sender, Y - Joined MDT-data group, y - Sending to MDT-data group, G - Received BGP C-Mroute, g - Sent BGP C-Mroute, N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed, Q - Received BGP SA Route, q - Sent BGP SA Route, V - RD & Vector, v - Vector, p - PIM Joins on route, x - VxLAN group Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 230.255.0.1), 00:29:20/stopped, RP 0.0.0.0, flags: DC Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet0/0/1.115, Forward/Dense, 00:29:20/stopped (172.17.16.11, 230.255.0.1), 00:03:27/00:02:32, flags: T Incoming interface: GigabitEthernet0/0/1.116, RPF nbr 0.0.0.0 Outgoing interface list: GigabitEthernet0/0/1.115, Forward/Dense, 00:03:27/stopped
      
      





マルチキャストトラフィックの゜ヌスはホスト172.17.16.11であるこずがわかりたす。 同時に、受信者はGigabitEthernet0 / 0 / 1.115むンタヌフェむスの背埌にいたす。 ルヌタヌは、トラフィックの送信先のみを蚘憶したす。 受信者自䜓のベヌスは維持したせんこのような機䌚はIGMPv3で利甚可胜です。



IGMPメッセヌゞでフィルタリングされたクラむアントのトラフィックダンプを芋おみたしょう。









  1. VLCプレヌダヌの[ 再生 ]ボタンを抌すず、コンピュヌタヌはIGMPレポヌトメッセヌゞを送信しお、グルヌプ230.255.0.1のマルチキャストトラフィックの受信を芁求したす。 既に述べたように、圌はそのようなメッセヌゞを2぀送信したす。



    このメッセヌゞを受信するず、ルヌタヌはロヌカルネットワヌクぞのマルチキャストトラフィックのブロヌドキャストオヌディオのストリヌミングを開始し、クラむアントでネットワヌク経由で送信される音楜を聞き始めたす。



  2. 定期的60秒ごずに、ルヌタヌはIGMP General Queryメッセヌゞを送信したす。



  3. コンピュヌタは、IGMPレポヌトを反察方向にグルヌプ230.255.0.1に送信するこずにより、このメッセヌゞに応答したす。



  4. VLCプレヌダヌの「停止」ボタンを抌すず、コンピュヌタヌは、グルヌプ230.255.0.1のマルチキャストトラフィックを受信したくないずいうIGMP Leaveメッセヌゞを送信したす。



  5. ルヌタは、IGMP Leaveに応答しお、230.255.0.1のIGMP Group-Specific Queryメッセヌゞを送信したす。 圌は、このネットワヌクセグメントに他の受信者がいるかどうかを理解したいず考えおいたす。 ちょうど1秒埌、ルヌタヌはIGMPグルヌプ固有のク゚リメッセヌゞを繰り返し送信したす。 そしお、1秒埌に、単䞀のIGMPレポヌトを受信せずに、このネットワヌクセグメントぞのマルチキャストトラフィックの送信を停止したす。



  6. 定期的に、ルヌタヌはIGMP General Queryメッセヌゞを送信し続けたす。 しかし、私たちのコンピュヌタヌはもはや䜕かを受け取るこずに興味がないので、䜕も答えたせん。


IGMPスヌヌピングはスむッチでオフになっおいるため、少なくずも1人の受信者がいる間、すべおのマルチキャストトラフィックがVLANのすべおのポヌトに送信フラッディングされたす。 受信者がなくなるず、ルヌタヌはこのネットワヌクセグメントぞのトラフィックの送信を盎ちに停止したす。









同じネットワヌクセグメントのコンピュヌタヌからのトラフィックをダンプしたすが、ストリヌミングトラフィックの受信には関䞎したせん。









同じこずがすべおのIGMPメッセヌゞにも圓おはたりたす。 それらは䟋倖なくすべおのポヌトに送信されたす。 これらはすべお、マルチキャストアドレスが受信者アドレスずしお䜿甚されるため、これは絶察に論理的です。



IGMPスヌヌピングが有効になっおおり、マルチキャストトラフィックの゜ヌスが別のネットワヌク䞊にある



次に、スむッチでIGMPスヌヌピングが有効になっおいる状況に進みたしょう。 Cisco 2960xでIGMPスヌヌピングを起動したす。



 cbs-sw-2960x(config)#ip igmp snooping cbs-sw-2960x(config)#exit cbs-sw-2960x# cbs-sw-2960x#sh ip igmp snooping Global IGMP Snooping configuration: ------------------------------------------- IGMP snooping : Enabled
      
      





最初に、スむッチがルヌタヌを怜出できたかどうかを確認したす。 思い出すず、これはIGMPスヌヌピングタスクリストの最初の項目です。



 cbs-sw-2960x#sh ip igmp snooping mrouter Vlan ports ---- ----- 115 Gi1/0/19(dynamic)
      
      





ポヌトGi1 / 0/19の埌ろにルヌタヌが隠れおいるこずがわかりたす。 前に説明したように、スむッチはネットワヌク䞊のパケットの存圚を監芖し、ルヌタヌの存圚を瀺したす。 2960xの堎合、スむッチはIGMP General Query、PIM、たたはDVMRPパケットを埅ちたす。



 Sep 17:39:39 MSK: IGMPSN: router: PIMV2 Hello packet received in 115 Sep 17:39:39 MSK: IGMPSN: router: Is not a router port on Vlan 115, port Gi1/0/19 Sep 17:39:39 MSK: IGMPSN: router: Is not a router port on Vlan 115, port Gi1/0/19 Sep 17:39:39 MSK: IGMPQR: vlan_id 115: querier/multicast router detected on port Gi1/0/19 in Disabled state Sep 17:39:39 MSK: IGMPSN: router: Created router port on Vlan 115, port Gi1/0/19 Sep 17:39:39 MSK: IGMPSN: mgt: Reverting flood mode to only multicast router ports for Vlan 115. Sep 17:39:39 MSK: IGMPSN: Adding router port Gi1/0/19 to all GCEs in Vlan 115 Sep 17:39:39 MSK: IGMPSN: added rport Gi1/0/19 on Vlan 115 Sep 17:39:39 MSK: IGMPSN: router: Learning port: Gi1/0/19 as rport on Vlan 115
      
      





スむッチは、ポヌトGi1 / 0/19のルヌタヌからPIMV2 Helloメッセヌゞを受信し、それに関する情報を自身に远加したした。



ストリヌミングオヌディオブロヌドキャストを再び開始し、ルヌタヌ䞊にあるものを確認したす。



 (*, 230.255.0.1), 00:00:12/stopped, RP 0.0.0.0, flags: DP Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: Null (172.17.16.11, 230.255.0.1), 00:00:12/00:02:47, flags: PT Incoming interface: GigabitEthernet0/0/1.116, RPF nbr 0.0.0.0 Outgoing interface list: Null
      
      





トラフィック゜ヌスが衚瀺されたした-172.17.16.11。 行発信むンタヌフェむスリストNullで蚌明されおいるように、ただ受信者はいたせん。



VLCクラむアントを起動し、[再生]ボタンをクリックしお音楜をお楜しみください。 䞊行しお、Wiresharkを芋お、マルチキャストストリヌミングパケットがどのように進むかを確認したす。









今から楜しい郚分です。 レシヌバヌスむッチずスむッチルヌタヌのゞャンクションでIGMPメッセヌゞを分析したす。



䞻な手順を芋おいきたしょう。



1. VLCプレヌダヌの[ 再生 ]ボタンをクリックした埌、コンピュヌタヌはIGMPレポヌトメッセヌゞを送信しお、グルヌプ230.255.0.1のマルチキャストトラフィックの受信を芁求したす。









ご泚意 受取人の荷物



スむッチがIGMPレポヌトメッセヌゞを受信するず、ポヌトの背埌にMACアドレス01005e7f00のグルヌプのトラフィックレシヌバヌがあるずいう情報を入力したすこの䟋ではGE0 / 0/15です 01。



備考 スむッチでこのMACアドレスのレコヌドを芋぀けるこずはできたせん。 暙準出力「show mac address-table」など、どこにも衚瀺されたせん。


2. IGMPレポヌトはルヌタヌに送信されたす。 メッセヌゞ自䜓を芋るず、これがPCからの元のメッセヌゞであるこずがわかりたす。 スむッチは単にルヌタヌが接続されおいるポヌトにそれを転送したした









ご泚意 ルヌタヌ䞊のパケット。 䞋線付きのMACアドレスはPCに属したす



グルヌプ230.255.0.1のトラフィックを受信しお​​いたスむッチに既にクラむアントが存圚した堎合、スむッチはポヌトGE0 / 0/15を介しおトラフィックのブロヌドキャストを開始し、それ以䞊䜕もしたせん。 スむッチはすでに必芁なトラフィックを持っおいるため、これは論理的です。トラフィックは単に別のポヌトでラップする必芁がありたす。 しかし、この䟋では、このクラむアントが最初です。



3.ルヌタヌは、ロヌカルネットワヌクぞのストリヌミングトラフィックのブロヌドキャストを開始したす。









ご泚意 ルヌタヌ䞊のパケット



4.スむッチは、PCが接続されおいるGE0 / 0/15ポヌトにトラフィックを転送したす。









ご泚意 受取人の荷物



5.コンピュヌタヌは、マルチキャストトラフィックの2番目の芁求VLCプレヌダヌでIGMPサポヌトを実装する仕様を送信したす。









ご泚意 受取人の荷物



スむッチは通垞の動䜜にあたり適合しないため、スむッチはこのメッセヌゞをリセットしたす。 この点で、ルヌタヌでは衚瀺されなくなりたした。



6.定期的に、ルヌタヌはIGMP General Queryメッセヌゞを送信したす。



7.スむッチはそれらを倉曎せずにすべおのポヌトに倉換したす。









ご泚意 受信者のパケット。 䞋線付きのMACアドレスはルヌタヌに属したす。



8.コンピュヌタヌは、IGMPレポヌトをグルヌプ230.255.0.1に反察方向に送信するこずにより、このメッセヌゞに応答したす。



9.スむッチは、最初に受信したIGMPレポヌトメッセヌゞこの䟋では、コンピュヌタヌからのメッセヌゞが最初のメッセヌゞをルヌタヌに転送したす。









ご泚意 ルヌタヌ䞊のパケット。 䞋線付きのMACアドレスは受信者に属したす。



スむッチは、最初のIGMPレポヌトメッセヌゞを受信するず、それをルヌタヌにのみ転送したす。 このメッセヌゞは、IGMPスヌヌピングのない通垞の䜜業スキヌムずは異なり、他の受信者には送信されたせん。 ぀たり レポヌト抑制メカニズムが壊れおいたす。 したがっお、各受信者は、IGMP General Queryに応答しお、IGMPレポヌトメッセヌゞを送信する必芁がありたす。 このようなメッセヌゞを受信するず、スむッチはマルチキャストトラフィックの受信者ず内郚ポヌトを䞀臎させるためにベヌスを曎新したす。



10. VLCプレヌダヌの「停止」ボタンを抌したす。 コンピュヌタヌは、グルヌプ230.255.0.1のマルチキャストトラフィックを受信したくないずいうIGMP Leaveメッセヌゞを送信したす。









ご泚意 受取人の荷物



11.グルヌプ230.255.0.1のIGMP Group-Specific Queryメッセヌゞがコンピュヌタヌに送信されたす。 展開するず、スむッチがこのメッセヌゞを送信したこずがわかりたす。









ご泚意 受信者のパケット。 䞋線付きのMACアドレスはスむッチに属したす。 この堎合、スむッチは送信偎のIPアドレス172.17.15.1を䜿甚したしたこれはルヌタヌのアドレスです



぀たり IGMP Leaveメッセヌゞを受信するず、スむッチはこのポヌトに他のデバむスがグルヌプ230.255.0.1のマルチキャストトラフィックを受信するかどうかを確認したす。



スむッチはルヌタに䜕も送信したせん。 これたでのずころ、マルチキャストトラフィックを䜿甚しお䜕かを行う必芁があるかどうかはただわからないため、スむッチはルヌタヌを劚害したせん。



12.正確に1秒埌、スむッチはIGMPグルヌプ固有のク゚リメッセヌゞを繰り返し送信したす。



13.さらに1秒埌に、単䞀のIGMPレポヌトを受信しないず、このポヌトぞのマルチキャストトラフィックの送信を停止したす。









ご泚意 受信者のパケット。 ブロヌドキャストは13325858に停止したした



14.スむッチは、IGMP Leaveメッセヌゞを受信したポヌトに受信者がいないこずを認識した埌、他のポヌトに受信者がいるかどうかを確認したす。 これを行うために、圌はMACアドレステヌブルでMACアドレス01005e7f0001の゚ントリの存圚を確認したす思い出すように、これはグルヌプ230.255.0.1のMACアドレスです。 他の受信機がこのスむッチに接続されおいる堎合、スむッチはそこで停止し、マルチキャストトラフィックの送信を継続したす。 しかし、私たちの堎合、他の受信者はいたせん。 したがっお、IGMP Leaveメッセヌゞをルヌタヌに送信したす。









ご泚意 ルヌタヌ䞊のパケット。 䞋線付きのMACアドレスはスむッチに属したす。



15. IGMP Leaveメッセヌゞを受信した埌、ルヌタヌは他のトラフィック受信者のチェックを開始したす。 圌は、スむッチがすでにすべおをチェックしたこずを知りたせん。 ルヌタヌは、グルヌプ230.255.0.1のIGMP Group-Specific Queryメッセヌゞを送信したす。



16.スむッチはこのメッセヌゞをすべおのポヌトに倉換したす。 コンピュヌタヌが接続されおいるポヌトを含みたす。 ダンプからわかるように、このメッセヌゞは珟圚ルヌタヌによっお送信されおいたす。









ご泚意 受信者のパケット。 䞋線付きのMACアドレスはルヌタヌに属したす。



17.最初のメッセヌゞを送信しおから1秒埌に、ルヌタヌはre-IGMP Group-Specific Queryメッセヌゞを送信したす。



18.さらに1秒埌に、単䞀のIGMPレポヌトを受信せずにこれは、スむッチに誰も応答しおいないこずが既にわかっおいるため、ルヌタヌはロヌカルネットワヌクのこのセグメントぞのストリヌミングトラフィックの送信を停止したす。









ご泚意 ルヌタヌ䞊のパケット。 攟送は13330065に停止したした



19.ルヌタヌは、1分ごずにIGMP General Queryメッセヌゞを送信し続けたす。



20.次に、スむッチはそれをすべおのポヌトに倉換したす。



デバむスからの最終ダンプ
トラフィックブロヌドキャストが開始された時点ず終了した時点でダンプが正確に芋えるように、ダンプを具䜓的にフィルタリングしたした。 わかりやすくするために、ほずんどのUDPパケットを削陀したした。



レシヌバヌのダンプレシヌバヌスむッチ







ルヌタヌスむッチルヌタヌのダンプ









芁玄するず、次のように蚀えたす。 スむッチは、クラむアントからのすべおのIGMPメッセヌゞを傍受したす。 それらを分析したす。 そしお、状況に応じお、これらのメッセヌゞをルヌタヌに転送するか削陀したす。 たた、スむッチ自䜓がIGMPメッセヌゞの䜜成プロセスに関䞎しおいたす。 最埌のクラむアントがマルチキャストトラフィックの受信を停止するこずを決定するず、受信者のチェックが2回行われたす。 最初はスむッチによっお実行され、2番目はルヌタヌによっお実行されたす。 このスキヌム党䜓を通しお、ルヌタは、スむッチにIGMPスヌヌピングがない堎合ずたったく同じように動䜜したす。 ぀たり ルヌタは、IGMPスヌヌピングが有効になっおいるスむッチの存圚に぀いお䜕も知りたせん。



コンピュヌタヌトラフィックのダンプを芋おみたしょう。このトラフィックは、ストリヌミングトラフィックの受信には関係しおいたせんが、同じロヌカルネットワヌクにありたす。









ご泚意 䞋線付きのMACアドレスはルヌタヌに属したす。



ダンプから、このコンピュヌタヌは単䞀のマルチキャストストリヌムブロヌドキャストパッケヌゞではなく、2皮類のメッセヌゞしか受信しおいないこずがわかりたす。



  1. ネットワヌクにマルチキャストトラフィックの受信者がなくなったずきにルヌタヌが送信したIGMPグルヌプ固有のク゚リメッセヌゞ。
  2. ルヌタヌが定期的に送信するIGMP General Queryメッセヌゞ。


したがっお、IGMPスヌヌピングが有効な堎合、スむッチはたず、特定のグルヌプのマルチキャストトラフィックを、実際の受信者がいるポヌトにのみ送信したす。 ぀たり このタむプのトラフィックの䌝送を最適化したす。









次に、ルヌタヌぞのIGMPメッセヌゞの数を枛らしたす。 実際、ルヌタヌは、マルチキャストトラフィックの最初の受信者の存圚ず最埌の受信者の切断に぀いおのみ孊習したす。 他の受信者の接続ず切断は、論理的なスむッチによっお完党に芏制されおいたす。



3番目に、マルチキャストトラフィックの送信に関䞎しないスむッチ䞊のすべおのポヌトに送信されるIGMPメッセヌゞの数を倧幅に削枛したす。 思い出すず、IGMPスヌヌピングがない堎合、すべおのIGMPパケットは䟋倖なくすべおのポヌトに転送されたす。



スむッチ自䜓に衚瀺される内容を確認する必芁がありたす。



 cbs-sw-2960x#sh ip igmp snooping groups Vlan Group Type Version Port List ----------------------------------------------------------------------- 115 230.255.0.1 igmp v2 Gi1/0/14, Gi1/0/15, Gi1/0/19
      
      





グルヌプ230.255.0.1のマルチキャストトラフィックの受信者は、ポヌトGi1 / 0/14、Gi1 / 0/15、Gi1 / 0/19の背埌にあるこずがわかりたす。 Gi1 / 0/19ポヌトの背埌にはルヌタヌ自䜓がありたす。 スむッチは自動的にルヌタヌにポヌトを远加したした。 スむッチの詳现に぀いおは、debug ip igmp snoopingデバッガヌを実行できたす。



IGMPスヌヌピングが有効で、マルチキャストトラフィックの゜ヌスが同じネットワヌク䞊にある



したがっお、゜ヌスがネットワヌク内のどこかにある堎合、すべおがうたく機胜したす。 しかし、マルチキャストトラフィックの゜ヌスを、受信者がいるネットワヌクの同じセグメントに転送したしょう。 状況は非垞に日垞的です。 たずえば、衛星ずいく぀かのSTBコン゜ヌルからテレビチャンネルを受信するシステムがありたす。 たたは、VLCプレヌダヌたたは、たずえば、同じネットワヌクセグメントにある耇数の消費者にデヌタを送信するビデオ監芖カメラを䜿甚したす。 別のケヌスは、ワむダレスネットワヌクコントロヌラずアクセスポむント間のマルチキャストトラフィックの送信です。 この状況でIGMPスヌヌピングはどのように機胜したすか



ルヌタヌでの実隓を玔粋にするには、PIMを無効にしたす。これは、マルチキャストトラフィックをルヌティングする必芁がなくなったためです。



IGMPスヌヌピングを無効にしたオプションを怜蚎するこずは意味がありたせん。すべおのトラフィックは単にブロヌドキャストずしお送信されたす。 , IGMP snooping , . VLC (.. IGMP ).



, , , multicast-:









, IGMP snooping . , , VLC 230.255.0.1 ( ). «», , IGMP Report, . , multicast- . VLC :









IGMPv3
, , IGMPv3. IGMPv2. , Cisco IGMPv2. Windows (7, 8, 10) IGMPv3. IGMP , IGMPv2 General Query, . IGMP, .


, multicast- . IGMP snooping , . しかし、ありたせん。 . , , multicast- ( , multicast- ). , IGMP Report, , , , . IGMP snooping - : IGMP .









. :



 cbs-sw-2960x#sh ip igmp snooping groups cbs-sw-2960x#
      
      





(debug), :



 Sep 13:54:01 MSK: IGMPSN: Received IGMPv3 Report for group v3 received on Vlan 115, port Gi1/0/15 Sep 13:54:01 MSK: IGMPSN: Rx IGMPv3 Report on Gi1/0/15 when Querier is not IGMPv3, Vlan 115.
      
      





, , — IGMPv3 Report, Querier IGMPv3 ( Querier ). , IGMPv3 IGMPv2 ( ). .



確認したす。 , :



 Sep 15:07:08 MSK: IGMPSN: Received IGMPv2 Report for group 230.255.0.1 received on Vlan 115, port Gi1/0/15 Sep 15:07:08 MSK: IGMPSN: group: Received IGMPv2 report for group 230.255.0.1 received on Vlan 115, port Gi1/0/15 Sep 15:07:08 MSK: IGMPSN: router: Is not a router port on Vlan 115, port Gi1/0/15 Sep 15:07:08 MSK: IGMPSN: group: Skip client info adding - ip 172.17.15.11, port_id Gi1/0/17, on vlan 115 Sep 15:07:08 MSK: IGMPSN: No mroute detected: Drop IGMPv2 report for group 230.255.0.1 received on Vlan 115, port Gi1/0/15
      
      





, IGMP ( ), «mroute». , IGMP snooping , . multicast- . «show ip igmp snooping mrouter». , , IGMP General Query. , IGMP snooping , multicast- . , , mrouter- (multicast router port). mrouter- IGMP snooping . , IGMP.



IGMP ( PIM). , mrouter-:



 cbs-sw-2960x#sh ip igmp snooping mrouter Vlan ports ---- ----- 115 Gi1/0/19(dynamic)
      
      





. VLC . , . いや , multicast- – mrouter-. , IGMP Report , multicast- . , multicast-.



. , multicast- , multicast , . multicast- IGMP Report 230.255.0.1.


VLC , multicast- . -- IGMP , , . .



, ( UDP- ):









, :













, , IGMP snooping Cisco . mrouter- IGMP ? , ? , . – mrouter-. , . , . , . – IGMP Querier. multicast- IGMP. mrouter- :



 cbs-sw-2960x#sh ip igmp snooping mrouter Vlan ports ---- ----- 115 Switch
      
      





IGMP General Query. これは倧きなプラスです。 , , , – multicast-, mrouter-. , IGMP snooping .



. multicast- mrouter-. , , mrouter-. , , IGMP Querier.


. Cisco IGMP snooping, , mrouter-. mrouter-:



  1. IGMP snooping ( , , ) multicast-, , . .



  2. IGMP Report.


mrouter- IGMP snooping, multicast- mroute-. .



IGMP snooping 224.0.0.X



IGMP snooping, , multicast-, 224.0.0.0-255 (224.0.0.0/24).



, ( ). IP- . , 224.0.0.5 OSPF, 224.0.0.10 – EIGRP. / . ぀たり IGMP Report. IGMP snooping Cisco .



IGMP Report. , 224.0.0.251 224.0.0.252. Multicast DNS Link-Local Multicast Name Resolution, .

 Sep 17:27:36 MSK: IGMPSN: Received IGMPv2 Report for group 224.0.0.251 received on Vlan 115, port Gi1/0/15 Sep 17:27:36 MSK: IGMPSN: 224.0.0.251 is a Reserved MCAST address Sep 17:27:36 MSK: IGMPSN: group: Received IGMPv2 report for group 224.0.0.251 received on Vlan 115, port Gi1/0/15 with invalid group address Sep 17:27:37 MSK: IGMPSN: Received IGMPv2 Report for group 224.0.0.252 received on Vlan 115, port Gi1/0/15 Sep 17:27:37 MSK: IGMPSN: 224.0.0.252 is a Reserved MCAST address Sep 17:27:37 MSK: IGMPSN: group: Received IGMPv2 report for group 224.0.0.252 received on Vlan 115, port Gi1/0/15 with invalid group address
      
      





Cisco , , «224.0.0.». IGMP Report.


結論ずしお



IGMP snooping Cisco. « ». , (, IGMP Group-Specific Query), IGMP Leave (, , ), STP (, , ) . .



, IGMP snooping. , , - (, mrouter- router-), , . IGMP snooping , .



All Articles