네트워크 주소 변환 NAT(Network Address Translation)란?

NAT는 Network Address Translation의 약자로 한글로 번역하게 되면 "네트워크 주소 변환"입니다.

사설 IP주소를 공인 IP로 변환시켜 사용하는 방식. 보유하고 있는 IP주소가 부족할 경우, 사설 IP 주소를 사용하여 IP주소를 확장하기 위한 방법으로 활용할 수 있으며 내부 네트워크 주소를 드러내지 않아 보안성에 유리합니다.

 

NAT의 개념

NAT 개념을 조금 설명하자면

IP 패킷의 TCP, UDP 포트 번호와 src dst의 IP주소 등을 기록하며 라우팅을 통해 네트워크 트래픽을 주고 받는 기술이며 패킷의 변화가 생기기 때문에 체크섬도 다시 계산되어 기록되며 이로 인해 네트워크 성능에 영향을 줄 수 밖에 없습니다. 성능적인 마이너스가 있지만 사용하는 이유는 여러 PC가 하나의 공인 IP를 사용해서 인터넷을 쓰기 위해 사용하는 경우가 대부분입니다.

 

SNAT(Source NAT) - 출발지 주소를 변경

PC가 사설IP1 로 외부서버와 통신을 하고자할 때(내부 -> 외부) 방화벽의 사설IP 3과 공인IP 1을 통해 외부 서버에 접속하겠다는 패킷을 보냅니다

그러면 외부서버는 응답 패킷을 사설IP1이 아닌 공인IP1로 알고 있어 공인으로 보내줍니다 그러면 방화벽은 해당 패킷을 사설 IP1로 전송해주게 됩니다. 인터넷으로 나가는 패킷의 Source IP를 G/W의 Public IP로 바꿈.

 

DNAT(Destination NAT) - 도착지 주소를 변경

외부에서 사설IP2를 이용하는 리눅스 웹서버에 접속하고자 할때(외부 -> 내부) 우선적으로 방화벽의 공인IP1에 접속하여 방화벽이 이 패킷을 내부 사설IP2 로 전달해주게 됩니다. 대표적으로 Load Balancer가 있다.

 

 

Static NAT

내부 IP 주소에 대해 외부 IP주소가 1:1로 각각 대응된다.

IP를 효율적으로 쓰고자 하는 목적이라면 이것을 사용하면 안됨. IP 주소 절감 효과는 없다.

 

Dynamic NAT

여러 개의 내부 IP 주소에 대해 여러 개의 외부 IP주소를 동적으로 할당시킨다.

IP 주소를 절감할 수 있으며 보안 측면에서 장점이 있다. 외부 IP주소가 모두 사용 중이라 할당 받을 IP가 없을 경우 외부에서의 연결은 제한된다.

 

Port Address Translation : PAT

하나의 외부 IP주소를 다수의 내부 IP 주소가 port번호로 구분하여 사용한다.

well-known port를 제외하고 랜덤으로 사용한다.

[IT/네트워크(Network)] - 네트워크 주요 포트번호 목록, TCP, UDP / port number

 

Policy NAT

ACL을 이용하여, 출발지와 목적지에 따라 주소를 변환한다.

 

Bypass NAT

NAT에 해당하지 않는 패킷은 그냥 라우팅 한다. 

댓글

Designed by JB FACTORY