서버 B에서 eth0을 수신하는 애플리케이션을 서버 B에서 실행하고 있습니다.
서버 A의 GTP 패킷이 있는데 소스 주소를 변경하고 싶습니다. 패킷의 GTP 계층에는 공용 IP(예: xxxx)가 있습니다. 소스 IP를 xxxx로 변경하고 싶습니다.
애플리케이션은 xxxx 시리즈를 예상하지만 헤더에 10.xxx가 있으므로 패킷을 삭제하고 연결 설정에 실패합니다.
10.xxx(소스)---->xxxx(대상)
포털에 몇 가지 해결책이 있다는 것을 알고 있지만 내 문제는 나가는 인터페이스가 없고 애플리케이션이 변경된 IP(예: eth0의 xxxx)만 수신하고 응답한다는 것입니다. 패킷을 어떻게 볼 수 있나요? 그리고 tcpdump
?
나는 인터넷에서 다음과 같은 예제 규칙을 사용했습니다.
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to x.x.x.x
하지만 그건 내 목적에 부합하지 않습니다.
기본적으로 패킷은 gtp이며 지정된 인터페이스에서 나옵니다. 패킷은 gtp 계층의 공용 IP로 구성됩니다. 애플리케이션은 연결 요청 시 패킷 내에 존재하는 공용 IP를 찾기 때문에 지정된 소스 IP를 삭제합니다. 공용 IP를 src IP(연결 가능)로 할당할 수 있으면 연결이 설정되고 나가는 트래픽도 수정된 src IP를 응답으로 통과할 수 있으며 결국 연결이 설정됩니다.
패킷이 eth0에 도착하면 내 src IP를 GTP 계층에 존재하는 공용 IP로 변경하는 iptable 규칙을 가질 수 있습니까?