CentOS 5 Networking :: Can't Receive The Multicast Data
Mar 27, 2009
I'm trying to receive data that is being broadcast on address 224.0.1.1, 224.0.1.2, 224.0.1.3, 224.0.1.4. ports are 1201, 1202, 1203, 1204 respectively. I can see the data using wireshark but can not get my program to receive the data. all firewalls are shutdown. iptables is not running, i've set net.ipv4_icmp_ignore_broadcasts = 0 and still no luck.
I have just set up an FC 13 box for a small network application. At the core, the application is supposed to receive some data over a multicast on my local network. However, for some reason, I am not being able to receive any multicast data on this machine. Other machines, on the same network (connected on the same layer 2 switch) are receiving the multicast just fine. I have tried the following things:
1. ensure that I am joining the multicast on the correct interface: the machine has only one ethernet card. Also, after starting my application, I use netstat -g to check for group membership. The multicast subscription shows up fine.
2. ensure there is no error in the program: the program works fine on my person linux machine
3. ensure that the multicast is actually available: it is available on all other local machines. I also wrote my own small broadcaster. data from this broadcaster (running on the same box) is available to other machines but not to my own listener program.
4. no firewall/filtering settings on the layer2 switch
5. TTL setting on the broadcast: have tried changing it from 1 through 5 with no effect. Note that even if the broadcast is coming from the same machine, my machine does not pick it up while other machines on the network do so.
I suspect this has to do with some settings on the network card itself. Below is the output of /sbin/ifconfig on the card:
eth0 Link encap:Ethernet HWaddr 00:08:A1:67:BBA inet addr:192.200.20.32 Bcast:192.200.20.255 Mask:255.255.255.0 inet6 addr: fe80::208:a1ff:fe67:bbca/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
For the last couple of days, I've been unsuccesfully trying to receive multicast packets on Ubuntu Server 11.04, and seen some strange things along the way. The program i use to test this, is basically http://www.scribd.com/doc/38224328/mcreceive-c.Now the network has been configured to forward me the multicast packets, regardless of the joins. So tcpdump shows me:
Code: 15:16:11.308952 IP 10.164.130.2.61417 > 224.16.17.23.47806: UDP, length 1400 ...
I've got an application that compiles in Windows and Linux and is using UDP multicast to communicate. I'm running it on a Windows machine, a Linux machine and a small board (Gumstix) that is running Linux as well. The Windows and Linux machines have no problems sending/receiving packets with each other. The Gumstix and Linux machines have no problems sending/receiving packets with each other. The Gumstix can also send/receive packets with two instances of the application both running on the Gumstix.
But when running on the Gumstix I can send udp multicast packets to Windows, but cannot receive them. (It works if I do point to point with a known IP port#, but not multicast.) I can run tcpdump on the Gumstix and see the packets, but they are not being received on my socket. Here's what tcpdump (running on the Gumstix) outputs when sending the same packet from different sources. Notice the IP header ID and flags (don't fragment) are different when coming from Windows.
WINDOWS to Gumstix -7:-45:-2.015784 IP (tos 0x0, ttl 15, id 35331, offset 0, flags [none], proto: UDP (17), length: 444) 172.30.42.3.1165 > 239.255.183.180.47028: UDP, length 416
LINUX to GUMSTIX -7:-43:-38.451991 IP (tos 0x0, ttl 15, id 0, offset 0, flags [DF], proto: UDP (17), length: 444) 172.30.42.13.32771 > 239.255.183.180.47028: UDP, length 416
GUMSTIX to GUMSTIX -7:-33:-10.955608 IP (tos 0x0, ttl 15, id 0, offset 0, flags [DF], proto: UDP (17), length: 444) 172.30.42.110.1025 > 239.255.183.180.47028: UDP, length 416
I've tried everything I can think of to get this to work but am not getting anywhere. Also I'm pretty inexperienced when it comes to Linux. Anything I could try to be able to receive udp multicast packets from Windows?
I have a PC connected by ethernet to a Galil motion controller card.I recently installed Centos 5.The Galil software for communicating with the card is reporting that it can't join a multicast socket group.The software used to work with another version of Linux.
is anyone familiar with MRTG? i have it up and running just fine, but i have a bunch of interfaces showing up with no data and i want to weed those out. how to specify which interfaces i want to receive and display data from?
I am trying to port some MS Visual Studio C++ code to Linux/wxWidgets. The code is socket-based and very similar between Windows and Linux. In Linux the socket, bind, and setsocketopt all return with no error. See:
Code: BOOL CAV15Input::SetupSocket(BOOL Out) { if(pU->PrDebug) { sprintf(_send,"CAV15Input::SetupSocket for port %d",pSonar->dPort); pU->OutMsg(_send,1,0); } pSonar->UDP_Sock=0; pSonar->UDPError=0; pSonar->UDP_Sock=socket(AF_INET,SOCK_DGRAM,0); if(pSonar->UDP_Sock<0 ) { pU->OutMsg("socket failed on SetupSocket",11,0); pSonar->UDP_Sock=0; pSonar->UDPError|=4; return FALSE; } // the AF_INET address family, which contains IP addresses, local.sin_family=AF_INET; local.sin_addr.s_addr=inet_addr(pSonar->IP_Add_PC); local.sin_port=htons(pSonar->dPort); // from Dave Goffe: //> int t = 1; //> //>setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,&t,sizeof(t)); int t=1; if(setsockopt(pSonar->UDP_Sock, SOL_SOCKET, SO_REUSEADDR, (char *)&t,sizeof(t)) <0) { CloseSock(); pU->OutMsg("set SO_REUSEADDR failed in SetupSocket",11,0); pSonar->UDPError|=4; return FALSE; } if(bind(pSonar->UDP_Sock,(sockaddr *)&local,sizeof(local))) { CloseSock(); pU->OutMsg("bind failed in SetupSocket",11,0); pSonar->UDPError|=8; return FALSE; } if(pU->PrDebug) { sprintf(_send,"socket setup & bind OK for port %d",pSonar->dPort); pU->OutMsg(_send,1,0); } // Join multicast group if(pSonar->datatype) // for element data mreq.imr_multiaddr.s_addr=inet_addr(pSonar->IP_Add_ELD); else // for beam data mreq.imr_multiaddr.s_addr=inet_addr(pSonar->IP_Add_HRB); mreq.imr_interface.s_addr=inet_addr(pSonar->IP_Add_PC); if(setsockopt(pSonar->UDP_Sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&mreq,sizeof(mreq)) <0) { CloseSock(); pU->OutMsg("join multicast failed in SetupSocket",11,0); pSonar->UDPError|=16; return FALSE; } if(pU->PrDebug) { if(pSonar->datatype) // for element data sprintf(_send,"join multicast OK on %s",pSonar->IP_Add_ELD); else // for beam data sprintf(_send,"join multicast OK on %s",pSonar->IP_Add_HRB); pU->OutMsg(_send,1,0); } jMCast=1; return TRUE; }
But then when I try recv(pSonar->UDP_Sock,&pUDP->u_dg_cM.cM[8],reedlen,0); it blocks as if there is no data. (In Windows this works fine.) Is there something else in Linux and/or wxWidgets that I'm missing that could prevent UDP datagrams from being received? Is there some way in Linux to monitor incoming UDP traffic?
I have a Dell laptop with a bcm4312 wireless card. Every once in a while though, the laptop is unable to send or receive any data for 30 seconds. The connection is not dropped, and nothing shows up in any system logs. Both the wl and b43 drivers have this problem, but it works fine under vista.
I am trying to search a tool for testing multicast. Currently, 'yum search multicast' yields nothing. I saw mcsender and mctest in google but they seem not to be supported in CentOS. Do you know any tool that can test multicast?
I am trying to search a tool for testing multicast. Currently, 'yum search multicast' yields nothing. I saw mcsender and mctest in google but they seem not to be supported in CentOS. Do you know any tool that can test multicast?
in my php page they ask the user to enter some input example like year. i want that input to be transfer into my .sh file and will show its output. how to make .sh file receive data from php and php sent data to .sh file
I am doing work on serial port. I want to send/receive data to/from Microcontrolar through serial port. But I don't know how to initialize, receive and send data to Serial port. i am new in fedora so i hav'nt any deep concept of fedora.can anyone send me C code , which communicate through serial port in fedora (or atleast help me). I am using Fedora 11.
I m new study Linux so Would you like guide me how to config CENTOS to share DATA .Anyway , pls if possible pls help me build FILE SERVER, ISA by CENTOS
I have several multicast data feeds that I'm trying to connect to using a minimal server install of Ubuntu as a VM on a VMWare ESXi server.I have another VM on the same server running Solaris that can connect with no issues to the incoming multicast stream.
This is not a linux specific question more of a general network issue with the hope that someone may have already done this under linux.My problem:I have a red hat linux machine transmitting IP multicast packets onto an ethernet gigabit network (cisco switch).Wireshark (running on a different red hat linux box confirms packets on network.
If I have set up 2 network interfaces on a box, if I started sending multicast traffic, it will go out through both interfaces? Or is there a way to control through which interface it will go out?
I have 4 interfaces, dvb0_0 - dvb0_3. Each one has a multicast stream coming in on it. The program I am using to decode these streams only accepts one interface though. How can I "combine" so that the program, listening on 1 ip can get all 4 streams? they are on groups 224.0.1.1-4
In the ipv4 code i was using "ip_mc_join_group()" to join the multicast group. but i cannot find a similar function for ipv6 i have found one ipv6_sock_mc_join() but this function is not available for use with my module as it is not exported.
have a doubt about the multicast address.I have read that IP and ethernet multicast address have the same last 23 bits. While an ethernet multicast address always starts with 01:00:5E. Changing the last 23 bits of the IP address into hexadecimal form and "adding" them to the first 24 bits we find the ethernet address but what about the missing bit??? For istance I have: 230.11.111.10 = 11100110.00001011.01101111.00001010 So converting the last 23 bits I have b:6f:a The final ethernet address will be 01:00:5E:b:6f:a . And what about the missing bit?
We have a high speed udp multicast connection. There are about 37 multicast groups and average incoming rate via the connection is about 20000 pkt/sec and peak 40000+ pkt/sec. Each packet is about 100-300 bytes. And there are 6 busiest multicast groups generating 80% of the traffic. No significant outgoing traffic via that interface. The problem is that, if our heavy-weight application create 37 sockets for all the groups, the packet loss become quite frequent. but if we create the 6 sockets for the busiest groups, the packet loss drops to 1/10 of the original level. We can confirm that the lost packets DO arrive in our box because a light-weight recorder on another box on the same ethernet segment can see the lost packets when listening to the same groups. If we start another heavy-weight application for the rest groups (31 groups ) on the same box, the packet loss just come back to the original level.
The packet loss happens not only to the heavy-weight application but also the light-weight recorder running on the same system. that is, the loss is system wide. The socket kernel buffer are all 4MB max and did not observe system buffer overflow. It seems the number of sockets listening to the same multicast group have the most negative impact on packet loss. And the higher traffic have a far less impact on packet loss than the number of sockets. It also seems that there is some limit in the kernel that when socket number are reduced under, the packet loss can significantly ease. How can I further diagnose the problem? Our system is RHEL 5.3 32bit i386, Xeon 2.9GHZ 16 Processors, 32GB memory. Two broadcom giga netowrk card and 6 Intel GIGA NIC, and only one interface card has so much traffic.
I am trying to run some benchmark tests for multicast. What I want to do is have one system send multicast packets and another receive it on all it's interfaces (eth0-eth3). Whenever I run receiver on more than one interface I get echo effect (if I receive on x interfaces then I get same packet x number of times). Is this how it is supposed to behave? It does not make any difference whether I use loop-back or not. I have set SO_REUSEADDR to yes. I run separate instance of receiver on each interface. I am doing this on RHEL5 systems.
How can I find out list of multicast addresses and port in use?"netstat -ng" only gives list of multicast addresses that have been joined, it does not give port number.I have several hundred servers running application that listens to several multicast addresses on different ports. I want to write an audit script and get the list of multicast address and port numbers.
I've just set up an LTSP server, with all its clients on a separate subnet to my main network - the main network is 192.168.1.x, and the LTSP clients are all 192.168.2.x. My LTSP server has 2 NICs, one on each network, and is merrily forwarding normal IP traffic from the clients to the rest of the network. I have a client/server application that has a server on one machine, and clients locate and attach to it using multicast protocols. The server is on the main network, and any other machines on the network can locate and talk to the server quite happily. The LTSP clients, however, cannot - I assume because the multicast communications aren't being forwarded by the LTSP server. How I can get this working?
When I have my IPTV inserted in the computer I am either having problems connecting to the internet or recieve the multicast streams from the iptv. I do get a valid ip on both the WAN and IPTV, but I am having problems getting them both to work at the same time.
I am having a problem with slow data transfers with both Samba and scp. I have gigabit NIC's on both all three machines that I am transferring to and from, connected to a gigabit switch. My data transfers under both smb and scp average around 21 MBit/s, (I am using nload to monitor transfer speeds).The machines are configured as follows,1) desktop
AMD Athlon 64 X2 6000+ 6 gig Corsair memory Realtek RTL8168C(P) gigabit NIC (on board)
Ive seen this a hundred times while searching google but I can't seem to get any of the fixes suggested to work for me.
Here are the specs code...
I have other servers on the same network with the same software/hardware that never loses its mount to the windows share, and nightly backups are run through those mounts. So why does the mount on this machine fail when we do a push? The only conclusion that I can come to is there is some sort of time out on the windows server that causes this. The other servers that have this same type mount use their share every night, where as the share on this server gets used once or twice a week. Once the mount hangs I can not unmount it, I have to reboot the server. Once the server is rebooted the push works fine. But then the next week when a push is tried it hangs. What else can I check?
UPDATE: I've also tried NFS mounts and autofs mounts and they hang as well
I enabled logging by echo 1 > cifsFYI and this is what I see in var/log/message code...
Ive removed the actual file names for security concerns. Any one have ideas as to why this is happening? The only other thing I can think of to try is to swap out the NIC but it's at a remote location so I can't do that right now.
I have it config'd to send and receive on multiple accounts and they all receive email, but SMTP times out and even sends no matter what account I try to send with. I thought maybe security and dropped the firewall and still won't send. No matter which account I try to send to it says its timing out trying access I have no problems on my Mac so no network problems. For grins I install Thunderbird and setup one account and same thing received but no send. What could it be blocking outgoing email??? I have CentOS 5 with all available updates.
My server already installed and works well, but I can't send or receive mail with Squirrelmail, the error that appears is: Server replied: 67 Can not execute command '/ usr / sbin / sendmail-t-i-fteste@gabinetedeengenharia.com '.
I'm wondering why we can't received email when our primary DNS went down. We have slave DNS but don't know why we can't receive emails. Internet is working properly. The mail file in /etc/configuration on slave dns are there & the zone file is added. I edited the mail zone file to see if it works & restarted the named service. But still we can't received emails using the slave DNS. Do I need to reboot the server?
Under high UDP traffic condition, we find we cannot receive UDP packet (can be captured by tcpdump) from socket neither use bare "recvfrom" nor "select recvfrom " pair. Is there any similar problem reported from user?
Any tunning or socket establish option can help?
Or is there any improvement available from the latest version?
our using linux version is CentOS 5.5
ethernet driver version is Intel (R) Gigbait Ethernet Network Driver version - 1.3.16-k2