Datagramas multicast UDP não sendo enviados para clientes externos

0

Estou trabalhando em Ubuntu 16.04 xenial com o x86_64 Linux 4.4.0-83-generic kernel.

Eu tenho um remetente multicast do udp enviando datagramas do udp para o grupo multicast 226.1.1.1:4096 .

Ifconfig indica que o multicast está ativado:

wlp4s0    Link encap:Ethernet  HWaddr cc:b0:da:f6:cb:67  
      inet addr:192.168.178.29  Bcast:192.168.178.255  Mask:255.255.255.0
      inet6 addr: fe80::77ba:cd68:4b4e:33f5/64 Scope:Link
      inet6 addr: 2003:8c:2820:c00:2063:e748:b633:bdf0/64 Scope:Global
      inet6 addr: 2003:8c:2820:c00:a12e:cdde:cd01:66da/64 Scope:Global
      UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
      RX packets:5027967 errors:0 dropped:0 overruns:0 frame:0
      TX packets:2605226 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:7076352870 (7.0 GB)  TX bytes:523006066 (523.0 MB)

Wireshark mostra que os datagramas multicast do udp estão sendo enviados e os clientes estão ingressando no grupo multicast (192.168.178.29 é o remetente e 192.168.178.42 é o cliente / receptor).

netstat -ng mostra que o grupo multicast 226.1.1.1 está "ativo":

IPv6/IPv4 Group Memberships
Interface       RefCnt Group
--------------- ------ ---------------------
lo              1      224.0.0.1
enp3s0          1      224.0.0.1
wlp4s0          1      226.1.1.1
wlp4s0          3      224.0.0.251
wlp4s0          1      224.0.0.1
lo              1      ff02::1
lo              1      ff01::1
enp3s0          1      ff02::1
enp3s0          1      ff01::1
wlp4s0          5      ff02::fb
wlp4s0          1      ff02::1:ff01:66da
wlp4s0          1      ff02::1:ff33:bdf0
wlp4s0          1      ff02::1:ff4e:33f5
wlp4s0          1      ff02::1
wlp4s0          1      ff01::1

No entanto, não consigo receber datagramas multicast nas máquinas clientes. Alguém já encontrou esse comportamento antes?

EDITAR:

Este é o tcpdump do pacote enviado do dispositivo android:

Frame 29525: 67 bytes on wire (536 bits), 67 bytes captured (536 bits)
IEEE 802.11 QoS Data, Flags: .......T
    Type/Subtype: QoS Data (0x0028)
    Frame Control Field: 0x8801
    .000 0000 0011 0000 = Duration: 48 microseconds
    Receiver address: AvmAudio_3f:23:27 (e0:28:6d:3f:23:27)
    Destination address: Espressi_0e:ad:2b (a0:20:a6:0e:ad:2b)
    Transmitter address: Motorola_e8:d7:73 (e4:90:7e:e8:d7:73)
    Source address: Motorola_e8:d7:73 (e4:90:7e:e8:d7:73)
    BSS Id: AvmAudio_3f:23:27 (e0:28:6d:3f:23:27)
    STA address: Motorola_e8:d7:73 (e4:90:7e:e8:d7:73)
    .... .... .... 0000 = Fragment number: 0
    1001 1101 0100 .... = Sequence number: 2516
    Qos Control: 0x0000
Logical-Link Control
Internet Protocol Version 4, Src: 192.168.178.23, Dst: 192.168.178.42
    0100 .... = Version: 4
    .... 0101 = Header Length: 20 bytes (5)
    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
        0000 00.. = Differentiated Services Codepoint: Default (0)
        .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)
    Total Length: 33
    Identification: 0x0000 (0)
    Flags: 0x02 (Don't Fragment)
    Fragment offset: 0
    Time to live: 64
    Protocol: UDP (17)
    Header checksum: 0x5539 [validation disabled]
    [Header checksum status: Unverified]
    Source: 192.168.178.23
    Destination: 192.168.178.42
    [Source GeoIP: Unknown]
    [Destination GeoIP: Unknown]
User Datagram Protocol, Src Port: 5001, Dst Port: 4096
Data (5 bytes)

0000  68 65 6c 6c 69                                    helli

  29526 16.625870      192.168.178.23        192.168.178.42        UDP      67     5001 → 4096 Len=5

E isso é da máquina Linux para o cliente em 192.168.178.42:

16809 9.575857       192.168.178.29        192.168.178.42        UDP      65     43981 → 4096 Len=3

Frame 16809: 65 bytes on wire (520 bits), 65 bytes captured (520 bits)
IEEE 802.11 QoS Data, Flags: .......T
    Type/Subtype: QoS Data (0x0028)
    Frame Control Field: 0x8801
    .000 0000 0010 1100 = Duration: 44 microseconds
    Receiver address: AvmAudio_3f:23:27 (e0:28:6d:3f:23:27)
    Destination address: Espressi_0e:ad:2b (a0:20:a6:0e:ad:2b)
    Transmitter address: LiteonTe_f6:cb:67 (cc:b0:da:f6:cb:67)
    Source address: LiteonTe_f6:cb:67 (cc:b0:da:f6:cb:67)
    BSS Id: AvmAudio_3f:23:27 (e0:28:6d:3f:23:27)
    STA address: LiteonTe_f6:cb:67 (cc:b0:da:f6:cb:67)
    .... .... .... 0000 = Fragment number: 0
    0100 0111 1111 .... = Sequence number: 1151
    Qos Control: 0x0000
Logical-Link Control
Internet Protocol Version 4, Src: 192.168.178.29, Dst: 192.168.178.42
    0100 .... = Version: 4
    .... 0101 = Header Length: 20 bytes (5)
    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
        0000 00.. = Differentiated Services Codepoint: Default (0)
        .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)
    Total Length: 31
    Identification: 0xbd2d (48429)
    Flags: 0x02 (Don't Fragment)
    Fragment offset: 0
    Time to live: 64
    Protocol: UDP (17)
    Header checksum: 0x9807 [validation disabled]
    [Header checksum status: Unverified]
    Source: 192.168.178.29
    Destination: 192.168.178.42
    [Source GeoIP: Unknown]
    [Destination GeoIP: Unknown]
User Datagram Protocol, Src Port: 43981, Dst Port: 4096
Data (3 bytes)

0000  73 64 0a                                          sd.
    
por AronC 15.07.2017 / 21:21

0 respostas