Come posso sapere se IP Multicast è abilitato


19

Ho script che eseguono test multicast IP; tuttavia, i miei script non riescono su una particolare macchina linux.

So che posso guardare CONFIG_IP_MULTICASTnel file di configurazione del kernel per determinare se il kernel è stato compilato con questo. Tuttavia, sarebbe più facile contrassegnare i requisiti mancanti nel mio script se potessi guardare /proco sysctlottenere la risposta.

C'è un modo per scoprire se IP Multicast è stato compilato nel kernel senza guardare CONFIG_IP_MULTICAST?

Risposte:


18

Sembra che la maggior parte dei kernel (post v1) supporti il ​​multicast per impostazione predefinita o abbiano CONFIG_IP_MULTICAST abilitato durante la compilazione. Per verificare se il kernel compilato ed in esecuzione si iscrive a qualsiasi gruppo multicast, vorrei utilizzare netstat -g.

Sembra che la maggior parte dei kernel (post v1) supportino il multicast per impostazione predefinita.

[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

Vedo che l'interfaccia eth0 sul mio host pensa al suo gruppo mcast di base 224.0.0.251 sottoscritto. In alternativa, se eseguo il ping del gruppo o della rete e quindi tutte le reti host abilitate multicast note mi vengono restituite, direi che multicast funziona sull'host. Puoi provare netstat -go cat /proc/net/igmpe vedere se restituisce gruppi sul tuo host?


1
Ma come si determina se il router a cui è connessa la scatola supporta il multicast?
Nils,

1
Multicasting: il mittente invia un singolo datagramma dal suo indirizzo unicast all'indirizzo del gruppo multicast e i router intermedi si occupano di fare copie e inviarle a tutti i destinatari che si sono uniti al corrispondente gruppo multicast.
Nikhil Mulley,

3
Se sì, il router deve supportare il multicasting allora. Tuttavia, per mittenti / ricevitori funziona su IGMP e per router, il suo protocollo Independent Multicast (PIM). Router che supporta PIM, di solito abilitato e gruppo multicast - 224.0.0.0/4. Prova a mettere un altro PC in ascolto in gruppo all'altro capo e invia i dati al gruppo multicast e controlla se il ricevitore dell'altro destinatario riceve i dati. La rete del router supporta il multicasting. Pochi strumenti online: imj.ucsb.edu/mcast_detective (windows)
Nikhil Mulley il

20

Sulla tua scatola di Linux: ip maddr show dà:

@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
Come aggiungere un gruppo muticast a un'interfaccia?
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

Disabilita multicast:

ifconfig eth0 -multicast

risultato:

# 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

Nessun Multicast presente nell'interfaccia

Abilita multicast:

ifconfig eth0 multicast

8
Va detto che ifconfigora è deprecato in Linux ... dovremmo usare le iproute2utility.
Mike Pennington,

7
Sono passati 2 anni e stiamo ancora usandoifconfig
Askar

1
@oscar, ma ciò non significa che sia utile farlo come ipe altre utility di iproute2 stanno riflettendo le recenti modifiche al codice di rete del kernel Linux (a differenza ifconfig).
pevik,

6

Utilizzando il ipcomando è possibile verificare se un'interfaccia è multicast in grado di:

ip link show eth0 | grep MULTICAST

Per abilitare o disabilitare il multicast è possibile utilizzare:

sudo ip link set dev eth0 multicast [on|off] 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.