Private Network
IETF(Internet Engineering Task Force)는 RFC1918 문서를 통해 Public Internet 환경에서 라우팅할 수 없는 Private Network 범위를 지정했다.
- 퍼블릭 네트워크는 한정적이고 금액이 든다.
- 조직 내 에서 서로 통신은 필요하지만 인터넷에 연결할 필요가 없는 환경의 호스트 용도로 설계되었다.
- 각 Class 마다 Private Network 가 있다. 10.0.0.0/8 = 10.0.0.0 ~ 10.255.255.255.255 172.16.0.0/12 = 172.16.0.0 ~ 172.31.255.255 192.168.0.0/16 = 192.168.0.0 ~ 192.168.255.255
IPv4 &IPv6 and NAT
IPv4 설계자들은 43억 개의 IPv4 주소면 충분하다 판단했지만, IT 발전에 따라 부족해져 IPv6 를 1990년에 개발했다.
- IPv4 는 2bit 인 반면에 IPv6 는 128bit 를 사용해 무한에 가까운 주소를 제공하지만
- 이미 IPv4 는 전 세계 표준으로 동작중이라, IPv6로 전환을 위해선 많은 비용과 시간이 필요했다.
그래서 NAT 라는 기술이 발명되었다.
최초에는 조직이 IPv6로 마이그레이션할 시간이 생길 때까지 IPv4 주소의 부족을 완하하기 위한 임시 해결책으로 구현했다.
- 조직의 내부 네트워크에 사용되는 Private IP를 Public IP로 변환해 인터넷에 접근이 가능하다.
- 조직의 많은 호스트가 한 개 또는 몇 개의 Public IP를 공유 하는 방식이다.
Today Network
대부분의 기업들은 여전히 RFC 1918 사용을 사용한다.
- NAT 를 사용하는 IPv4 주소
Nat는 기본적으로 내부 네트워크를 숨길 수 있다는 보안 이점을 가지고 있다.
NAT Type
Static NAT
- Private IP 와 Public IP 의 1:1 매핑
- 외부(인터넷)에서 연결이 필요한 내부 서버에 사용
Dynamic NAT
- 선착순 배포 Public IP Pool 사용 (결국 1:1 이다)
- 외부(인터넷) 연결이 필요한 내부 호스트에 사용
PAT (Port Address Translation)
- 내부 호스트가 외부(인터넷) 연결에 동일한 Public IP를 사용
Static NAT
패킷이 NAT 라우터를 통해 나갈 때 NAT Table에 변환된 ip, 즉 출발지 ip 가 입력되게 되고 패킷이 돌아오면 그 table 을 보고 public ip를 pc ip, 즉 출발지 ip로 변환된다.
NAT 테이블에 매핑된 사설 IP 주소와 공인 IP 주소의 쌍이 사전에 설정
Dynamic NAT
패킷이 나갈 땐, Router에서 Src IP가 Router의 Public IP Pool 중 하나의 Public IP로 변환하게 된다.
패킷이 돌아올 땐, Router를 거치는 과정에서 Dest IP가 PC의 Private IP로 변환한다.
PAT
패킷이 나갈 때, Router에서 Src IP가 Router의 Public IP로, Source Port가 Random 하게 변경된다.
패킷이 돌아올 땐, Router에서 Dest IP가 PC의 Private IP로, Dest Port가 원래 Port로 변경된다.
출발지 및 도착지 IP와 랜덤하게 변환된 Source Port가 PAT Table에 기록된다.
NAT Table
Local Address
- 네트워크 내부를 나타나는 모든 주소
Global Addres
- 네트워크 외부를 나타나는 모든 주소
Inside Local Address
- Inside Global Address 로 변경될 내부 IP
- 내부에서 알고 있는 내부 주소
- 내부에서 동작 하는 내부 주소
Inside Global Address
- Inside Local Address 가 변경될 외부 IP
- 외부에서 알고 있는 내부 주소
- 외부에서 변환돼 동작 하는 내부 주소
Outside Local Address
- Outside Global Address 가 변경될 내부 IP
- 내부에서 알고 있는 외부 주소
- 내부에서 동작 하는 외부 주소
Outside Global Address
- Outside Local Address 로 변경될 외부 IP
- 외부에서 알고 있는 외부 주소
- 외부에서 변환돼 동작 하는 외부 주소