NAT(네트워크 주소 변환): 소개
네트워크 주소 변환(NAT)은 개인과 단체가 인터넷에 연결할 때 안전하고 경제적이며 간편한 방식을 제공하는 강력한 기술입니다.
NAT는 보안을 강화할 뿐만 아니라 웹과의 연결에서 유연성, 확장성 및 통신 속도를 향상시키는 데 기여합니다.
또한 NAT를 사용함으로써 공용 IP 주소의 효율적인 관리에도 도움이 됩니다.
하지만 NAT가 정확히 무엇이며, 왜 우리가 그것을 이해하고 활용해야 할까요?
이 글에서는 이러한 질문에 대한 답을 제공하고자 합니다.
먼저 NAT의 정의부터 시작해 보겠습니다.
네트워크 주소 변환(NAT)이란 무엇인가?
네트워크 주소 변환(NAT)은 데이터 전송 과정에서 네트워크 주소 정보를 변경하여 IP 주소 범위를 다른 주소로 변환하는 기술입니다.
즉, NAT는 하나의 고유한 IP 주소(인터넷 프로토콜)가 단일 컴퓨터 또는 컴퓨터 그룹을 대표할 수 있게 합니다. 다시 말해, 같은 네트워크 내에서 사설 IP 주소를 가진 여러 기기가 하나의 공용 IP 주소를 공유할 수 있도록 합니다.
초기에는 인터넷 서비스 제공업체(ISP)가 변경되거나 네트워크 이전 시 각 호스트에 새로운 IP 주소를 개별적으로 할당해야 하는 번거로움을 피하기 위해 이 방법이 사용되었습니다. 이러한 변화에도 불구하고 네트워크의 IP 주소는 그대로 유지됩니다.
흥미로운 점은 NAT 게이트웨이가 전체 사설 네트워크에서 사용할 수 있는 단일 라우팅 가능 IP 주소를 제공할 수 있다는 것입니다. NAT는 전송 과정에서 IP 주소 데이터를 변경하므로 다양한 주소 지정 시나리오에서 네트워크 트래픽에 영향을 미치는 다양한 동작을 가진 여러 NAT 구현이 존재합니다.
NAT는 어떤 기능을 수행하는가?
NAT 환경에서 NAT 방화벽이나 라우터와 같은 네트워크 장치는 사설 네트워크 내의 컴퓨터 또는 컴퓨터 그룹에 공용 IP 주소를 할당합니다. 이를 통해 NAT는 하나의 장치가 공용 네트워크, 사설 네트워크, 그리고 로컬 네트워크 사이에서 중개 역할을 할 수 있도록 합니다.
NAT는 어떤 기능을 수행하는가?
NAT는 등록되지 않은 주소를 사용해 사설 IP가 온라인 상태를 유지할 수 있게 함으로써 IP 주소를 절약할 수 있게 합니다. 연결된 네트워크 간에 데이터 패킷을 전송하기 전에 NAT는 로컬 사설 네트워크 주소를 고유한 글로벌 합법적 주소로 변환합니다.
NAT 구성을 통해 전체 네트워크를 하나의 단일 IP 주소로 외부 세계에 표시할 수 있습니다. 결과적으로 내부 네트워크 전체를 숨기고 보안과 개인 정보 보호를 강화할 수 있습니다. NAT 구현은 원격 액세스 환경에 특히 적합합니다.
NAT는 어떻게 작동하는가?
네트워크 주소 변환을 사용하면 NAT 라우터 또는 방화벽과 같은 장치가 내부 네트워크(로컬 네트워크)와 외부 네트워크(인터넷) 사이에서 중재자 역할을 할 수 있습니다. 이를 통해 네트워크 외부에서 활동을 할 때 전체 장치 그룹이 동일한 IP 주소를 공유할 수 있습니다.

