web-dev-qa-db-ja.com

インターフェイスレベルでUDPパケットが表示されるが、RedHat上のアプリケーションに配信されない

RHEL6サーバーでのUDPトラフィックの受信に問題があります。 tcpdumpでトラフィックをキャプチャすると、パケットが表示されます(チェックサムは正しく、宛先IPとMAC​​はマシンのものと一致します)。ただし、特定のポートをリッスンしているアプリケーションは、ソケットが正常に開いてnetstat -panuの出力に表示されても、データを表示できません。実際のアプリケーションの代わりに単純なPerl UDPサーバースクリプト( http://www.perlmonks.org/?node_id=659588 )を試しましたが、結果は同じです(ソケットが開いており、データが受信されていません) )。

ファイアウォールルールは構成されていません。これが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  

またnetstat -s -uは、システムが受信したUDPパケットを表示しません。

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

これは安全な顧客環境であり、ネットワーク内の別のマシンにログインしてテストUDPパケットを手動で送信することはできません。

誰かが私をさらにトラブルシューティングする方向に向けることができますか?

4
wojciech_k

これが役立つかどうかを確認します。 マルチキャストUDPパケットを通過しないLinuxカーネル 基本的に、net.ipv4.all.rp_filter = 1の場合、カーネルは厳密なリバースパス検証を実行します。その他のドキュメントは https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt にあります。

1
Raghu