Multicast UDP on raspberry pi

I haven't narrowed things down enough to know if my issue is because of debian, raspbian specifically, or if I am just missing a something completely.

I have a python application that uses multicast UDP to let other devices on the network know that my application is up and running and available at a specific IP address.

The UDP multicast group is and port is 9131. If I run tcpdump, I can see that the packet I am trying to send is actualy sending out data, but I never see anything come through on other machines on the network.

There are other devices that uses this same kind of "beacon" with same multicast group and port and I can see those packets come through on other machines. The router has no firewall, and I am really kind of out of options at this point.

Below is the basic diagnostics I know how to run. The bad udp chksum looks like it's probably not helpful, but I don't really know anything about that.

Output of ifconfig

eth0      Link encap:Ethernet  HWaddr b8:27:eb:b2:79:12  
          inet addr:  Bcast:  Mask:
          RX packets:1682 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1686 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:119105 (116.3 KiB)  TX bytes:169570 (165.5 KiB)

Output of tcpdump while app is running

    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
03:29:15.722653 IP (tos 0x0, ttl 1, id 0, offset 0, flags [DF], proto UDP (17), length 221) > [bad udp cksum 0xae84 -> 0xaabe!] UDP, length 193
    0x0000:  4500 00dd 0000 4000 0111 cb66 c0a8 0207  [email protected]....
    0x0010:  efff fafa 8237 23ab 00c9 ae84 414d 5842  .....7#.....AMXB
    0x0020:  3c4d 4143 2d41 4444 523d 6238 3a32 373a  <MAC-ADDR=b8:27:
    0x0030:  6562 3a62 323a 3739 3a31 323e 3c2d 5555  eb:b2:79:12><-UU
    0x0040:  4944 3d32 3032 3438 3135 3937 3537 3734  ID=2024815975774
    0x0050:  3930 3e3c 2d53 444b 436c 6173 733d 5574  90><-SDKClass=Ut
    0x0060:  696c 6974 793e 3c2d 4d61 6b65 3d69 5275  ility><-Make=iRu
    0x0070:  6c65 426f 783e 3c2d 4d6f 6465 6c3d 5265  leBox><-Model=Re
    0x0080:  6d6f 7465 426f 783e 3c2d 5265 7669 7369  moteBox><-Revisi
    0x0090:  6f6e 3d30 2e31 3e3c 2d50 6b67 5f4c 6576  on=0.1><-Pkg_Lev
    0x00a0:  656c 3d47 4350 4b30 3032 3e3c 2d43 6f6e  el=GCPK002><-Con
    0x00b0:  6669 672d 5552 4c3d 6874 7470 3a2f 2f31  fig-URL=http://1
    0x00c0:  3932 2e31 3638 2e32 2e37 3a38 303e 3c2d><-
    0x00d0:  5374 6174 7573 3d52 6561 6479 3e         Status=Ready>
1 packet captured
1 packet received by filter
0 packets dropped by kernel

Output of netstat while program is running

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
udp        0      0 *                           1510/dhclient   
udp        0      0 *                           2089/python     
udp        0      0    *                           1510/dhclient   
udp        0      0*                           1911/ntpd       
udp        0      0   *                           1911/ntpd  

4 Answers 4


I understand that your host, is sending multicast packet to group on port 9131

NOTE: I assume however that servers are listening on port 9131. you didn't provide any info on this.

From ifconfig output, I can see that MULTICAST is enabled and the tcpdump confirm this.

First make sure that the host running the servers (the one receiving the multicast packet) have joined the multicast group.

On each server host type :

netstat -gn

If you see your multicast address, it has joined the group. If not, then either something is wrong with your server program or possibly kernel settings.

If the server has joined the group but you don't see any packet incoming from client, then check on your router that you have enabled igmp ( your router must be igmp capable)

For example,on cisco router

conf t
ip multicast-routing
For each interface involved.
int <NIC>
ip pim sparse-dense-mode

If igmp is enabled on router, look for debug features to track the packets.

On server side, start a packet capture :

tcpdump -i <NIC> host

If you don't see any packet coming in, then the multicast packet are not forwarded (assuming that

Then on client send a multicast packet (use the script in link below to troubleshoot)

NOTE: the UDP packet seems malformed so not sure if servers will be able to read it. You can use the script in link below to confirm whether or not the message in tcpdump are displaying as malformed or not ( they are not in my case)

Example of python code using multicast :


NOTE: I used this script on a debian raspi ( not raspbian and server received packets through router - as setup above - fine)

Linux guide : http://stlinux.com/howto/network/short-guide

Cisco : http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3750/software/release/12-2_52_se/configuration/guide/3750scg/swmcast.html#wp1024278

  • Very long answer and the tiniest part is what actually appeared to be the problem. The troubleshooting stuff you have mentioned, I already did, but that was after I posted this. Everything looked good on the server and the client. IGMP on the router was the problem, but that setting was hidden
    – Alex
    Apr 2, 2014 at 0:31
  • 2
    your description was not clear enough to give a straight answer so I thought I could write a mini troubleshooting guide.
    – UnX
    Apr 2, 2014 at 7:26

I noticed that this can also be a hardware and/or driver problem. I used multicast UDP (transmit and receive) on my raspberryPI's without any trouble - with C, Java and/or Python programs.

However, I just learned that UDP multicast receive DOES NOT WORK with the nice little USB nano wifi adapter from EDIMAX - sending UDP (multicast) works, also receiving the own (local) messages.

the details of the USB sticks from lsusb:

UDP multicast receive does not work: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]

UDP multicast receive works fine: ID 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter

  • also works: this stick from ASUS with ID 0b05:1791 ASUSTek Computer, Inc. WL-167G v3 802.11n Adapter [Realtek RTL8188SU]
    – Michael
    Jul 17, 2015 at 13:12

I encountered a similar problem where the packets were coming in and I could see them with tcpdump but no program could receive the data.

The problem in this case was that I had used iptables to only permit traffic from my local subnet but of course multicast comes from instead. Rather than open up that entire subnet (may as well not have a firewall then) I just allowed traffic in from all hosts on the specific UDP port I was using for multicast, and this fixed the problem.


For us we had a similar issue where the multicast group was joined fine, but messages were not being received.

We checked the igmp settings on the router, which seemed to be in order.

In the end we switched from using the IPv6 multicast address to IPv4 and that resolved it for that particular system.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .