UDP packets seen on interface level but not delivered to application on RedHat
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?
Solution 1:
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