NAT는 특정 지침에 따라 어떤 방문자 또는 호출을 보내거나 대기하거나 차단할지 결정하는 조직의 안내원과 비슷한 역할을 합니다. 모든 요청은 공용 포트와 IP 주소를 통해 들어옵니다. 이때 NAT 명령어는 목적지의 사설 IP 주소를 숨기면서 요청이 어디로 가야 하는지를 결정합니다.
NAT는 두 개의 서로 다른 로컬 네트워크(외부 네트워크와 내부 네트워크) 사이에서 게이트웨이 역할을 합니다. 내부 시스템은 외부 네트워크로 라우팅할 수 없는 IP 주소를 가지고 있습니다. 또한 외부에서 유효한 IP 중 일부가 게이트웨이에 할당되어 아웃바운드 트래픽이 유효한 외부 IP 주소에서 오는 것처럼 보이게 합니다.
다음으로, 인바운드 트래픽을 올바른 내부 시스템으로 전송합니다. 이러한 방식으로 보안이 설정됩니다. 수신 및 발신 요청은 모두 변환 과정을 거치므로 수신 트래픽을 검증하고 발신 스트림과 일치시키는 효과적인 방법을 제공합니다.
NAT 프로세스의 예
다음은 실제 세계에서 NAT가 어떻게 작동하는지에 대한 예입니다.
사용자가 자신의 기기를 가정 내 Wi-Fi 네트워크에 연결합니다. 홈 라우터는 이 네트워크 내에서만 사용되는 기기에 사설 IP 주소를 할당합니다.
사용자가 특정 웹 페이지를 로드하려 하면 해당 요청은 라우터를 통해 대상 웹 페이지를 요청합니다. 이때 NAT 라우터는 요청의 소스 주소를 장치의 사설 IP 주소에서 네트워크의 공용 IP 주소로 변경합니다. NAT 테이블은 이러한 변환을 저장합니다. 게이트웨이는 데이터 패킷이 변환 조건을 충족하는지 확인하기 위해 이 테이블을 참조합니다.
또한 사용자가 접속하려는 서버는 요청된 데이터 패킷을 네트워크의 공용 주소로 되돌려 보냅니다. 다음으로 라우터는 데이터 패킷을 사용자 장치로 라우팅하는 동안 대상 주소를 장치의 사설 IP로 수정합니다.
NAT의 유형

NAT는 다양한 용도로 사용될 수 있는 여러 가지 유형으로 나눌 수 있습니다.
#1. SNAT
SNAT(Static NAT)는 사설 IP 주소를 공용 IP 주소로 변환하는 NAT 유형입니다. 변환이 수행될 때마다 동일한 공용 IP 주소를 일관되게 사용합니다.
SNAT는 등록된 IP 주소와 일치하도록 1:1 NAT를 사용하여 등록되지 않은 IP 주소를 매핑할 수 있습니다. 이는 이 네트워크의 모든 장치가 동일한 공용 주소를 갖는다는 것을 의미합니다. 이러한 경우 네트워크 주소에서 헤더와 IP 주소의 두 가지만 변경됩니다.
SNAT는 사용자가 외부 네트워크에서 접속해야 하는 기기에 유용합니다. 또한 호환되지 않는 주소를 가진 두 개의 서로 다른 IP 네트워크를 연결할 때도 사용됩니다. 웹 호스팅에서도 자주 활용됩니다. 일반적으로 개인 및 소규모 조직에서는 비용을 최소화하기 위해 더 적은 수의 장치에 SNAT를 사용합니다.
#2. DNAT
동적 NAT(DNAT)는 사설 IP 주소를 공용 IP 주소 풀에 매핑하는 NAT 유형입니다. SNAT와 달리 변환 시마다 동일한 IP 주소를 사용하지 않고 다른 IP 주소를 사용하지만, SNAT처럼 1:1 연결을 사용합니다.

