problema muticast entre duas máquinas ubuntu

0

Eu tenho duas máquinas 16.04 do Ubuntu (máquinas A e B) que são conectadas por cabo de rede. A máquina A está criando multicasts. Os multicasts não chegam à máquina B. Alguém sabe qual é a razão para isso?

O seguinte fornece algumas informações forenses:

Ambas as máquinas não possuem um firewall ativo, por exemplo, a máquina A mostra:

root@linux:~# iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

As interfaces conectadas da máquina A e B são configuradas para transportar multicast, por exemplo, a máquina A mostra:

enp0s31f6 Link encap:Ethernet  HWaddr 90:1b:0e:c4:af:e1  
          inet addr:192.168.10.3  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::921b:eff:fec4:afe1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9221 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25793 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:890075 (890.0 KB)  TX bytes:8214828 (8.2 MB)
          Interrupt:16 Memory:f7100000-f7120000 

enp1s0    Link encap:Ethernet  HWaddr 90:1b:0e:ae:a2:fa  
          inet addr:169.254.1.2  Bcast:169.254.255.255  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Memory:f7000000-f707ffff 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MULTICAST  MTU:65536  Metric:1
          RX packets:106353 errors:0 dropped:0 overruns:0 frame:0
          TX packets:106353 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:20525233 (20.5 MB)  TX bytes:20525233 (20.5 MB)

A interface enp0s31f6 está conectada (RUNNING). A tabela de roteamento de A mostra:

root@linux:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.1    0.0.0.0         UG    100    0        0 enp0s31f6
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 enp1s0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 enp0s31f6

tcpdump na máquina A mostra o tráfego multicast de saída:

15:47:37.420032 IP 192.168.10.3.2222 > 239.0.0.222.2222: UDP, length 327
15:48:37.415102 IP 192.168.10.3.2222 > 239.0.0.222.2222: UDP, length 327
15:49:37.417969 IP 192.168.10.3.2222 > 239.0.0.222.2222: UDP, length 327

wireshark na máquina B não mostra o tráfego multicast.

Atenciosamente,

Guido

Eu fiz mais investigações. Eu instalei um comutador entre as duas máquinas Ubuntu A e B e, além disso, conectei um laptop Mac a esse switch. O mac obteve um IP do servidor DHCP da máquina B, então eu consegui conectar-me à internet, porque B também está conectado à internet e está desempenhando o papel do gateway.

Uma vez que comecei wireshark no mac eu podia ver os pacotes multicast enquanto em B nenhum pacote podia ser detectado. Além disso, eu iniciei o iperf em A e pude ver todos esses pacotes gerados no mac, mas não no B.

iperf -c 239.0.0.222 -p 2222 -u -T 32 -t 3 -i 1

Máquina A (que cria pacotes multicast)

root@linux:~# cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
root@linux:~# uname -a
Linux linux 4.4.0-93-generic #116-Ubuntu SMP Fri Aug 11 21:17:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Maschine B

root@testserver:~# cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
root@testserver:~# uname -a
Linux testserver 4.10.0-37-generic #41~16.04.1-Ubuntu SMP Fri Oct 6 22:42:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

A Máquina B também não tem firewall ativado:

root@testserver:~# iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

A Máquina B possui as seguintes interfaces de rede

eno1      Link encap:Ethernet  Hardware Adresse 74:d4:35:3d:13:14  
          inet Adresse:192.168.199.202  Bcast:192.168.199.255  Maske:255.255.255.0
          inet6-Adresse: fe80::e45b:3ea5:a1ca:2cf7/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:2541323 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:1958194 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:2907121035 (2.9 GB)  TX-Bytes:1743378563 (1.7 GB)
          Interrupt:20 Speicher:f0c00000-f0c20000 

enp12s0   Link encap:Ethernet  Hardware Adresse 00:13:3b:0f:71:2c  
          inet6-Adresse: fe80::213:3bff:fe0f:712c/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:22 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:0 (0.0 B)  TX-Bytes:2721 (2.7 KB)

