NAT란?
NAT(Network Address Translation)란, 사설 IP 주소를 공인 IP 주소로 바꾸는 주소 변환방식이다.
NAT는 Static NAT, Dynamic NAT, PAT로 구분된다.
1. Static NAT : 1:1로 NAT를 하는 방식으로 Port 변환이 일어나지 않고 사설 IP와 공인 IP를 1:1로 매핑한다.
2. Dynamic NAT : N:M으로 NAT를 하는 방식으로 IP Pool을 사용하여 내부 사설 IP 다수가 여러 개의 공인 IP로 매핑된다.
3. PAT : Port 방식으로 공유기나 방화벽에서 일반적으로 사용되며 내부 사실 IP 다수를 공인 IP 하나로 변환된다.
Static NAT
하나의 사설 IP(192.168.10.100)를 하나의 공인 IP(100.100.100.100)로 매핑하여
주소가 변환되어 통신되는 방식을 Static NAT 방식이라고 한다.
Dynamic NAT
다수의 사설 IP 대역(192.168.10.100/24)이 다수의 공인 IP 대역(100.100.100.100~110)으로
동적으로 NAT되는 방식을 Dynamic NAT 방식이라고 한다.
만약, NAT에서 설정된 IP가 존재한다면 해당 IP로 통신이 되고
기존 설정된 사설 IP는 라우터에서 NAT 테이블을 참조하여 내부 호스트에게 패킷을 전달하게 된다.
PAT
하지만, 위와 같은 방식일 때 소수의 공인 IP를 사용하여 다수의 사설 IP에 통신이 가능하게 하기엔 어려움이 존재한다.
그래서 PAT를 구성하여 L4헤더의 Source Port 번호를 같이 매핑하여 트래픽을 구분하게 한다.
이러한 방식을 PAT(Port Address Translation) 방식이라고 한다.
SNAT/DNAT/FNAT
특정 트래픽을 라우터, 방화벽에 태워 보내고 싶을 때 혹은 네트워크 구성에 의해
네트워크 주소를 변환하고 싶을 때 SNAT/DNAT/FNAT와 같은 방식으로 구성하게 된다.
해당 SNAT, DNAT의 기준은 NAT가 수행되기 이전의 트래픽이 출발하는 시작 지점에서 갈리게 된다.
SNAT(Source IP NAT)
출발지 주소를 변경하는 NAT 방식으로 인터넷으로 나가는 Source IP를 Gateway의 공인 IP로 바꾼다.
NAT 장비의 Outgoin Interface, 나가는 방향의 인터페이스 IP를 사용하여 외부 네트워크와 통신이 가능하게 만든다.
내부 사설 IP 대역인 10.10.10.10,20/24 주소는 외부 인터넷으로 나갈 때 52.15.77.39 IP를 Source IP로 장착하고 나간다.
Outgoing Intreface IP가 공인 IP 이기 때문에 NAT 이후엔 내부 사용자들의 사설 IP 또한 자동으로 공인 IP로 변경된다.
번거로운 설정을 할 필요 없이 Source IP NAT를 인터페이스 IP로 지정하면 되기 때문에 가독성이 좋고 편리한 장점이 있다.
DNAT (Destination IP NAT)
Source IP NAT는 통신을 원할하게 하기 위한 목적이 크므로 그에 맞는 IP면 상관이 없지만,
Destination IP NAT는 말 그대로 목적지 IP를 변환하는 만큼 목적지 IP를 변환하는 대상 자체를 명확히 구분해야 한다.
사용자(15.15.15.15)가 웹 서비스에 접속하기 위해 L4 스위치의 VIP(123.113.43.1:80)에 접속하면,
L4 스위치는 해당 요쳥을 실제 서버(192.168.1.11:80, 12:80)에 전달하기 위해 DNAT를 실시하게 된다.
로드 밸런싱 방식(ex) Round Robin 방식 등)에 따라 어느 서버로 갈 수 있을지도 정할 수 있게 된다.
FNAT (Full NAT)
Full NAT는 SNAT, DNAT를 모두 수행하는 NAT 방식으로 사용하는 NAT 장비마다 용어가 상이하다.
1. L4/L7 스위치는 클라이언트의 요청 패킷을 수신하여 해당 패킷을 확인해보면
DIP 주소가 부하 분산 서비스를 요청하는 VIP 주소인 것을 확인할 수 있다.
2. L4/L7 스위치는 클라이언트의 요청을 서버에 전달하기 위해 SMAC을 자신의 MAC으로 변경하고,
NAT를 수행해 Client IP 주소를 Proxy IP 주소로 변환한다. DIP 주소와 DMAC 주소를 서버의 IP와 MAC으로 변환한다.
3. 서버는 클라이언트의 요청을 처리한 후, SIP 주소와 SMAC을 DIP 주소를 서버의 IP와 MAC으로 변환한다.
4. L4/L7 스위치는 서버의 응답을 클라이언트에게 전달하기 위해 DMAC을 라우터의 MAC으로 변경하고,
Reverse NAT를 수행하여 Proxy IP 주소를 Client IP 주소로 변환하고 서버 IP 주소와 MAC 주소를
L4/L7 스위치의 VIP 주소와 VMAC 주소로 변경하여 전송한다.
즉, Full NAT를 통해 클라이언트는 L4/L7 스위치의 VIP로 서비스를 요청하고 L4/L7 스위치가
NAT 자체를 수행하기 때문에 외부에서는 서버의 IP 주소를 알 수 없게 된다.
참고
1) https://m.blog.naver.com/gkdisakdmaqk/221237273895
2) https://aws-hyoh.tistory.com/166
3) https://jesc1249.tistory.com/41
'Study > 네트워크' 카테고리의 다른 글
[네트워크] TCP vs UDP (0) | 2024.04.21 |
---|---|
[네트워크] HTTP를 알아보자 (2) (2) | 2022.10.04 |
[네트워크] HTTP를 알아보자 (1) (0) | 2022.10.03 |