web-dev-qa-db-ja.com

マルチキャストtcpdumpとサブスクリプション

マルチキャストハウツー から:

IP_ADD_MEMBERSHIP。

関心のあるマルチキャストグループをカーネルに通知する必要があることを思い出してください。グループに関心のあるプロセスがない場合、ホストに到着するそのグループ宛てのパケットは破棄されます。

そうしないと、tcpdumpが付いたパケットは表示されません。

  • すべてのマルチキャストトラフィックをサブスクライブして、既存のすべてのトラフィックに対してtcpdumpを実行することはできますか? IGMPはこれを許可しないと思うので、おそらく許可しません。しかし、すべてのマルチキャストトラフィックを送信するようにスイッチを構成できるかもしれません。それは可能ですか?
  • コマンドラインツールを使用して(特定のIPの)サブスクリプションを実行することは可能ですか? (注:I know Cでこれを行う方法。ただし、既存のツールを使用し、このために別のプログラムをコンパイルしないことをお勧めします)
2
Karoly Horvath

マルチキャストインフラストラクチャによって異なります。たとえば、多くのマルチキャストルーターを設定し、スイッチにさまざまなルールを設定できます(サブスクリプションを静的、動的、または特定のポート/ノードで禁止することもできます)。

ただし、マルチキャストグループにサブスクライブする場合は...サブスクライブするだけです。明らかにIGMPスヌーピングが有効になっているインフラストラクチャを介してIGMPJOINパケットを送信します。さまざまなツールを使用してIGMPパケットを生成できます。

より高いレベルへの一歩を踏み出し、 iperf を使用して任意のマルチキャストグループにサブスクライブします。ネットワークインフラストラクチャがそれほど複雑ではなく、 "許可"でマルチキャストグループにサブスクライブする場合は、次を使用します。

iperf -s -u -B 239.100.100.100ここで、239.100.100.100はマルチキャストグループアドレスです。

詳細なレポートを取得するには、同時にtcpdumpを実行します。

IperfはIGMPv1とv2のみをサポートしていると私は信じていることに注意してください。あなたがIGMPv3 JOINパケットを作りたいのなら、あなたが述べたように、プログラムを書くのはそれほど難しいことではないはずです。しかし、おそらく同じことをするツールはもっとたくさんあるでしょう。

3
mbrownnyc

マルチキャストHOWTOのリンク先ページには、tcpdumpについて何も書かれていません。

Tcpdumpはlibpcapを使用してネットワークパケットをキャプチャし、イーサネットでは、libpcapは次の両方をサポートします。

  • プロミスキャスモード。ネットワークアダプタは、宛先アドレスに関係なく、受信したすべてのパケットをホストに配信し、ネットワークスタックは、フィルタを通過するすべてのパケットをキャプチャメカニズムに配信します。

  • 非無差別モード。ネットワークアダプタは、配信するように構成されたユニキャストパケット、ブロードキャストパケット、およびマルチキャストパケットをホストに配信し、ネットワークスタックは、キャプチャフィルタを通過するすべてのパケットをキャプチャメカニズムに配信します。

Tcpdumpは、デフォルトで無差別モードを要求します。そのモードでは、ホストに送信されないユニキャストパケットも表示されます(スイッチドネットワーク上にないか、スイッチドネットワーク上にあるが、すべてのトラフィックを取得する「ミラー」ポートに接続されている場合)。

Tcpdumpを渡すと、-pフラグ、無差別モードを要求します。この場合、マシンが「取得する必要がある」パケットのみが表示されます。その場合、特定のマルチキャストグループに関心を登録しているプロセスがない場合、そのグループのマルチキャストアドレスに送信されたパケットは表示されませんが、その場合、それはバグではなく、マシンが機能していないため、機能です。 tそれらのパケットで何かをします。

したがって、すべてのパケット(すべてのホストへのユニキャストパケット、すべてのマルチキャストアドレスへのマルチキャストパケット、およびブロードキャストパケット)を表示する場合は、tcpdump(またはWiresharkなど)を無差別モードで実行し、スイッチドネットワークを使用している場合は、 「ミラーポート」または「SPANポート」、またはスイッチベンダーが呼んでいるもの(「ミラーポート」をサポートしている場合)。

無差別モードとスイッチドネットワークの詳細については、 イーサネットパケットキャプチャに関するWireshark Wikiページ を参照してください。このページの情報は、Wiresharkだけでなく、tcpdumpを含むすべてのパケットスニファに適用されます。

1
user137177