enp14s0   Link encap:Ethernet  Hardware Adresse 00:13:3b:0f:71:2d  
          inet Adresse:192.168.30.1  Bcast:192.168.30.255  Maske:255.255.255.0
          inet6-Adresse: fe80::213:3bff:fe0f:712d/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:24903 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:28057 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:2617514 (2.6 MB)  TX-Bytes:3973717 (3.9 MB)

enp17s0   Link encap:Ethernet  Hardware Adresse 00:13:3b:0f:6d:19  
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:0 (0.0 B)  TX-Bytes:0 (0.0 B)

enp19s0   Link encap:Ethernet  Hardware Adresse 00:13:3b:0f:6d:1a  
          inet Adresse:192.168.40.1  Bcast:192.168.40.255  Maske:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:0 (0.0 B)  TX-Bytes:0 (0.0 B)

enp3s0    Link encap:Ethernet  Hardware Adresse 00:0a:cd:2f:f0:cc  
          inet6-Adresse: fe80::20a:cdff:fe2f:f0cc/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:1308 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:0 (0.0 B)  TX-Bytes:120880 (120.8 KB)

enp4s0    Link encap:Ethernet  Hardware Adresse 00:0a:cd:2f:f0:cd  
          inet Adresse:192.168.20.1  Bcast:192.168.20.255  Maske:255.255.255.0
          inet6-Adresse: fe80::20a:cdff:fe2f:f0cd/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:59234 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:69110 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:6492424 (6.4 MB)  TX-Bytes:9395771 (9.3 MB)

enp5s0    Link encap:Ethernet  Hardware Adresse 00:0a:cd:2f:f0:ce  
          inet6-Adresse: fe80::20a:cdff:fe2f:f0ce/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:0 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:31 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:0 (0.0 B)  TX-Bytes:3536 (3.5 KB)

enp6s0    Link encap:Ethernet  Hardware Adresse 00:0a:cd:2f:f0:cf  
          inet Adresse:192.168.10.1  Bcast:192.168.10.255  Maske:255.255.255.0
          inet6-Adresse: fe80::20a:cdff:fe2f:f0cf/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX-Pakete:822669 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:1701383 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:272743664 (272.7 MB)  TX-Bytes:2164337194 (2.1 GB)

lo        Link encap:Lokale Schleife  
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:65536  Metrik:1
          RX-Pakete:7895 Fehler:0 Verloren:0 Überläufe:0 Fenster:0
          TX-Pakete:7895 Fehler:0 Verloren:0 Überläufe:0 Träger:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX-Bytes:1222431 (1.2 MB)  TX-Bytes:1222431 (1.2 MB)

A máquina B está conectada via interface enp6s0 e a conexão com a Internet fornece interface eno1

As interfaces de rede enp3s0 enp4s0 enp5s0 e enp6s0 estão localizadas em uma placa de rede de 4 portas.

O cartão contém RTL 8168 nics

    
por art1915 16.11.2017 / 16:25

2 respostas

0

Vamos mostrar as configurações dos dois nós do servidor.

Referência rfc5771

O endereço IP do multicast não pode ser 192.168.10.3/24 como sua configuração.

Normalmente, eles devem estar no intervalo 224.0.0.0/4 (de 224.0.0.0 a 239.255.255.255)

Parece: 224.168.10.3

    
por 16.11.2017 / 16:40
0

Eu "resolvi" o problema. O problema era que o Wireshark obviamente não é possível mostrar pacotes multicast em uma máquina linux, se mais de uma interface for observada por essa instância do Wireshark ao mesmo tempo. Uma vez cheirei apenas uma interface com o Wireshark, pude ver os pacotes multicast. Talvez seja uma limitação do driver linux da placa de rede RTL 8169.

Mas eu tentei varrer os pacotes multicast, porque estou enfrentando o seguinte problema: Se um pacote multicast entra na interface X, eu não consigo vê-lo em uma interface de saída Y. Eu pedirei uma resposta com um novo thread.

Atenciosamente,

Guido

    
por 20.11.2017 / 15:11