(Mac OS PF) 나가는 UDP 트래픽을 특정 IP:포트로 리디렉션합니다.

(Mac OS PF) 나가는 UDP 트래픽을 특정 IP:포트로 리디렉션합니다.

Mac OS에서 PF가 어떻게 작동하는지 이해하는 데 어려움을 겪고 있습니다. 나는 이 주제에 대해 많은 연구를 해왔지만 해결책을 찾을 수 없습니다. (물론 대답 없이도 매우 유사한 질문을 많이 찾을 수 있지만)

내 목표는 멀티캐스트 주소(225.0.0.37)로 전송되는 UDP 포트(21928)를 사용하는 나가는 패킷을 내 인터페이스를 떠나기 전에 동일한 멀티캐스트 주소의 다른 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

내가 여기서 뭘 잘못하고 있는지 잘 모르겠습니다. 어떤 도움이라도 대단히 감사하겠습니다.

관련 정보