IPマルチキャストが有効になっているかどうかを知る方法


19

IPマルチキャストテストを実行するスクリプトがあります。ただし、特定のLinuxマシンでスクリプトが失敗します。

CONFIG_IP_MULTICASTカーネルがこれでコンパイルされたかどうかを判断するために、カーネル構成ファイルを見ることができることを知っています。ただし、スクリプトの欠落している要件にフラグを立てる方が、答えを確認し/procたりsysctl取得したりできれば簡単です。

IPマルチキャストが見ないでカーネルにコンパイルされたかどうかを確認する方法はありCONFIG_IP_MULTICASTますか?

回答:


18

ほとんどのカーネル(v1以降)はデフォルトでマルチキャストをサポートしているか、またはコンパイル中にCONFIG_IP_MULTICASTが有効になっているようです。コンパイルされ実行中のカーネルがマルチキャストグループをサブスクライブしているかどうかを確認するには、を使用しますnetstat -g

ほとんどのカーネル(v1以降)はデフォルトでマルチキャストをサポートしているようです。

[root@centos module]# grep CONFIG_IP_MULTICAST /usr/src/kernels/2.6.18-274.7.1.el5-i686/.config 
CONFIG_IP_MULTICAST=y
[root@centos module]# netstat -g
IPv6/IPv4 Group Memberships
Interface       RefCnt Group
--------------- ------ ---------------------
lo              1      all-systems.mcast.net
eth0            1      224.0.0.251
eth0            1      all-systems.mcast.net

私のホストのeth0インターフェイスは、サブスクライブされた224.0.0.251の基本的なmcastグループであると考えています。また、グループまたはネットワークにpingを実行して、既知のマルチキャスト対応ホストネットワークがすべて返された場合、マルチキャストがホストで機能していると言えます。ホスト上のグループを返すかどうnetstat -gcat /proc/net/igmp、または試してみてください。


1
しかし、ボックスが接続されているルーターがマルチキャストをサポートしている場合、どのように判断しますか?
ニルス

1
マルチキャスト-送信者は単一のデータグラムをユニキャストアドレスからマルチキャストグループアドレスに送信し、中間ルーターはコピーを作成して、対応するマルチキャストグループに参加したすべての受信者に送信します。
ニキルマーリー

3
はいの場合、ルーターはマルチキャストをサポートする必要があります。ただし、送信者/受信者の場合はIGMPで、ルーターの場合はProtocol Independent Multicast(PIM)で動作します。通常有効なPIMおよびマルチキャストグループをサポートするルーター-224.0.0.0/4。マルチキャストグループ&チェック他端の受信機がdata.Ifyを受信した場合にもう一方の端&送信データでグループ内の他のPCのリスニングを入れてみてください、ルータネットワークは、オンラインサポートmulticasting.Fewツールを行います。imj.ucsb.edu/mcast_detective(窓)
ニヒルマレー

20

あなたのLinuxボックスで: ip maddr show 与える:

@4Gtest ~]$ ip maddr show
1:      lo
        inet  224.0.0.1
        inet6 ff02::1
2:      p3p1
        link  01:00:5e:00:00:01
        link  33:33:00:00:00:01
        link  33:33:ff:bd:7e:0f
        link  01:00:5e:00:00:fb
        link  01:00:5e:7f:ff:05
        inet  224.127.255.5
        inet  224.0.0.251
        inet  224.0.0.1
        inet6 ff02::1:ffbd:7e0f
        inet6 ff02::1

1
インターフェイスにミューティカストグループを追加する方法は?
AR

8
# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:F1:FF:EA  
inet addr:78.46.74.27  Bcast:78.46.74.31  Mask:255.255.255.224
inet6 addr: fe80::20c:29ff:fef1:ffea/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1
RX packets:5339836 errors:0 dropped:0 overruns:0 frame:0
TX packets:5486444 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:820300389 (782.2 MiB)  TX bytes:1929979381 (1.7 GiB)
Base address:0x1400 Memory:e8820000-e8840000

マルチキャストを無効にします。

ifconfig eth0 -multicast

結果:

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:F1:FF:EA  
inet addr:78.46.74.27  Bcast:78.46.74.31  Mask:255.255.255.224
inet6 addr: fe80::20c:29ff:fef1:ffea/64 Scope:Link
UP BROADCAST MTU:1500  Metric:1
RX packets:5339836 errors:0 dropped:0 overruns:0 frame:0
TX packets:5486444 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:820300389 (782.2 MiB)  TX bytes:1929979381 (1.7 GiB)
Base address:0x1400 Memory:e8820000-e8840000

インターフェイスにマルチキャストがありません

マルチキャストを有効にする:

ifconfig eth0 multicast

8
その言及されるべきでifconfig、今されてLinuxでは非推奨 ...我々が使用する必要がありますiproute2ユーティリティを。
マイクペニントン

7
2年が経過し、現在も使用していますifconfig
-Askar

1
@oscarしかし、それはそれのように行うには良いことを意味するものではありませんipから、その他のユーティリティiproute2のが(とは異なり、Linuxのカーネルのネットワークコードの最近の変更を反映していますifconfig)。
ペビック

6

ipコマンドを使用すると、インターフェイスがマルチキャスト対応かどうかを次の方法で確認できます。

ip link show eth0 | grep MULTICAST

マルチキャストを有効または無効にするには、次を使用できます。

sudo ip link set dev eth0 multicast [on|off] 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.