NAT(Network Address Translation)란?
IP 주소를 다른 IP 주소로 변환해 라우팅을 원활하게 해주는 기술
IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다.
- 하나의 네트워크 주소에 다른 하나의 네트워크 주소로 변환하는
1:1 변환
- 하나의 네트워크 주소에 여러 개의 네트워크 주소로 변환하는
1:N 변환
- 사설 IP 에서 공인 IP 로 전환하는 것
- IPv4 를 IPv6로 변환
필요성
1) IPv4 주소 고갈 문제
- 사용할 수 있는 공인 IP 주소는 한정되어 있기 때문에, 하나의 공인아이피로 여러 사설 주소와 변환 가능하게 하므로 아이피를 절약할 수 있다.
2) 보안 강화 : 외부와 통신 할 때 내부 IP 를 다른 IP 로 변환해 통신하면 외부에 내부 IP 주소를 숨길 수 있음.
3) IP 주소 체계가 같은 두 개의 네트워크 간의 통신을 가능하게 함
Double NAT
: IP 대역이 같은 네트워크와 통신할 가능성이 높은 대외계 네트워크를 연결하기 위해 출발지와 도착지를 한꺼번에 변환하는 기술
4) 불필요한 설정을 줄일 수 있음
종류
Network 를 구분하는 경우
1. Static NAT (1:1)
- 사설 IP와 공인 IP를 1대1 매핑
- 서로 호환되지 않는 주소 체계를 가지고 있는 두개의 IP 네트워크가 서로 통신해야할 때 사용
2. Dynarmic NAT (N:1 or N:M)
- IP 패킷이 네트워크
- 사용 가능한 공인 IP 주소들의 Pool을 만들어서 사설 IP와 공인 IP 의 정보를 동적으로 매핑한다.
Network/Server 를 구분하는 경우
1. SNAT ( Source NAT )
- 내부에서 외부로 나갈 때 사용하는 것으로 패킷으 Source 주소를, 가지고 있는 공인 IP 변경하는 것이다.
- IP 머스커레이드라고도 한다.
- 간단한 예시로는 AWS 의 NAT Gateway 라고 생각하면된다. private ip에서 나가지만, NAT Gateway 의 공인 아이피로 Source 가 변경 된다.
- 사설에서 공인아이피로 갈 때 많이 사용한다.
- 또한 보안상의 이유로 NAT를 사용할 수 있는데, 출발지를 감출 수 있어 내부 구조에 대한 정보와 실제 IP 주소를 숨길 수 있다.
2. DNAT ( Destination NAT )
- 외부에서 내부로 들어오는 것으로 말 그대로 Destination, 목적지의 주소를 변경하는 것이다.
- Loadbalancer 같은 경우, 모든 트래픽은 lb를 향하지만 lb에서 목적지를 변환해 실제 대상으로 서비스를 라우팅해준다. 이런 경우를 DNAT이라고 부른다.
PAT ( Port Address Translation )
- 하나의 공인 IP 주소에 사설 IP 주소를 여러개 매핑하는 것, 포트번호로 구분