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パケットを手動で送信することはできません。
誰かが私をさらにトラブルシューティングする方向に向けることができますか?
これが役立つかどうかを確認します。 マルチキャストUDPパケットを通過しないLinuxカーネル 基本的に、net.ipv4.all.rp_filter = 1の場合、カーネルは厳密なリバースパス検証を実行します。その他のドキュメントは https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt にあります。