제가 생각하는 NAT는 그저 아래와 같았습니다.
사설 IP 대역 PC(192.168 대역)에서 특정 서버에 Request시, 내 내부망 IP를 실제 인터넷 공인 IP로 전환해주는 역할이 NAT인 것으로 알고 있었으며, NAT가 뭔지 상세하게 작성해봅니다.
우선 NAT의 정의는 이렇습니다.
NAT(Network Address Translation)는 영어 풀이 그대로, 네트워크 주소를 변경해주는 기술입니다.
아, 그러면 내 PC에서 서버로 요청을 할 때 내 IP주소가 공인 IP로 변환되는데, 상대 서버에서 주는 응답은 어떻게 돌아오는 걸까요?
최초 공인 IP로 전환 시, NAT translation table이라는 곳에 도착지 서버IP와 PC의 사설IP가 등록됩니다. 응답이 올 경우 table에서 도착지 서버에 매칭되는 PC의 사설IP로 응답이 전송됩니다.
그리고 이처럼 전송지 IP(Source IP) 가 NAT기술로 인해 IP가 변경되어서 Server에 접근되는 것이 SNAT입니다.
그럼 DNAT는 무엇일까요?
도착지 IP를 변경하는 기술로, 포트포워딩이나 로드밸런서 같은 기술로 이해하시면 됩니다.
보통은 외부에 있는 공인 IP를 통해 들어온 패킷의 IP주소를 내부 IP로 변경하여 전송하는 데에 사용합니다.