NAT란 무엇인가?
NAT란 Network Address Translation의 약자로
하나의 공인 ip를 여러 개의 사설 ip로 변환하는 시스템이다.
아니 그럼 도대체 멀쩡한 공인IP를 두고 왜 NAT를 쓰는 거지??
바로 우리가 쓰는 공인 IP가 부족하기 때문이다!!
그럼 왜 부족한데?
현재 우리는 ***.***.***.***형태의 IPv4형태의 주소를 사용하고 있는데
이는 8개의 연속적인 비트 집합을 의미하는 옥텟이 4개가 모여 이루어져 있는 구조이다.
즉, 2^32=4,294,967,296 개로 약 43억 개의 공인 ip주소가 있다고 생각하면 된다.
어? 43억 개 정도면 충분하지 않을까 싶었지만 놀랍게도 부족하다고 한다!
당장 전 세계의 노트북, 컴퓨터, 서버, 스마트폰, 태블릿 등 인터넷이 가능한 전자기기만 생각해 봐도 43억대가
훌쩍 넘을 것 같다. 실제로 작년 전 세계 스마트폰 판매량이 15억대니까... 이해가 간다.
다시 본론으로 들어와서 그럼 NAT의 장점을 정리해보자면
NAT장점
1. IP주소의 절약
2. 보안
NAT의 통신 원리로 인해 사설망은 특별한 설정(*Gateway*)을 해주지 않으면 외부망에서 접근이 불가능한 구조이다.
좀 더 자세히 설명해보자면 아래 그림을 예로 들어보자
위의 그림을 보면 사설망에서 외부망으로 패킷을 보낼 때 SRC_IP의 주소가 채워져 있다.
다시 외부망에서 사설망으로 패킷을 보낼 때 Gateway를 지나면 어떠한 DST_IP를 얻어 사설 망중
어디로 보내야 할지 알 수가 없다. 즉 외부에서 사설망에 접근이 불가해 보안적으로 유리하다
단점으로는 사설망 내의 여러 대의 PC가 동시에 외부망 주소로 접속을 요청하면
주소가 여러 개로 중복되어 처리할 수가 없다.
이를 해결하기 위해 만들어진 것이 NAPT이다.
NAPT란 Network Address Port Translation의 약자로 단순 사설-공인 IP를 변환해주는 역할에서
포트까지 바꿔서 보내는 역할을 한다.
위의 그림을 보면 NAPT의 테이블에 NAT테이블과 달리 Port에 해당하는 칼럼이 추가된 것을 볼 수 있다.
이렇게 변경하면 게이트웨이(라우터)는 포트번호만 보고도 사설 망내 어느 pc로 보내야 할지 구분할 수 있게 된다.
그럼 SRC 포트번호까지 똑같으면? 임의의 Private port번호로 주면 되어서 아무런 문제가 없다.
댓글