![iptables가 들어오는 IP를 다른 대상 IP 문제로 라우팅하는 문제](https://linux55.com/image/55915/iptables%EA%B0%80%20%EB%93%A4%EC%96%B4%EC%98%A4%EB%8A%94%20IP%EB%A5%BC%20%EB%8B%A4%EB%A5%B8%20%EB%8C%80%EC%83%81%20IP%20%EB%AC%B8%EC%A0%9C%EB%A1%9C%20%EB%9D%BC%EC%9A%B0%ED%8C%85%ED%95%98%EB%8A%94%20%EB%AC%B8%EC%A0%9C.png)
테스트 설정이 있습니다.
- 서버 1: 1.1.1.1
- 서버 2: 2.2.2.2
- 클라이언트: 3.3.3.3
1.1.1.1 서버에서 HTTP 요청을 만들기 위해 클라이언트 IP 3.3.3.3을 얻으려고 합니다. 하지만 저는 1.1.1.1 서버가 이 요청을 실제 HTTPD 서버 2.2.2.2에 전달하기를 원합니다.
나는 2.2.2.2가 HTTP 응답을 사용하여 클라이언트 3.3.3.3과 직접 통신하기를 원합니다.
내 생각에는 HTTP 요청을 수락한 다음 요청을 2.2.2.2로 전달하고 2.2.2.2가 응답하도록 한 다음 다시 3.3.3.3으로 전달하고 이 문제를 해결하려면 1.1.1.1이 필요하다고 생각합니다. 그렇지 않으면 클라이언트 3.3.3.3이 2.2.2.2에서 응답을 받게 되지만 왜 1.1.1.1 대신 2.2.2.2가 응답하고 무시하는지 궁금하십니까?
iptables
어쨌든, 1.1.1.1에서 시도한 것은 다음과 같습니다 .
iptables -t nat -A POSTROUTING -o venet0:0 -j SNAT --to-source 2.2.2.2
iptables -t nat -A PREROUTING -i venet0:0 -j DNAT --to-destination 2.2.2.2
iptables -t nat -A PREROUTING -d 3.3.3.3 -j DNAT --to-destination 2.2.2.2
iptables -t nat -A POSTROUTING -s 2.2.2.2 -j SNAT --to-source 3.3.3.3
이건 변하지 않은 것 같습니다.
답변1
나는 그것을 알아 냈습니다 :
iptables -t nat -A PREROUTING -d 3.3.3.3 -j DNAT --to-destination 2.2.2.2
iptables -t nat -A POSTROUTING -s 2.2.2.2 -j SNAT --to-source 3.3.3.3