[Network] 공인IP와 사설IP 변환 (NAT, NAPT)
- 공인IP(Public IP): 인터넷 통신을 위해 반드시 필요한 주소.
- 사설IP(Private IP): 사내 네트워크 등에서 쓰이는 주소. (다른 네트워크 내 사설 주소는 겹쳐도 통신에 문제가 되지 않음)
사설IP 범위 : 10.*.*.* / 172.16.*.* ~ 172.31.*.* / 192.168.*.*
사설 <-> 인터넷 통신을 위해서는 사설IP<->공인IP 변환 NAT(Network Address Translation) 이 필요하다.
(NAT을 사용하지 않은 인터넷-> 사설로의 IP패킷은 폐기)
- NAT의 종류
: Basic NAT, NAPT 두 개를 총칭하여 Traditional NAT(RFC 3022)라고 한다.
1) Basic NAT
사설IP 갯수 만큼 공인IP를 가지고 인터넷 연결을 한다. (1:1 translation)
주로 기업망에서 보안 목적으로 사용한다.
2) NAPT(Network Address Port Translation)
: 복수의 사설IP와 Port를 같이 묶어 하나의 공인IP에 매핑한다. (N:1 translation)
모든 유무선 공유기에서 지원하는 방식으로 일반적으로 NAT라 하면 NAPT를 말한다.
- NAT (Network Address Translation) 변환 순서
1) 사설 네트워크->인터넷으로 요청 전송시, 출발지 IP를 공인 IP로 변환
2) Address Binding: 라우터의 NAT 테이블에 변환주소 내용을 보존
3) Address Lookup and Translation: 응답을 받을 때, 라우터에서 목적지 IP를 사설 IP로 변환
4) Address Unbinding: 일정시간동안 라우터 NAT 테이블의 해당엔트리에 패킷이 흐르지 않으면 세션 엔트리를 삭제
- NAT의 목적
모든 호스트가 유일한 IP를 가지게 되면, IP주소(IPv4)가 고갈되는 문제가 발생한다.
NAT(=NAPT) 를 통해 한정된 갯수의 IPv4를 절약할 수 있다.
또한 통신시 외부에서 내부의 IP가 유출되지 않아 보안성을 향상시킬 수 있다.
[참고도서] book.naver.com/bookdb/book_detail.nhn?bid=16261339
[참고] itsandtravels.blogspot.com/2019/05/ip-ip-nat-napt.html