(Mac OS PF) Redirigir el tráfico UDP saliente a una dirección IP específica: puerto

(Mac OS PF) Redirigir el tráfico UDP saliente a una dirección IP específica: puerto

Tengo problemas para entender cómo funciona PF en Mac OS. He estado investigando mucho sobre el tema pero no puedo encontrar la solución (aunque puedo encontrar muchas otras preguntas muy similares sin respuesta).

Mi objetivo es redirigir un paquete saliente que utiliza el puerto UDP (21928) que se envía a una dirección de multidifusión (225.0.0.37) a un puerto UDP diferente (6010) de la misma dirección de multidifusión antes de que abandone mi interfaz.

Si esto no es posible, redirigir el puerto (21928) a la dirección 192.168.0.20:6010 sería la mejor opción; sin embargo, es preferible la dirección de multidifusión original.

Hasta donde puedo decir, no puedes usar reglas PF en paquetes salientes; sin embargo, puedes redirigir esos paquetes a la dirección de bucle invertido y luego ejecutar las reglas de esta manera.

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

Estas son las reglas actuales con las que estoy jugando, y en Wireshark puedo ver que cuando PF está activo, el paquete ingresa a la interfaz de bucle invertido, sin embargo, aparte de esto, no sucede nada (cuando desactivo PF, el paquete sale como se pretendía originalmente en 225.0 .0.37:21928 indica que PF está haciendo algo cuando al menos está habilitado).

Además he habilitado este comando:

sysctl net.inet.ip.forwarding=1

No estoy seguro de qué estoy haciendo mal aquí. Cualquier ayuda sería muy apreciada.

información relacionada