NAT OUTPUT 체인과 NAT POSTROUTING 체인의 차이점은 무엇입니까?

NAT OUTPUT 체인과 NAT POSTROUTING 체인의 차이점은 무엇입니까?

NAT 테이블의 OUTPUT 체인에서 Nating이 이루어진다면 POSTR에서 SNAT의 역할은 무엇입니까?

NAT 테이블의 OUTPUT 체인에서 Nating이 수행된다면 POSTROUTING에서 SNAT의 역할은 무엇입니까?

답변1

확인 해봐차트. 녹색 상자는 을 나타내고 iptables파란색 상자는 을 나타냅니다 ebtables(무시).

OUTPUT따라서 로컬 애플리케이션에서 생성된 패킷만 체인을 통과하는 반면 POSTROUTING다른 곳에서 라우팅된 패킷을 포함하여 모든 패킷은 체인을 통과하는 것을 볼 수 있습니다 .

NAT(Network Address Translation)에는 두 가지 하위 사례가 있습니다.에스NAT 변환원천데이터 패킷의 주소,NAT 변환목적지패킷의 주소입니다.

어떤 체인에서 다음 중 하나를 수행할 수 있습니다. DNAT를 수행할 수 nat/PREROUTING있고 nat/OUTPUT동시에 SNAT nat/POSTROUTINGnat/INPUT수행할 수 있습니다(아직 유효한지 확실하지 않음).

답변2

@x-yuri 저도 출력 NAT에 대해 헷갈렸는데 드디어 답을 얻었네요. 경로 전 NAT와 경로 후 NAT는 모두 일부 패킷이 인터페이스에 들어오고 나갈 때 해당 주소를 NAT하려는 외부 NAT에 적합합니다. 그러나 OUTPUT NAT는 로컬 네트워크 NAT에서 작동합니다. 즉, 패킷이 애플리케이션에서 시작될 때를 의미합니다. 나는 이것이 이것을 더 잘 이해하는 좋은 예라고 생각합니다. Nginx에서 수행하는 것과 같이 투명하게 프록시되는 트래픽의 포트 및 IP 주소를 변경하려는 경우. 우리는 다음과 같은 것을 사용할 수 있습니다:

iptables -t nat -A 출력 -p tcp --dport 80 -j DNAT --대상 192.168.100.10:8080

포트 8080에서 수신 대기 중인 네트워크 192.168.100.10의 다른 호스트로 포트 80의 트래픽을 보냅니다.

내 생각에는 그것이 내가 바라는 것이 사실이고 당신이 요구하는 것이 아닐까 싶습니다.

관련 정보