DNAT 방화벽 또는 라우터는 사용 가능한 등록된 공용 IP 풀을 가지고 있습니다. 따라서 DNAT가 네트워크 주소를 사설에서 공용으로 변환할 때 라우터는 이 풀에서 사용 가능한 공용 IP 주소를 선택합니다. 그런 다음 등록되지 않은 IP 주소를 등록된 IP 주소에 매핑하기 시작합니다.
결과적으로 DNAT를 사용하면 장치가 모든 변환에 대해 서로 다른 IP를 가질 수 있습니다. 이는 사설 주소가 매핑된 글로벌 IP 주소를 알 수 없음을 의미합니다. 이 방법은 네트워크에 더 많은 장치를 연결할 수 있으므로 효율적인 솔루션입니다.
그러나 공용 IP 풀에 투자해야 하므로 비용이 많이 들 수 있습니다. 또한 전송할 수 있는 데이터 패킷의 수가 제한적입니다. 풀에서 사용 가능한 공용 IP 주소 수와 동일한 데이터 패킷만 보내고 받을 수 있습니다.
DNAT는 여러 내부 네트워크를 가진 대규모 조직에 적합합니다. 또한 인터넷 접속을 원하는 고정된 수의 사용자가 있는 경우에도 유용합니다.
#3. PAT
NAT 오버로드라고도 하는 PAT(Port Address Translation)는 각 내부 장치가 공통 공용 IP 주소를 사용하는 방식입니다. 그러나 모든 사설 IP 주소에는 다른 포트가 할당됩니다.
PAT에서는 서로 다른 로컬, 미등록 및 사설 IP 주소를 하나의 등록된 IP 주소에 매핑하는 데 서로 다른 포트가 사용됩니다. 이를 통해 어떤 네트워크 트래픽이 어떤 IP 주소에 해당하는지 식별합니다.

PAT는 데이터 패킷이 사설 네트워크에서 공용 네트워크로 이동할 때 변경된 소스 주소를 갖는 일종의 NAT입니다. 또한 공용 네트워크에서 사설 네트워크로 되돌아갈 때 대상 주소가 변경됩니다.
또한 데이터 패킷은 변환이 명확하도록 포트 번호를 변경합니다. 변경된 IP 주소와 포트 번호의 조합은 등록된 사설 IP 주소를 사용하여 매핑됩니다.
많은 사람들이 PAT가 NAT보다 비용 효율적이라고 생각합니다. 이는 많은 사용자가 하나의 공용 IP 주소를 사용하여 웹에 연결할 수 있기 때문입니다. 따라서 조직 규모에 상관없이 PAT를 사용할 수 있습니다.
SNAT, DNAT 및 PAT 외에도 RNAT 및 중첩 NAT와 같은 다른 유형의 NAT도 존재합니다.
- RNAT를 사용하면 공용 인터넷을 통해 네트워크에 연결할 수 있습니다.
- 중첩 NAT는 RFC 1918 IP를 사용하는 두 조직의 네트워크가 병합될 때 발생합니다. 또한 등록된 IP가 여러 장치에 할당되거나 여러 내부 네트워크에서 사용될 때도 발생할 수 있습니다. 이때 중첩 NAT는 각 장치의 주소를 다시 지정하지 않고 네트워크를 연결합니다.
NAT가 왜 중요한가?

장치 또는 네트워킹 시스템은 웹과의 통신을 설정하기 위해 마침표로 구분된 고유한 숫자 집합인 IP 주소가 필요합니다. 이 번호는 네트워크 장치를 식별하고 찾고 사용자가 웹과 통신할 수 있도록 하는 데 사용됩니다.
IP 주소에는 IPv4와 IPv6의 두 가지 유형이 있습니다. 인터넷 초기에는 약 43억 개의 IPv4 주소만 생성되었습니다. 그러나 이 모든 IP 주소를 통신을 위해 각각의 장치에 할당할 수는 없었습니다. 일부는 테스트, 군사, 방송용으로 남겨졌고 나머지 30억 개의 IP만 통신용으로 사용할 수 있었습니다.

