(Mac OS PF) Redireciona o tráfego UDP de saída para ip:port específico

(Mac OS PF) Redireciona o tráfego UDP de saída para ip:port específico

Estou tendo problemas para entender como o PF funciona no Mac OS. Tenho feito muitas pesquisas sobre o assunto, mas simplesmente não consigo encontrar a solução (embora possa encontrar muitas outras perguntas muito semelhantes sem resposta).

Meu objetivo é redirecionar um pacote de saída que usa a porta UDP (21928) sendo enviado para um endereço multicast (225.0.0.37) para uma porta UDP diferente (6010) do mesmo endereço multicast antes de sair da minha interface.

Se isso não for possível, redirecionar a porta (21928) para o endereço 192.168.0.20:6010 seria a próxima melhor opção, porém o endereço multicast original é preferível.

Até onde eu sei, você não pode usar regras de PF em pacotes de saída; no entanto, você pode redirecionar esses pacotes para o endereço de loopback e então executar as regras dessa maneira.

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 são as regras atuais com as quais estou jogando, e no wireshark posso ver que quando o PF está ativo, o pacote entra na interface de loopback, porém fora isso nada acontece (quando eu desabilito o PF, o pacote sai como originalmente planejado em 225.0 .0.37:21928 indicando que o PF está fazendo algo quando habilitado pelo menos).

Além disso, habilitei este comando:

sysctl net.inet.ip.forwarding=1

Não tenho certeza do que estou fazendo de errado aqui. qualquer ajuda seria muito bem vinda.

informação relacionada