다른 호스트를 대상으로 하는 UPD 패키지를 localhost로 리디렉션하는 방법

다른 호스트를 대상으로 하는 UPD 패키지를 localhost로 리디렉션하는 방법

물리적 TAP 장치를 사용하여 머신 A -> B에서 흐르는 포트 4500을 대상으로 하는 UDP 패키지를 스니핑하고 로컬 포트의 머신 C에서 스니핑된 패키지를 수신하고 싶습니다(이미지 참조). 여기에 이미지 설명을 입력하세요

TAP 장치 정보: 이는 A와 B 사이에 배치되는 물리적 장치입니다. A와 B 사이의 트래픽은 전혀 수정되지 않지만 패키지는 시스템 C의 TAP 출력 인터페이스로도 전송됩니다(C에서 수신된 패키지는 TAP가 수정을 수행하지 않기 때문에 여전히 B로 주소 지정됨)

내 목표와 같은 클라이언트 프로그램에서 머신 C의 포트 4500을 대상으로 하는 모든 데이터를 수신하는 것입니다 netcat.

문제분명히 C의 NIC에서 수신된 패키지는 C를 대상으로 하지 않으므로 패키지는 OSi 모델의 애플리케이션 계층에 가까운 위치에 도달하기 전에 삭제됩니다.

이미 시도한 것은 nftables패키지를 리디렉션하는 데 사용하는 것이었지만 내 netcat은 여전히 ​​메시지를 받지 못합니다. 누군가 내가 뭘 잘못하고 있는지 도와주거나 이 문제를 해결하는 가장 좋은 방법을 제안할 수 있나요?

nft 'add chain nat udpredirect { type nat hook prerouting priority -101 ; policy accept ; }'
nft 'add rule ip nat PREROUTING udp dport 4500 redirect'

답변1

대답은 여기에 있습니다:https://serverfault.com/a/1125704/570881

커널이 패키지를 삭제하기 전에 이미 패키지를 수정하려면 netdev 제품군을 사용해야 합니다.

관련 정보