2019년에 RIPE NCC는 IPv4 주소 고갈로 인해 가용 풀에 남아 있는 마지막 IPv4 주소를 할당했습니다. 이에 대응하기 위해 IPv6 주소 지정이 도입되었습니다. IPv6는 IP 주소 지정을 다시 정의하고 더 많은 주소 할당 옵션을 제공합니다. 그러나 네트워킹 시스템을 변경하거나 구현하는 데에는 수년이 걸렸습니다.
이때 등장한 것이 NAT입니다. 시스코는 NAT를 도입했으며, 현재는 광범위하게 사용되고 있습니다.
NAT는 특히 IPv4 주소가 고갈될 때 전역 주소 공간을 보존하는 가치 있고 널리 사용되는 방법이 되었습니다. 또한 NAT는 비용 효율성과 보안을 위해 사설 네트워크 IP 주소 범위를 숨기는 데도 사용됩니다.
NAT의 장점
IP 주소 보존
NAT는 합법적으로 등록된 IP 주소를 절약하고 고갈을 방지합니다. 전 세계적으로 증가하는 인터넷 사용자 수를 고려할 때 모든 사람이 웹에 액세스할 수 있는 환경을 조성하는 데 매우 효과적인 방법입니다.
보안
NAT를 사용하면 데이터 패킷이 전송되는 동안 공용 네트워크에서 장치의 IP를 숨길 수 있어 향상된 보안 및 개인 정보 보호 기능을 제공합니다. NAT 속도 제한을 사용하면 라우터에서 동시에 수행되는 최대 NAT 작업 수를 제한할 수도 있습니다.

이를 통해 NAT 주소 사용을 더 잘 제어할 수 있고 바이러스, 웜, 서비스 거부(DoS) 공격 등의 영향을 최소화할 수 있습니다. 동적 NAT(DNAT)를 구현하면 인터넷과 내부 네트워크 사이에 방화벽이 자동으로 생성됩니다. 또한 일부 NAT 라우터는 트래픽 필터링 및 로깅과 같은 보안 기능을 제공할 수 있습니다.
다중 연결
여러 인터넷 연결을 설정하면 네트워크 안정성을 유지하고 연결 실패 시 종료 가능성을 줄이는 데 도움이 됩니다. 또한 단일 연결을 사용하는 장치의 수를 줄여 로드 밸런싱에도 기여합니다.
또한 멀티홈 네트워크는 일반적으로 조직에 단일 또는 여러 IP 주소를 할당하는 여러 ISP에 연결합니다. 또한 라우터는 NAT를 사용하여 다른 NAT 프로토콜로 네트워크를 라우팅할 수 있습니다.
멀티홈 네트워크는 라우터가 TCP 또는 IP 프로토콜인 BGP(Border Gateway Protocol)의 일부를 활용하여 통신할 수 있도록 합니다. 마찬가지로, 하위 도메인 사이트는 내부 BGP(IBGP)를 사용하여 공유하고, 라우터는 외부 BGP(EBGP)를 사용하여 상호 작용합니다. 연결이 실패할 경우 멀티호밍은 다른 라우터를 통해 데이터를 다시 라우팅합니다.
속도

