NAT
정의
간단하게 말해 하나의 공인 IP를 여러개의 사설 IP로 변경해주는 주소변환 방식이다.
IP는 한정적 자원으로서 2의 32승 정도의 IP를 사용 가능한데 이 마저도 전 세계적으로 네트워크를 구성함에 따라 자원이 모자른 상태가 되었다. 그래서 공인 IP 한 개를 발급 받아 공인 IP - 사설 네트워크의 구조를 구성하여 IP 자원 절약을 위해 NAT라는 기능이 나오게 되었다.
물론 보안적 요소도 있다. 사설 IP -> 공인 IP -> 목적지 로 가는 과정에서 사설 IP를 공인 IP로 변경하기 때문에 목적지 입장에선 정확히 어떤 사설 IP 에서 트래픽이 날라온 지 모르기 때문이다. (물론 사설 IP와 공인 IP를 연결해주는 매개체는 알고있음 -> 보통 라우터인듯함)
또한 NAT를 사용하게 되면 추가 설정 없이는 공인 IP 대역에서 사설 IP 대역으로 접근을 바로 할 수 없다.
NAPT
정의
NAPT는 NAT + 포트 변환이라고 생각하면 편하다.
NAT에서 통신하는 방식에는 한 가지 문제점이 있다.
출발지가 여러 개일 경우 요청한 IP 주소가 중복 되기 때문에 목적지 입장에서 트래픽을 재전송 해주는 과정에서 동일한 출발지에서 여러 트래픽이 발생했기 때문에 정확히 어떤 출발지에서 트래픽이 시작 됐는지 구분할 수 없기 때문에 문제가 발생한다.
그래서 나오게 된 개념이 NAPT이다.
아래 그림을 보면 알겠지만 트래픽이 출발지에서 나갈때, 그리고 목적지에서 다시 출발지로 보내는 과정에서 포트 번호를 관리하게 된다.
물론 정확히 말하자면 NAPT 테이블이 존재해서 해당 테이블을 참조해 트래픽을 전달해주긴한다. (포트 번호를 알고있는 주체는 라우터)
216.32.221.32 로 트래픽을 보낼 때 192.168.0.121:8011 의 출발지 주소를 갖게 되고, NAPT에서는 테이블을 참조해서 트래픽이 어떤 포트로 부터 출발 했는지 확인하고 다시 전달 해주게 된다. 192.168.0.121:8011 <--> 216.32.221.32:1010 으로 트래픽이 매핑 되어 있다고 생각하면 된다.
[참조] :
https://5kyc1ad.tistory.com/254
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=hai0416&logNo=221613656212
'Network' 카테고리의 다른 글
Domain 에러 확인 및 대응 (0) | 2024.05.31 |
---|---|
Nginx에서 Upstream의 의미 (0) | 2024.05.22 |
Web Socket 통신이란? (0) | 2023.09.22 |
localhost 와 127.0.0.1 차이 (0) | 2023.08.01 |
HTTP 상태 코드란? (0) | 2023.01.02 |