Private IP
CIDR을 도입하여 IP 주소의 낭비를 줄여도 32 bit 공간의 한계를 극복할 수는 없었기 때문에, 사설 네트워크를 위한 IP 대역을 따로 규정하여 사용한다.
- Class A : 10.0.0.0/8
- Class B : 172.16.0.0/12
- Class C : 192.168.0.0/16
이렇게 사설 IP를 사용하면, 내부 네트워크 내에서는 사설 IP를 통해 통신이 가능하다. 하지만 사설 IP로는 외부 네트워크와 통신할 수 없기 때문에 이를 공인 IP로 변환하는 작업이 필요하다.
사설 IP를 Class C부터 A까지 따라올라가도 결국 사설 네트워크이기 때문에 외부와 통신이 불가능하다.
NAT(Network Address Translation)
내부 네트워크에서 나가는 패킷의 출발지에 공인 IP를 부여하고, 외부 네트워크에서 들어오는 패킷의 도착지에 사설 IP를 부여함으로서 적은 공인 IP를 사용하여 통신이 가능하며, 이러한 방법을 NAT라 한다. NAT에는 몇 가지 종류가 있는데, 이는 다음과 같다.
- Static NAT : 사설 IP와 공인 IP의 1:1 Mapping을 유지한다.
- Dynamic NAT : 사용 가능한 공인 IP 중에 하나를 사설 IP에 동적으로 할당한다. 외부에서는 사설 네트워크에 어떤 공인 IP가 할당되어있는 지 알 수 없으므로 접근할 수 없다.
- PAT(Port Address Translation) : 일반적으로 사용되는 방식이며, 여러 사설 IP를 하나의 공인 IP로 변환한다. 이 때, 각 사설 IP들은 Port 번호로 구분된다.
PAT
Port는 전송 계층에서 사용되는 가상의 논리적 통신 연결단으로, 보통 클라이언트가 특정 서버 프로그램을 지정하는 방법으로 사용된다. 길이는 16 bit이다.
인터넷이 호스트들은 외부 요청에 대한 응답 시, 요청 시와 동일한 Port 번호로 응답하기 때문에, 외부에서 사설 네트워크로 들어오는 패킷들도 구별이 가능하다.
라우터에서 목적지로 패킷을 보낼 때 출발지 IP와 Port 번호가 바뀌는 것을 볼 수 있는데, 이는 NAT 변환 테이블에 의해 변환된 것이다. 만약 테이블에 해당 IP와 Port번호에 대한 정보가 없다면 이 과정에서 추가된다.
사설 IP : Port | 공인 IP : Port |
---|---|
192.168.0.1:1000 | 111.222.111.222:4000 |
참고자료, Reference
본 문서는 부산대학교 정보컴퓨터공학부 김종덕 교수님의 컴퓨터 네트워크 강의의 내용을 기반으로 작성됩니다.