NAT
는 이름 그대로 네트워크 주소를 변환하는 기술입니다.
NAT
는 기본적으로 하나의 네트워크 주소에 다른 하나의 네트워크 주소로 변환하는 1:1 변환이 기본이지만 IP 주소가 고갈되는 문제를 해결하기 위해 1:1 변환이 아닌 여러 개의 IP를 하나의 IP로 변환하기도 합니다.
여러 개의 IP를 하나의 IP로 변환하는 기술도 NAT 기술 중 하나이고 NAT로 통칭하여 불리기도 하지만 실제 공식 용어는 NAPT(Network Address Port Translation)
입니다.
실무에서는 PAT(Port Address Translation)
라는 용어로 더 많이 사용됩니다.
NAT
가 가장 많이 사용되는 경우는 사설 IP 주소에서 공인 IP 주소로 전환하는 경우입니다.
인터넷에 접속하려면 IP 주소가 있어야 하고 이 IP는 전 세계에서 유일해야 하는 식별자입니다.
이런 IP 주소를 공인 IP
라고 하며, 인터넷에 연결하지 않고 개인적으로 네트워크를 구성한다면 공인 IP
를 할당받지 않고 네트워크를 구축할 수 있습니다.
이때 사용하는 IP 주소를 사설 IP
주소라고 합니다.
IPv4 주소 고갈 문제의 솔루션으로 NAT
가 사용됩니다.
-> 외부에 공개해야 하는 서비스에 대해서는 공인 IP를 사용하고 외부에 공개할 필요가 없는 일반 사용자의 PC나 기타 종단 장비에 대해서는 사설 IP를 사용해 꼭 필요한 곳에만 효율적으로 IP를 사용할 수 있게 되었습니다.
보안을 강화하는 데 NAT 기술을 사용합니다.
-> 외부와 통신할 때 내부 IP를 다른 IP로 변환해 통신하면 외부에 사내 IP 주소 체계를 숨길 수 있습니다.
IP 주소 체계가 같은 두 개의 네트워크 간 통신을 가능하게 해줍니다.
불필요한 설정 변경을 줄일 수 있습니다.
NAT를 이용해 네트워크 주소를 변환할 때 어떤 IP 주소를 변환하는지에 따라 두 가지로 구분합니다.
출발지 주소
를 변경하는 NAT도착지 주소
를 변경하는 NATSNAT
는 사설에서 공인으로 통신할 때 많이 사용합니다.
공인 IP 주소의 목적지에서 출발지로 다시 응답을 받으려면 출발지 IP 주소 경로가 필요한데 공인 대역에서는 사설 대역으로의 경로를 알 수 없으므로 공인 IP의 목적지로 서비스를 요청할 때 출발지에서는 사설 IP를 별도의 공인 IP로 NAT하여 서비스를 요청해야 합니다.
다른 경우는 보안상 SNAT
를 사용할 때입니다.
회사에서 다른 대외사와 통신 시 내부 IP 주소가 아니라 별도의 다른 IP로 전환해 전송함으로써 대외에 내부의 실제 IP 주소를 숨길 수 있습니다.
DNAT
는 로드 밸런서에서 많이 사용합니다.
사용자는 서비스 요청을 위해 로드 밸런서에 설정된 서비스 VIP(Virtual IP)로 서비스를 요청하고 로드 밸런서에서는 서비스 VIP를 로드 밸런싱될 서버의 실제 IP로 DNAT
해 내보냅니다.
사내가 아닌 대외망과의 네트워크 구성에도 DNAT
를 사용합니다.
사내 IP 주소는 중앙에서 일괄적으로 관리되므로 IP가 중복되는 경우가 없지만 사내가 아닌 대외망과의 연동에서는 IP가 중복될 수 있습니다. 이 경우, 대외망에 NAT 장비를 이용해 대외사의 IP를 특정 IP 대역으로 NAT합니다.
출발지와 목적지의 IP를 미리 매핑해 고정해높은 NAT를 정적 NAT
라고 합니다.
반대로 출발지나 목적지 어느 경우든 사전에 정해지지 않고 NAT를 수행할 때 IP를 동적으로 변경하는 것을 동적 NAT
라고 합니다.
동적 NAT
는 출발지와 목적지가 모두 정의된 것이 아니라 다수의 IP 풀에서 정해지므로 최소한 출발지나 목적지 중 한 곳이 다수의 IP로 구성된 IP 풀이나 레인지(Range)로 설정되어 있습니다.
NAT가 필요할 때 IP 풀에서 어떤 IP로 매핑될 것인지 판단해 NAT를 수행하는 시점에 NAT 테이블을 만들어 관리합니다.
정적 NAT
는 출발지와 목적지 매핑 관계가 특정 IP로 사전에 정의된 것이므로 1:1 NAT라고 부릅니다.
동적 NAT | 정적 NAT | |
---|---|---|
NAT 설정 | 1:N, N:1, N:M | 1:1 |
NAT 테이블 | NAT 수행 시 생성 | 사전 생성 |
NAT 테이블 타임아웃 | 동작 | 없음 |
NAT 수행 정보 | 실시간으로만 확인하거나 별도 변경 로그 저장 필요 | 별도 필요 없음 (설정 = NAT 내역) |
이상으로 NAT에 대해서 간단히 알아봤습니다.