숙제 면책 조항...
그래서 IP 주소가 192.168.0.81
. 인 컴퓨터 A가 있습니다. 컴퓨터에는 웹 서버가 설치되어 있으며 포트 80을 노출합니다. 따라서 192.168.0.81
로컬 네트워크에 있는 다른 컴퓨터의 웹 브라우저 주소 표시줄에 입력하면 이 페이지가 표시됩니다.
하지만 이 로컬 네트워크에는 또 다른 컴퓨터가 있습니다. 192.168.0.129
내 임무는 이 두 컴퓨터를 구성하는 것입니다 192.168.0.129
. 192.168.0.81
전송된 모든 패킷은 192.168.0.81
통과해야 하며 192.168.0.129
포트 192.168.0.129
80에서 수신되어야 합니다. 로 전달되는 모든 트래픽은 192.168.0.81
.
시도해 볼 수 있는 솔루션. 서버에서 이 작업을 수행하고 다음을 통해 응답을 보내도록 하세요 192.168.0.129
.
route add default gw 192.168.0.129
게이트웨이에서 이 작업을 수행하여 서버에서 외부 세계로 트래픽을 전달할 수 있기를 바랍니다.
echo 1 > /proc/sys/net/ipv4/ip_forward
게이트웨이에서 이 작업을 수행하고 수신된 트래픽을 서버로 전달하길 바랍니다.
iptables -t nat -A PREROUTING -p tcp -d 192.168.0.129 --dport 80 -j DNAT --to 192.168.0.81:80
그러나 이것은 작동하지 않습니다. 192.168.0.129
네트워크에 있는 다른 컴퓨터의 웹 브라우저 주소 표시줄에 ( )를 입력하면 192.168.0.185
이 페이지 대신 브라우저 오류가 표시됩니다. 내가 뭘 잘못했나요?
무슨 일이 일어나고 있는지 알아보기 위해 두 컴퓨터 모두에서 발행하여 모든 패킷을 기록해 보았습니다.
iptables -A INPUT -j LOG
iptables -A OUTPUT -j LOG
결과는 다음과 같습니다. 서버는 원래 요청자로부터 패킷을 수신하고 일부 패킷을 다시 보내려고 시도하는 것 같습니다. 다음과 같은 항목이 표시됩니다.
Dec 19 23:23:25 debian kernel: (...) IN= OUT=eth0 MAC=(...) SRC=192.168.0.185 DST=192.168.0.81 LEN=60 TOS=0x00 PREC=(blah blah this and subsequent stuff omitted for brevity)
Dec 19 23:23:25 debian kernel: (...) IN= OUT=eth0 SRC=192.168.0.81 DST=192.168.0.185 LEN=60 TOS=0x00 PREC=(...)
그러나 게이트웨이 로그에는 관련 트래픽이 표시되지 않는 것 같습니다.
이 문제를 어떻게 해결하나요?