iptables 중복 포트 트래픽

iptables 중복 포트 트래픽

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

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

답변1

귀하의 iptables는 충분히 새로운 것 같고 mangle테이블이 있습니다. (주의, 저는 이것을 테스트하지 않았습니다! VM이나 이와 유사한 것을 시도해 보십시오. 실수를 하는 것은 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

관련 정보