iptables 중복 포트 트래픽

iptables 중복 포트 트래픽

포트 8500에서 들어오는 모든 UDP 트래픽을 포트 8600으로 복제/복사하고 싶습니다. 소스 주소가 수정되지 않는 것이 중요합니다. 또한 두 포트 모두 애플리케이션에서 액세스할 수 있어야 합니다(패킷은 여전히 ​​원래 포트에 도착해야 함).

이 솔루션(nftables: 특정 대상 IP:포트에서 (두 번째) 대상 IP:포트로 UDP 패킷을 복제합니다.)는 최신 시스템에서도 작동하지만, 불행하게도 문제의 시스템은 RHEL 7에서 커널 3.10을 실행하고 있어 업데이트할 수 없습니다.

답변1

귀하의 iptables는 충분히 새로운 것 같고 테이블이 있으므로 다음 mangle과 같습니다(참고: 아직 테스트하지 않았습니다! 가상 머신이나 유사한 환경에서 시도해 보십시오. 실수를 하는 것은 TEE모든 CPU 코어를 차지하는 좋은 방법 입니다. 루핑 패킷 경로)

# copy ("TEE") to dummy local IP address 127.0.0.127
iptables -t mangle -A PREROUTING -i {public interface, not lo} -p UDP --dport 8500 -j TEE --gateway 127.0.0.127
# re-redirect things for 127.0.0.127 to 127.0.0.1
iptables -t nat -A PREROUTING -d 127.0.0.127 -p UDP --dport 8500 -j DNAT --to 127.0.0.1:8600

관련 정보