Como posso saber se o IP Multicast está ativado?

18

Eu tenho scripts que executam testes de multicast IP; no entanto, meus scripts estão falhando em uma máquina linux específica.

Eu sei que posso olhar para CONFIG_IP_MULTICAST no arquivo de configuração do kernel para determinar se o kernel foi compilado com isso. No entanto, seria mais fácil sinalizar os requisitos ausentes no meu script se eu pudesse olhar para /proc ou sysctl e obter a resposta.

Existe uma maneira de descobrir se o IP Multicast foi compilado no kernel sem olhar para CONFIG_IP_MULTICAST ?

    
por Mike Pennington 01.12.2011 / 14:02

4 respostas

18

Parece que a maioria dos kernels (post v1) suporta multicast por padrão ou tem CONFIG_IP_MULTICAST habilitado durante a compilação. Para verificar se o kernel compilado e em execução se inscreve em qualquer grupo multicast, usaria netstat -g .

Parece que a maioria dos kernels (post v1) suporta multicast por padrão.

[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

Eu vejo que a interface eth0 no meu host acha que ela está inscrita no 224.0.0.251 grupo mcast básico. Também, alternativamente, se eu fizer ping no grupo ou na rede e, em seguida, todas as redes de host habilitadas para multicast conhecidas forem retornadas para mim, eu diria que o multicast está funcionando no host. Você pode tentar netstat -g ou cat /proc/net/igmp e ver se ele retorna algum grupo no seu host?

    
por 01.12.2011 / 14:15
17

Na sua caixa linux: %código% 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
    
por 20.09.2012 / 07:48
7
# 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

Desativar multicast:

ifconfig eth0 -multicast

resultado:

# 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

Nenhum Multicast presente na interface

Ativar multicast:

ifconfig eth0 multicast
    
por 23.12.2012 / 12:24
4

Usando o comando ip , é possível verificar se uma interface é capaz de realizar multicast por:

ip link show eth0 | grep MULTICAST

Para ativar ou desativar o multicast, você pode usar:

sudo ip link set dev eth0 multicast [on|off] 
    
por 30.11.2017 / 13:19