NAT는 프록시 서버보다 원본 및 대상 컴퓨터 모두에 더 투명합니다. 이를 통해 더 빠른 속도로 직접 거래를 수행할 수 있습니다. 또한 프록시 서버는 일반적으로 OSI 모델의 4계층(전송 계층) 이상에서 작동합니다. 이는 레이어 3(네트워크 레이어)에 있는 NAT보다 속도가 느립니다.
확장성
요구 사항이 증가하면 사용자 및 장치에 더 많은 IP 주소가 필요합니다. 따라서 IANA에 더 많은 IP를 요청하는 대신 NAT를 활용할 수 있습니다. 그리고 DHCP(Dynamic Host Configuration Protocol)와 함께 NAT를 사용하면 확장이 더 쉬워집니다.
그 이유는 NAT와 DHCP가 함께 작동하여 요구 사항에 따라 사용 가능한 목록에서 하위 도메인에 등록되지 않은 IP 주소를 할당하기 때문입니다. 이를 통해 사용 가능한 IP 주소 범위를 확장할 수 있으며, DHCP는 더 많은 네트워크 컴퓨터를 위한 공간을 빠르게 구성하고 만들 수 있습니다.
유연성 및 단순성
NAT는 배포 및 연결 설정에 유연성을 제공합니다. 무선 공용 LAN에 배포할 수 있으며, 경우에 따라 SNAT(고정 NAT) 및 인바운드 매핑을 사용하여 외부 장치가 하위 도메인에서 장치 연결을 설정하도록 허용할 수 있습니다.
또한 NAT는 네트워크를 변경하거나 병합한 후 IP 주소를 다시 할당할 필요가 없으므로 복잡성을 줄이고 간단한 인터넷 연결을 가능하게 합니다. NAT를 사용하면 내부 네트워크에 TCP 로드 밸런싱을 조정하는 가상 호스트를 구축할 수도 있습니다.
NAT의 한계
NAT의 한계
NAT의 몇 가지 제한 사항은 다음과 같습니다.
- 리소스 소비: NAT는 상당한 프로세서 공간과 메모리 리소스를 소비할 수 있습니다. 이는 들어오고 나가는 IPv4 데이터그램에 대한 모든 IPv4 주소를 변환하고 모든 변환 세부 정보를 메모리에 저장하기 때문입니다.
- 기능: NAT를 활성화하면 일부 기술 및 응용 프로그램의 기능이 저하될 수 있습니다.
- 터널링 복잡성: NAT는 터널링 프로토콜을 복잡하게 만들 수 있습니다. 이를 위해 보안 네트워크 주소 변환에 IPsec을 사용할 수 있습니다.
- 레이어 문제: 라우터가 NAT 장치로 작동할 때 레이어 3(네트워크 레이어)용으로 설계되어 있으므로 레이어 4(전송 레이어)를 포트 번호로 간섭할 수 있습니다.
- 지연: 변환 과정에서 경로 지연이 발생할 수 있습니다.
NAT의 몇 가지 공통 용어

- 소스 주소: 시작 호스트의 IP 주소입니다.
- 소스 포트: 시작 호스트가 할당하는 TCP/UDP 포트 번호입니다.
- 목적지 주소: 수신자의 IP 주소입니다.
- 대상 포트: 시작 호스트가 수신자에게 열어달라고 요청하는 TCP 또는 UDP 포트입니다.
- 내부 로컬 주소: 로컬(내부) 네트워크의 호스트에 할당된 사설 IP 주소입니다. 서비스 제공자가 할당하지 않습니다. 내부 네트워크의 내부 호스트입니다.
- 내부 전역 주소: 하나 이상의 로컬 IP를 나타내는 IP 주소입니다. 외부/외부 네트워크의 내부 호스트입니다.
- 외부 로컬 주소: 대상 호스트의 실제 IP 주소로, 변환이 끝나면 로컬 네트워크에 위치합니다.
- 외부 전역 주소: 변환 전 외부 대상 호스트의 IP 주소입니다. 외부/외부 네트워크의 외부 호스트입니다.
- 하위 도메인: 다음으로 구성된 등록되지 않은 사설 IP 주소입니다.
- NAT 테이블: NAT는 포트 번호와 IP 주소를 재할당하고 NAT 변환 테이블로 추적합니다.
라우터가 공용 IP 주소가 할당된 로컬 장치로부터 데이터 패킷을 수신했다고 가정해 봅시다. 라우터는 이제 소스 장치의 IP 주소를 변경하여 사용할 수 있도록 만듭니다. 다음으로, 소스의 포트 번호를 변경하여 수신된 패킷이 전달되어야 하는 위치에 대한 정보를 갖게 합니다. 이 IP 주소 재할당은 NAT 변환 테이블에 기록됩니다.
결론
인터넷 사용자가 증가하고 보안 문제가 전 세계적으로 확산됨에 따라 보다 안전하고 효율적인 연결 방법이 필요합니다. NAT는 이러한 목표를 달성하는 데 도움이 됩니다. 인터넷에 연결하는 동안 보안, 속도, 유연성 및 확장성의 이점을 제공하면서 공용 IP 주소를 보존하는 데 기여합니다.