Linux – UDP packets seen on interface level but not delivered to application on RedHat

linuxlinux-networkingudp

I have a problem with receiving UDP traffic on a RHEL6 server. When capturing the traffic with tcpdump, the packets are visible (checksums are correct, the destination IP and MAC match the machine's ones). However the application listening on the particular port fails to see any data, even though the socket is successfully open and shows up in netstat -panu output. I tried a simple perl UDP server script (http://www.perlmonks.org/?node_id=659588) instead of the actual application, but the result is the same (socket open, no data received).

No firewall rules are configured. Here's the iptables --list output:

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  

Also netstat -s -u doesn't show any UDP packets received by the system:

Udp:
    0 packets received
    0 packets to unknown port received.
    0 packet receive errors
    0 packets sent

This is some secure customer environment and I can't log in to another machine in the network to try sending test UDP packets manually.

Could anyone point me in a direction to troubleshoot it further?

Best Answer

Check if this helps. Linux Kernel not passing through multicast UDP packets Basically if net.ipv4.all.rp_filter = 1, then kernel performs Strict Reverse Path validation. More documentation can be found at https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt