(Mac OS PF) 送信UDPトラフィックを特定のIP:ポートにリダイレクトする

(Mac OS PF) 送信UDPトラフィックを特定のIP:ポートにリダイレクトする

Mac OS で PF がどのように動作するのか理解できずに困っています。このトピックについて多くの調査を行ってきましたが、解決策が見つかりません (ただし、回答のない非常に類似した質問は多数見つかります)。

私の目標は、UDP ポート (21928) を使用してマルチキャスト アドレス (225.0.0.37) に送信される送信パケットを、インターフェイスから送信される前に、同じマルチキャスト アドレスの別の UDP ポート (6010) にリダイレクトすることです。

これが不可能な場合は、ポート (21928) をアドレス 192.168.0.20:6010 にリダイレクトするのが次善策ですが、元のマルチキャスト アドレスが望ましいです。

私の知る限り、発信パケットに PF ルールを使用することはできませんが、それらのパケットをループバック アドレスにリダイレクトしてから、この方法でルールを実行することはできます。

rdr pass inet proto udp from any to 225.0.0.37 port 21928 -> 225.0.0.37 port 6010
pass out on en4 route-to lo0 proto udp from en4 to 225.0.0.37 port 21928 keep state

これらは私が現在使用しているルールであり、Wireshark では、PF がアクティブな場合、パケットがループバック インターフェイスに入ることがわかりますが、それ以外は何も起こりません (PF を無効にすると、パケットは当初の目的どおりに 225.0.0.37:21928 から送信され、PF が少なくとも有効な場合は何かを実行していることを示します)。

さらに、次のコマンドを有効にしました:

sysctl net.inet.ip.forwarding=1

何が間違っているのかよく分かりません。どなたか助けていただければ幸いです。

関連情報