Unisquads
로그인
홈
이용약관·개인정보처리방침·콘텐츠정책·© 2026 Unisquads
이용약관·개인정보처리방침·콘텐츠정책
© 2026 Unisquads. All rights reserved.

네트워크 주소 변환 (r1)

이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.14 21:21

네트워크 주소 변환

한국어 명칭

네트워크 주소 변환

영문 명칭

Network Address Translation

약칭

NAT

분류

네트워크 및 통신 프로토콜

주요 목적

IP 주소 절약, 사설망 구성, 보안 강화

작동 계층

OSI 모델 전송 계층 (Layer 4)

기술 상세 정보

기본 원리

패킷의 IP 헤더 내 공인 IP 주소와 사설 IP 주소를 변환

주요 유형

Static NAT, Dynamic NAT, PAT (Port Address Translation, 또는 NAT Overload)

주요 구성 요소

NAT 테이블 (변환 테이블)

사용 장비

라우터, 방화벽, 홈 게이트웨이

장점

IPv4 주소 고갈 문제 완화, 내부 네트워크(사설망) 구조 은닉을 통한 보안 향상

단점

엔드투엔드 연결성 저해, 특정 P2P 애플리케이션 및 프로토콜 호환성 문제, 네트워크 복잡도 증가

관련 표준/문서

RFC 1631, RFC 3022

대체 기술/향후 전망

IPv6 도입으로 장기적 필요성 감소

1. 개요

네트워크 주소 변환(NAT)은 IP 주소를 변환하는 네트워크 기술이다. 주로 라우터나 방화벽과 같은 네트워크 장비에서 수행되며, 사설 네트워크 내부의 여러 장치가 하나의 공인 IP 주소를 공유하여 외부 인터넷과 통신할 수 있게 한다. 이 기술은 IPv4 주소의 고갈 문제를 완화하는 핵심적인 해결책으로 널리 사용되었다.

NAT의 기본 동작은 패킷이 사설 네트워크와 공용 네트워크 사이의 경계를 지날 때, 패킷 헤더의 출발지 또는 목적지 IP 주소를 실시간으로 변경하는 것이다. 내부 네트워크에서 외부로 나가는 패킷의 사설 주소는 공인 주소로 변환되고, 반대로 외부에서 들어오는 응답 패킷의 목적지 주소는 다시 해당 사설 주소로 변환되어 내부 장치에 도달한다.

이 기술은 단순한 주소 변환을 넘어 네트워크 관리와 보안에 중요한 역할을 한다. 내부 네트워크의 실제 주소 체계를 외부에 노출시키지 않음으로써 일종의 기본적인 보안 장벽을 제공한다[1]. 또한, 기업이나 가정에서 수많은 장치를 제한된 수의 공인 IP로 효율적으로 연결할 수 있는 기반을 마련했다.

구분

설명

주요 목적

IPv4 주소 절약, 사설 네트워크 구성, 기본적인 보안

주요 수행 장치

라우터, 방화벽, 홈 게이트웨이

주요 변환 대상

IP 주소, TCP/UDP 포트 번호

관련 표준

RFC 3022, RFC 4787 등

2. NAT의 기본 개념

사설 IP 주소는 특정 로컬 네트워크 내부에서만 사용되도록 예약된 주소 공간이다. 반면 공인 IP 주소는 인터넷 상에서 전 세계적으로 고유하게 식별되는 주소이다. IPv4 체계에서는 주소 고갈 문제로 인해 사설 IP 주소 범위(예: 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12)가 정의되어, 기업이나 가정 내부 네트워크에서 자유롭게 사용할 수 있다.

주소 변환의 필요성은 크게 두 가지 측면에서 발생한다. 첫째는 IPv4 주소 고갈 문제를 완화하기 위함이다. 하나의 공인 IP 주소를 공유하여 수많은 내부 호스트가 인터넷에 접속할 수 있게 한다. 둘째는 보안적 측면이다. 내부 네트워크의 실제 IP 주소와 토폴로지를 외부에 노출시키지 않음으로써, 일종의 방화벽 역할을 수행한다[2].

따라서 NAT는 내부 네트워크의 패킷이 라우터나 NAT 게이트웨이를 통해 외부로 나갈 때, 출발지 사설 IP 주소를 공인 IP 주소로 변환한다. 반대로 외부에서 들어오는 응답 패킷의 목적지 공인 IP 주소를 다시 원래의 사설 IP 주소로 변환하여 내부 호스트에 전달한다. 이 과정은 주소 변환 테이블을 통해 관리된다.

2.1. 사설 IP 주소와 공인 IP 주소

사설 IP 주소는 인터넷 상에서 직접 라우팅되지 않고, 특정 로컬 네트워크 내부에서만 사용되는 IP 주소를 의미한다. 반면 공인 IP 주소는 인터넷 상에서 전 세계적으로 고유하게 식별되며, 인터넷 서비스 제공자로부터 할당받아 사용하는 주소이다.

사설 IP 주소는 다음의 세 가지 주소 대역으로 표준화되어 있으며, 이 범위 내의 주소는 인터넷에서 라우팅되지 않는다.

주소 대역

설명

10.0.0.0 – 10.255.255.255 (10.0.0.0/8)

가장 큰 규모의 사설 네트워크에 사용된다.

172.16.0.0 – 172.31.255.255 (172.16.0.0/12)

중간 규모의 네트워크에 사용된다.

192.168.0.0 – 192.168.255.255 (192.168.0.0/16)

가장 흔히 사용되는 소규모 가정이나 사무실 네트워크에 사용된다.

이러한 구분은 IPv4 주소의 고갈 문제를 완화하기 위해 도입되었다. 하나의 공인 IP 주소를 공유하는 여러 내부 장치가 각각 사설 IP 주소를 사용함으로써, 필요한 공인 주소의 수를 크게 줄일 수 있다. 예를 들어, 가정 내의 스마트폰, 노트북, 스마트 TV 등은 모두 서로 다른 사설 IP 주소를 가지지만, 인터넷에 나갈 때는 라우터의 단일 공인 IP 주소를 공유한다.

2.2. 주소 변환의 필요성

IPv4 주소 체계는 약 43억 개의 고유 주소를 제공하지만, 인터넷 사용 기기의 폭발적 증가로 인해 이 주소 공간은 빠르게 고갈되었다. 이 문제를 완화하기 위해 사설 IP 주소 범위(예: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)가 정의되었으며, 이 주소들은 인터넷 상에서 직접 라우팅되지 않고 조직 내부에서만 재사용될 수 있다. NAT는 이러한 사설 네트워크의 다수 호스트가 단일 또는 소수의 공인 IP 주소를 공유하여 인터넷에 접속할 수 있도록 하는 핵심 메커니즘이다.

주소 변환의 필요성은 크게 두 가지 측면에서 설명된다. 첫째는 공인 IP 주소의 절약이다. 하나의 공인 IP 주소를 통해 수십, 수백 대의 내부 호스트가 외부 네트워크와 통신할 수 있게 함으로써 IPv4 주소 고갈 문제를 지연시켰다. 둘째는 보안적 측면이다. NAT는 기본적으로 외부 네트워크에서 내부 사설 네트워크의 실제 IP 주소와 토폴로지를 숨기는 효과를 제공한다. 외부에서 발신된 패킷이 내부 네트워크로 들어오려면 NAT 변환 테이블에 해당 연결에 대한 매핑 정보가 사전에 존재해야 하므로, 원치 않는 외부 접속을 차단하는 추가적인 방화벽 역할을 수행한다.

필요성

설명

주소 절약

제한된 공인 IP 주소를 효율적으로 공유하여 IPv4 주소 고갈 문제를 완화한다.

보안 강화

내부 네트워크의 실제 주소 체계를 외부에 노출시키지 않아 기본적인 네트워크 은닉 효과를 제공한다.

네트워크 관리 용이

내부 네트워크의 IP 주소 체계를 외부와 독립적으로 변경 및 관리할 수 있는 유연성을 부여한다.

이러한 필요성 때문에 NAT는 가정용 라우터, 기업망, 데이터센터 등 인터넷 접속이 필요한 거의 모든 네트워크 환경에서 필수적인 기술로 자리 잡았다. 그러나 이는 IPv4 주소 공간의 한계에 대한 임시 해결책이며, 궁극적인 해결책은 충분한 주소 공간을 제공하는 IPv6로의 전환이다.

3. NAT의 주요 동작 방식

NAT의 동작 방식은 크게 세 가지로 구분된다. 각 방식은 주소 변환의 규칙과 목적에 따라 차이를 보인다.

방식

설명

주소 매핑 특징

주요 용도

정적 NAT (Static NAT)

사설 IP와 공인 IP를 1:1로 고정 매핑한다.

정적(Static), 영구적

내부 네트워크의 서버(웹, 메일 등)를 외부에 공개할 때

동적 NAT (Dynamic NAT)

사설 IP를 공인 IP 풀에서 사용 가능한 주소로 변환한다.

동적(Dynamic), 1:1 매핑

내부 호스트의 일반적인 외부 인터넷 접속

PAT (Port Address Translation)

하나의 공인 IP와 포트 번호를 조합해 여러 사설 IP를 변환한다.

동적, 1:N 매핑

가장 일반적인 가정/사무실 공유기 환경

정적 NAT는 내부 네트워크의 특정 장치(예: 웹 서버)에 고정된 공인 IP 주소를 할당하는 방식이다. 사설 IP 주소와 공인 IP 주소의 매핑 테이블이 관리자에 의해 미리 설정되어 변경되지 않는다. 따라서 외부에서 해당 공인 IP로 들어오는 연결을 항상 특정 내부 장치로 안정적으로 전달할 수 있어 서버 호스팅에 적합하다.

동적 NAT는 내부 호스트가 외부와 통신을 시작할 때, 사용 가능한 공인 IP 주소 풀에서 하나를 할당받아 변환하는 방식이다. 변환은 1:1로 이루어지지만, 매핑 관계는 통신 세션이 유지되는 동안만 일시적으로 존재한다. 세션이 종료되면 해당 공인 IP는 풀로 반환되어 다른 내부 호스트가 사용할 수 있다. 이 방식은 동시에 통신할 수 있는 내부 호스트의 수가 공인 IP 풀의 크기에 제한받는 단점이 있다.

가장 널리 사용되는 방식은 PAT이다. 이는 포트 주소 변환이나 NAT 오버로드라고도 불린다. 하나의 공인 IP 주소를 여러 내부 사설 IP 주소가 공유하되, 각 내부 호스트의 연결을 구분하기 위해 TCP/UDP 포트 번호를 추가로 활용한다[3]. 예를 들어, 공유기는 외부로 나가는 패킷의 출발지 주소를 공인 IP로, 출발지 포트를 고유한 번호로 변경하여 기록한다. 응답 패킷이 해당 포트로 들어오면 기록을 참조해 원래의 내부 호스트로 패킷을 전달한다. 이 방식으로 수백 대의 장치가 단 하나의 공인 IP를 통해 인터넷에 접속할 수 있어 IPv4 주소 절약 효과가 극대화된다.

3.1. 정적 NAT (Static NAT)

정적 NAT는 사설 IP 주소와 공인 IP 주소 간의 변환을 고정적으로, 일대일로 매핑하는 방식이다. 내부 네트워크의 특정 장치(예: 웹 서버 또는 메일 서버)에 항상 동일한 공인 IP 주소를 할당하여 외부에서 접근할 수 있도록 한다. 관리자가 수동으로 변환 테이블을 구성해야 하며, 한 번 설정되면 주소 매핑이 변경되지 않는다.

주로 내부 네트워크에 위치한 서버를 외부 인터넷에 공개해야 할 때 사용된다. 예를 들어, 사설 IP 주소 192.168.1.100을 가진 웹 서버가 있다면, 정적 NAT를 통해 이를 공인 IP 주소 203.0.113.10으로 고정적으로 변환한다. 외부 사용자는 203.0.113.10으로 접속하면, NAT 장비(예: 라우터 또는 방화벽)가 해당 트래픽을 자동으로 192.168.1.100으로 전달한다.

내부 사설 주소 (Private IP)

외부 공인 주소 (Public IP)

용도

192.168.1.100

203.0.113.10

웹 서버

192.168.1.101

203.0.113.11

FTP 서버

192.168.1.102

203.0.113.12

메일 서버

이 방식의 주요 특징은 주소 변환이 예측 가능하고 영구적이라는 점이다. 이는 서버 운영에 안정성을 제공하지만, 제한된 공인 IP 주소를 각 내부 장치에 하나씩 할당해야 하므로 주소 효율성은 낮다. 따라서 대규모 내부 네트워크의 모든 클라이언트 장치에 적용하기보다는, 특정 서비스 제공을 위한 서버에 한정되어 사용된다.

3.2. 동적 NAT (Dynamic NAT)

동적 NAT는 미리 정의된 공인 IP 주소 풀에서 사용 가능한 주소를 할당하여 사설 IP 주소를 변환하는 방식이다. 정적 NAT가 고정된 1:1 매핑을 사용하는 반면, 동적 NAT는 내부 네트워크의 호스트가 외부로 통신을 시작할 때마다 풀에서 빈 공인 주소를 동적으로 선택하여 할당한다. 이 변환은 통신 세션이 유지되는 동안만 지속되며, 세션이 종료되면 해당 공인 주소는 풀로 반환되어 다른 내부 호스트가 사용할 수 있게 된다.

동적 NAT의 동작 과정은 다음과 같다. 내부 호스트(예: 192.168.1.10)가 외부 서버에 패킷을 보내면, NAT 장비(라우터 또는 방화벽)는 해당 패킷의 출발지 주소를 확인한다. 장비는 내부 주소 변환 테이블을 검색한 후, 기존 매핑이 없으면 사용 가능한 공인 IP 주소 풀(예: 203.0.113.1 ~ 203.0.113.10)에서 하나의 주소(예: 203.0.113.3)를 선택하여 할당한다. 이후 외부로 나가는 모든 패킷의 출발지 주소는 이 공인 주소로 변환된다. 반대로 외부에서 들어오는 응답 패킷의 목적지 주소가 203.0.113.3이면, NAT 장비는 변환 테이블을 참조하여 원래의 내부 주소인 192.168.1.10으로 다시 변환하여 전달한다.

이 방식의 주요 특징과 제약 사항은 아래 표와 같다.

특징

설명

주소 할당 방식

공인 IP 풀에서 동적으로 할당. 선착순 또는 설정된 알고리즘에 따라 배분됨.

매핑 관계

1:1 매핑이지만, 매핑 관계가 고정되지 않고 세션 기반으로 임시적으로 생성됨.

주소 활용 효율

동시 통신 세션 수가 공인 IP 풀의 크기로 제한됨. 풀의 모든 주소가 사용 중이면 추가 연결이 차단될 수 있음.

세션 관리

연결이 종료되거나 일정 시간 동안 활동이 없으면 매핑 항목이 타임아웃되어 주소가 풀로 반환됨.

동적 NAT는 정적 NAT에 비해 공인 IP 주소를 더 효율적으로 활용할 수 있으며, 내부 네트워크 구조를 일정 정도 숨기는 기본적인 보안 이점을 제공한다. 그러나 공인 IP 풀의 크기보다 많은 내부 호스트가 동시에 외부와 통신해야 할 경우 연결 실패가 발생할 수 있다는 한계가 있다. 이 한계를 극복하기 위해 단일 공인 IP 주소로 여러 내부 호스트의 통신을 구분할 수 있는 PAT 방식이 더 널리 사용된다.

3.3. PAT (Port Address Translation / NAT Overload)

PAT는 동적 NAT의 한 형태로, 하나의 공인 IP 주소를 여러 개의 사설 IP 주소가 공유하도록 하는 기술이다. 이때, 각 내부 호스트의 연결을 구분하기 위해 TCP/UDP 포트 번호를 추가적으로 변환하여 사용한다. 이 방식은 주소 변환 테이블에 사설 IP 주소뿐만 아니라 포트 번호까지 기록하여, 하나의 공인 IP 주소로 수천 개의 내부 연결을 동시에 처리할 수 있게 한다. 따라서 PAT는 주소 절약 측면에서 가장 효율적인 NAT 방식으로 평가받는다.

PAT의 동작 과정은 다음과 같다. 내부 네트워크의 호스트(예: 192.168.1.10)가 외부 서버(예: 203.0.113.5)에 접속하려고 하면, NAT 장비(주로 라우터 또는 방화벽)는 해당 패킷의 출발지 주소와 포트(예: 192.168.1.10:1500)를 자신의 공인 IP 주소와 사용 가능한 새로운 포트(예: 203.0.113.1:62000)로 변환한다. 이 매핑 정보는 NAT 테이블에 기록된다. 이후 외부 서버로부터의 응답 패킷이 공인 IP 주소와 포트(203.0.113.1:62000)로 도착하면, NAT 장비는 테이블을 조회하여 원래의 내부 호스트(192.168.1.10:1500)로 패킷을 전달한다.

변환 전 (내부)

변환 후 (외부)

프로토콜

192.168.1.10:1500

203.0.113.1:62000

TCP

192.168.1.11:2000

203.0.113.1:62001

UDP

192.168.1.12:3000

203.0.113.1:62002

TCP

PAT는 대부분의 가정용 라우터와 소규모 기업 네트워크에서 표준적으로 사용되는 방식이다. 이는 IPv4 주소 고갈 문제를 극복하는 데 결정적인 역할을 했다. 그러나 모든 내부 호스트의 트래픽이 단일 공인 IP 주소로 집중되기 때문에, 해당 주소가 블랙리스트에 등록될 경우 내부의 모든 사용자가 영향을 받을 수 있다는 단점도 존재한다. 또한, 포트 번호를 식별자로 사용하기 때문에 포트 번호에 의존하지 않는 특정 애플리케이션 계층 프로토콜(예: FTP의 액티브 모드, IPsec 등)과의 호환성 문제가 발생할 수 있다.

4. NAT의 장점과 단점

네트워크 주소 변환은 주소 공간 절약과 내부 네트워크 보호라는 명확한 장점을 제공하지만, 성능 저하와 특정 애플리케이션 호환성 문제와 같은 단점도 동시에 수반한다.

가장 큰 장점은 IPv4 공인 IP 주소의 절약이다. 하나의 공인 IP 주소를 여러 대의 사설 IP 주소를 가진 호스트가 공유할 수 있게 함으로써, 급격히 고갈되어 가는 IPv4 주소 자원을 효율적으로 관리할 수 있다. 이는 기업이나 가정에서 수십, 수백 대의 장치를 인터넷에 연결하는 현실적인 해결책이 되었다. 또한, 내부 네트워크의 실제 IP 주소와 토폴로지를 외부에 노출시키지 않으므로 기본적인 방화벽 역할을 수행하여 보안성을 향상시킨다. 외부에서의 직접적인 접근이 어려워져 무단 침입 시도를 차단하는 데 일조한다.

반면, NAT는 네트워크 성능에 일정한 오버헤드를 발생시킨다. 모든 패킷의 IP 헤더를 검사하고 변환해야 하므로, 라우터나 게이트웨이 장치의 처리 부담이 증가한다. 이는 특히 대역폭이 높거나 실시간성이 요구되는 통신에서 지연을 유발할 수 있다. 더 근본적인 단점은 엔드투엔드 연결성을 훼손한다는 점이다. 주소 변환 과정은 IPsec이나 FTP의 Active 모드 등, 패킷 헤더 내에 IP 주소나 포트 정보를 포함하는 일부 프로토콜과의 호환성을 깨뜨린다. 이러한 문제를 해결하기 위해 별도의 ALG가 필요할 수 있다. 또한, 외부에서 내부 네트워크의 특정 호스트로의 접근이 복잡해져, P2P 통신이나 VoIP, 온라인 게임 등을 구현할 때 NAT 트래버셀 기술이 추가로 요구된다.

장점

단점

공인 IP 주소 절약

변환 처리로 인한 성능 오버헤드

내부 네트워크 구조 은닉을 통한 기본적 보안 강화

엔드투엔드 원칙 위반 및 특정 프로토콜(예: IPsec, FTP) 호환성 문제

내부 주소 체계 변경의 유연성 제공

외부에서의 직접 접근 어려움으로 인한 P2P 등 애플리케이션 구축 복잡화

네트워크 문제 추적 및 로깅의 어려움 증가

4.1. 장점: 보안성 향상, 주소 절약

네트워크 주소 변환의 도입은 주로 IPv4 주소 고갈 문제를 완화하기 위한 것이었지만, 부수적으로 중요한 장점들을 제공한다. 그 중 가장 두드러지는 것은 공인 IP 주소의 절약과 기본적인 수준의 네트워크 보안 향상이다.

첫 번째 주요 장점은 공인 IP 주소의 효율적인 절약이다. 하나의 공인 IP 주소를 여러 대의 내부 호스트가 공유할 수 있게 함으로써, 제한된 IPv4 주소 자원을 극적으로 확장한다. 예를 들어, 한 가정이나 소규모 사무실 네트워크에는 수십 대의 장치가 존재할 수 있지만, 인터넷 서비스 제공자로부터 할당받는 공인 IP 주소는 단 하나인 경우가 일반적이다. PAT 방식을 통해 내부 장치들의 사설 IP와 포트 번호를 하나의 공인 IP와 서로 다른 포트 번호로 변환하면, 모든 장치가 동시에 인터넷에 접속하는 것이 가능해진다. 이는 IPv4 주소 체계의 수명을 연장하는 데 결정적인 역할을 했다.

두 번째 장점은 기본적인 방화벽 효과로 인한 보안성 향상이다. NAT 장비(주로 라우터)는 기본적으로 외부 네트워크에서 시작된 연결 요청을 내부 네트워크로 자동으로 전달하지 않는다. 내부 호스트가 외부로 먼저 연결을 시도하여 변환 테이블이 생성된 경우에만, 해당 연결에 대한 응답 트래픽이 내부로 전달된다. 이는 외부에서의 무단 스캔이나 공격 시도가 내부 네트워크에 직접 도달하는 것을 막는 일종의 숨김 효과를 제공한다. 따라서 내부 네트워크의 실제 토폴로지와 호스트 주소가 외부에 노출되는 것을 방지한다[4]. 그러나 이는 완전한 보안 솔루션이 아니며, 애플리케이션 계층 공격이나 내부에서 시작된 악성 트래픽을 막지 못한다는 점에 유의해야 한다.

4.2. 단점: 성능 오버헤드, 특정 프로토콜 호환성 문제

네트워크 주소 변환은 패킷의 IP 주소와 포트 번호를 실시간으로 변환해야 하므로, 라우터나 방화벽과 같은 네트워크 장비에 추가적인 처리 부담을 준다. 주소 변환을 위해 변환 테이블을 유지하고, 각 패킷 헤더를 검사하고 수정하는 과정에서 약간의 지연이 발생한다. 이는 처리량이 많거나 실시간성이 중요한 애플리케이션에서 성능 저하의 원인이 될 수 있다.

특히, IP 헤더 내의 주소 정보를 변경하면 체크섬을 재계산해야 하며, TCP나 UDP 헤더의 체크섬도 영향을 받아 추가 계산이 필요하다. 이러한 오버헤드는 대규모 트래픽을 처리하는 네트워크 환경에서 누적되어 성능에 영향을 미칠 수 있다.

주소 변환은 IPsec이나 FTP의 Active 모드와 같이 애플리케이션 계층 페이로드 내부에 IP 주소나 포트 번호를 포함하는 프로토콜과의 호환성 문제를 일으킨다. NAT 장비는 일반적으로 전송 계층까지만 패킷을 처리하며, 애플리케이션 데이터까지 깊이 들여다보지 않기 때문에, 데이터 부분에 포함된 주소 정보는 변환되지 않은 채로 전달된다.

이로 인해 통신이 실패하거나 정상적으로 동작하지 않는 경우가 발생한다. 이러한 문제를 해결하기 위해 ALG가 개발되었지만, 모든 프로토콜을 지원하지는 않으며, ALG 자체도 추가적인 복잡성과 보안 취약점을 도입할 수 있다.

프로토콜/기술

NAT와의 호환성 문제

설명

IPsec

높음

AH 프로토콜은 패킷 무결성 검사를 위해 전체 IP 헤더를 포함하므로, NAT가 헤더를 변경하면 검증이 실패한다.

FTP (Active 모드)

높음

클라이언트가 데이터 채널 연결을 위해 서버에 보내는 PORT 명령어에 포함된 사설 IP 주소가 공인 주소로 변환되지 않을 수 있다.

SIP

중간

SIP 메시지의 SDP 본문에 포함된 미디어 연결 주소가 NAT 장비를 인식하지 못해 잘못된 주소로 설정될 수 있다.

온라인 게임 / P2P

높음

직접적인 피어 투 피어 연결을 요구하는 애플리케이션은 양쪽 끝단이 모두 NAT 뒤에 있을 경우 연결 수립에 실패할 수 있다.

5. NAT 트래버셀 (NAT Traversal)

NAT 트래버셀은 네트워크 주소 변환이 적용된 환경에서, 외부 네트워크의 호스트가 NAT 장비 뒤에 위치한 사설 네트워크 내부의 호스트와 직접적인 연결을 설정하기 위한 기술과 방법론을 총칭한다. NAT는 기본적으로 외부에서 내부로의 새로운 연결 시도를 차단하는 방화벽 역할을 하기 때문에, P2P 통신, VoIP, 온라인 게임, 실시간 영상 통화 등 양방향 직접 연결이 필요한 응용 프로그램에 장애가 된다.

주요 NAT 트래버셀 기술로는 STUN, TURN, ICE가 있다. STUN 프로토콜은 클라이언트가 공용 네트워크 상에서 자신에게 할당된 공인 IP 주소와 포트 번호를 발견하는 데 사용된다. 클라이언트는 STUN 서버에 요청을 보내고, 서버의 응답을 통해 NAT 장비에 의해 변환된 자신의 주소 정보를 알게 된다. 이 정보를 상대방과 교환하여 직접 연결을 시도할 수 있다. 그러나 대칭형 NAT 등 일부 NAT 환경에서는 STUN만으로는 연결이 불가능하다.

프로토콜

역할

특징

STUN

주소 발견

클라이언트의 공인 주소/포트를 확인. 직접 연결 시도용.

TURN

릴레이 중계

STUN으로 직접 연결 실패 시, TURN 서버를 중계점으로 사용. 대역폭 부하 발생.

ICE

연결 경로 최적화

STUN, TURN을 포함한 여러 후보 경로를 수집, 검사하여 최적의 연결 경로를 선택.

TURN은 STUN으로 직접 연결이 실패할 경우를 대비한 릴레이 서버를 제공한다. 모든 데이터가 TURN 서버를 경유하므로 네트워크 지연과 서버 부하가 증가하는 단점이 있지만, 가장 확실한 연결 방법이다. ICE는 STUN과 TURN을 함께 활용하는 프레임워크이다. ICE를 구현한 클라이언트는 가능한 모든 연결 경로(직접 연결, STUN을 통한 연결, TURN 릴레이 연결)를 후보로 수집하고, 이들 간의 연결 테스트를 수행하여 최적의 작동 경로를 선택한다. 이는 WebRTC 같은 현대적 P2P 통신 표준의 핵심 구성 요소이다.

P2P 통신에서의 NAT 우회는 이러한 프로토콜들을 조합하여 이루어진다. 통신을 시작하려는 두 피어는 중간 서버를 통해 각자의 주소 후보 정보를 교환한 후, ICE 절차에 따라 서로에게 연결을 시도한다. 가장 일반적인 시나리오는 STUN을 통해 직접 연결이 성립되는 것이며, 실패할 경우 TURN 서버를 릴레이로 사용하게 된다. 이 과정은 응용 프로그램 계층에서 투명하게 처리되어 사용자에게 보이지 않는다.

5.1. STUN, TURN, ICE 프로토콜

STUN, TURN, ICE는 NAT 뒤에 위치한 호스트(예: 가정 내 PC나 스마트폰)가 외부 네트워크와 직접적인 P2P 연결을 수립하는 데 어려움을 겪는 문제, 즉 NAT 트래버셀을 해결하기 위해 설계된 프로토콜군이다. 이들은 각기 다른 역할을 수행하며, 종종 함께 사용되어 최적의 연결 경로를 찾는다.

STUN은 가장 기본적인 프로토콜로, 호스트가 자신의 공용 네트워크 상의 주소(공인 IP 주소와 포트)를 발견하는 데 사용된다. 호스트는 인터넷에 위치한 STUN 서버에 요청을 보내고, 서버는 응답을 통해 "NAT 장치가 이 연결을 위해 외부에 매핑해 놓은 주소는 무엇인가"를 알려준다. 이렇게 발견된 주소 정보를 통해 양측 호스트는 서로의 공용 주소를 알 수 있게 되며, 간단한 콘 스타일 NAT 환경에서는 이 정보만으로 직접 P2P 연결이 가능해진다. 그러나 대칭형 NAT[5]처럼 더 제한적인 NAT 뒤에 있을 경우 STUN만으로는 연결에 실패한다.

이러한 제한적인 환경에서 TURN이 중계자 역할을 한다. TURN은 직접적인 P2P 연결이 불가능할 때, 중간에 위치한 TURN 서버를 통해 모든 데이터를 릴레이(중계)하는 방식을 제공한다. 호스트는 TURN 서버와 연결을 수립하고, 모든 통신 데이터는 이 서버를 경유하여 상대방에게 전달된다. 이 방식은 반드시 연결을 성공시킬 수 있지만, 서버의 대역폭을 소모하고 지연 시간이 증가하는 단점이 있다. 따라서 TURN은 최후의 수단으로 사용된다.

ICE는 STUN과 TURN을 포함한 다양한 방법을 체계적으로 시도하여 최적의 연결 경로를 선택하는 프레임워크이다. ICE를 구현한 에이전트는 가능한 모든 통신 주후보(Candidate)를 수집한다. 이 후보에는 자신의 사설 IP 주소, STUN을 통해 발견된 공용 주소, TURN 서버의 릴레이 주소 등이 포함된다. 이후 이 후보 목록을 시그널링 채널(예: SIP)을 통해 상대방과 교환하고, STUN 요청을 이용한 연결성 확인(Connectivity Checks) 절차를 수행한다. 이 과정에서 지연이 가장 적고 직접적인 연결(우선순위: 사설 주소 직접 연결 > STUN을 통한 공용 주소 연결 > TURN 릴레이)이 가능한 경로를 자동으로 선택한다.

5.2. P2P 통신에서의 NAT 우회

P2P 통신은 중앙 서버를 거치지 않고 단말 간 직접 연결을 통해 데이터를 교환하는 방식이다. 그러나 각 단말이 사설 IP 주소를 사용하고 NAT 장비 뒤에 위치할 경우, 외부에서 해당 단말의 정확한 주소와 포트를 알 수 없어 직접적인 연결 설정이 어렵다. 이는 파일 공유, 음성 통화(VoIP), 온라인 게임 등 P2P 애플리케이션의 주요 장애 요인으로 작용한다.

이 문제를 해결하기 위해 NAT 트래버셀 기술이 활용된다. 핵심은 통신을 희망하는 양측 단말(A와 B)이 각자의 공인 주소와 포트 정보를 서로 교환하고, NAT 장비를 통과할 수 있는 경로를 확립하는 것이다. 일반적인 절차는 다음과 같다. 먼저, 양측은 STUN 서버에 접속하여 자신에게 할당된 공인 IP 주소와 포트를 확인한다. 이후 이 정보를 시그널링 채널(종종 중개 서버를 통해)을 이용해 상대방에게 전달한다. 양측이 서로의 주소 정보를 알게 되면, NAT 장비의 매핑 테이블을 유지시키기 위해 패킷을 지속적으로 보내는 '홀 펀칭' 기법을 사용하여 직접 연결을 시도한다.

기법

설명

주요 용도

홀 펀칭

각 클라이언트가 상대방의 공인 주소로 패킷을 보내 NAT 매핑을 생성한 후 직접 통신하는 기술

기본적인 P2P 연결 설정

STUN

클라이언트가 자신의 공인 주소와 포트를 확인하는 데 사용하는 프로토콜

NAT 매핑 정보 발견

TURN

직접 연결이 실패할 경우, 릴레이 서버를 통해 데이터를 중계하는 프로토콜

최후의 수단으로서의 릴레이 통신

ICE

STUN, TURN 및 직접 연결 등 가능한 모든 연결 경로를 탐색하고 최적의 경로를 선택하는 프레임워크

통합된 연결 경로 설정

그러나 대칭형 NAT과 같은 제한적인 NAT 유형에서는 홀 펀칭이 실패할 수 있다. 이 경우 TURN 서버를 릴레이 서버로 사용하는 방법이 최후의 수단으로 동작한다. ICE 프레임워크는 STUN을 통한 직접 연결 시도부터 TURN을 통한 릴레이에 이르기까지 가능한 모든 후보 경로를 체계적으로 수집하고 테스트하여 최상의 연결을 설정한다. 이러한 기술들의 조합을 통해 대부분의 NAT 환경에서도 P2P 통신이 가능해진다.

6. IPv6와 NAT

IPv4 주소의 고갈 문제를 해결하고 인터넷의 확장성을 높이기 위해 IPv6가 도입되었다. IPv6는 128비트 주소 체계를 사용하여 거의 무한에 가까운 주소 공간을 제공한다[6]. 이로 인해, 주소 절약을 위한 주요 동기 중 하나가 사라지면서 IPv6 환경에서 NAT의 필요성에 대한 논의가 활발히 진행되었다.

초기에는 IPv6 네트워크에서 NAT를 사용하지 않는 '종단 간(end-to-end) 연결성'의 원칙 회복을 지향했다. 각 장치가 고유한 공인 IP 주소를 가지므로, NAT 없이도 직접 통신이 가능해져 복잡성이 줄어들고 P2P 통신 등이 더욱 용이해질 것으로 기대되었다. 이 관점에서, IPv6 네트워크에서는 NAT를 배제하는 것이 바람직한 방향으로 여겨졌다.

그러나 실제 도입 과정에서는 네트워크 관리와 보안 정책 적용을 위한 수단으로서 NAT의 유용성이 다시 부각되었다. 특히, IPv6 NAT 또는 NPTv6(Network Prefix Translation)와 같은 변형 기술이 제안되기도 했다. 이러한 기술들은 주소 절약보다는 내부 네트워크 토폴로지 숨기기, 다중 홈딩(multihoming) 지원, 정책 기반 라우팅을 위한 도구로 활용된다.

결과적으로 IPv6 환경에서 NAT의 역할은 변화했다. 주소 변환의 필수성은 크게 줄었지만, 네트워크 운영상의 요구에 따라 선택적으로 적용되는 기술로 자리 잡았다. 장치마다 공인 주소를 부여하는 IPv6의 본래 목적과, 현실적인 네트워크 관리 요구사항 사이의 절충점을 찾는 과정이 계속되고 있다.

6.1. IPv6 도입 배경과 주소 공간

IPv4 주소의 고갈이 현실적인 위협으로 대두되면서, IPv6의 도입이 긴급한 과제로 부상했다. IPv4는 약 43억 개(2^32)의 주소만을 제공하는 반면, IPv6는 2^128개, 즉 약 3.4×10^38개의 거의 무한에 가까운 주소 공간을 제공한다. 이는 지구상의 모든 모래알 개수보다 많은 양으로, 모든 장치에 고유한 공인 IP 주소를 할당하는 것이 가능해진다.

IPv6 주소는 128비트로 구성되며, 16비트씩 8그룹으로 나누어 콜론(:)으로 구분하여 표현한다. 예를 들어, 2001:0db8:85a3:0000:0000:8a2e:0370:7334와 같은 형태를 가진다. 주소 표현을 간소화하기 위해 선행하는 0은 생략할 수 있으며, 연속된 0의 그룹은 '::'로 한 번만 압축하여 표현할 수 있다.

특성

IPv4

IPv6

주소 길이

32비트

128비트

주소 공간 크기

약 43억 개

약 3.4×10^38개

주소 표현법

점으로 구분된 10진수 (예: 192.168.1.1)

콜론으로 구분된 16진수 (예: 2001:db8::1)

주소 할당 방식

주로 DHCP를 통한 동적 또는 수동 할당

SLAAC(Stateless Address Autoconfiguration) 및 DHCPv6

주요 도입 목적

초기 인터넷 표준

주소 고갈 해결, 보안 및 성능 향상

이러한 방대한 주소 공간은 사설 IP 주소 체계와 NAT의 주된 존재 이유였던 주소 절약의 필요성을 근본적으로 줄여준다. 따라서 IPv6 환경에서는 종단 간 직접 통신이 더욱 용이해지고, 네트워크 구조가 단순화될 수 있는 기반을 마련했다.

6.2. IPv6 환경에서 NAT의 역할 변화

IPv6의 도입은 거의 무한에 가까운 주소 공간을 제공하여, IPv4 환경에서 사설 IP 주소와 공인 IP 주소를 구분하고 변환해야 했던 근본적인 압박을 크게 완화시켰다. 이론적으로는 모든 장치에 고유한 공인 IP 주소를 할당하는 것이 가능해졌기 때문에, 주소 절약을 위한 NAT의 기본적인 필요성은 사라졌다. 따라서 초기 IPv6 설계에서는 NAT를 배제하고 종단 간(end-to-end) 연결성을 복원하는 것을 목표로 했다[7].

그러나 실제 IPv6 배포 과정에서는 보안이나 네트워크 관리 측면에서 NAT와 유사한 기능에 대한 요구가 여전히 존재한다. 예를 들어, 내부 네트워크 토폴로지를 외부에 숨기려는 요구는 IPv6에서도 지속된다. 이에 대응하여 IPv6에서는 전통적인 주소 변환 대신 프리픽스 변환 (Prefix Translation)이나 방화벽 필터링 정책을 활용한 네트워크 분리 방식이 더 권장된다. CGNAT와 같은 대규모 변환 기술은 IPv4 주소 고갈을 완화하기 위한 과도기적 솔루션으로 남아, IPv6-only 네트워크와 IPv4 인터넷을 연결하는 데 일부 사용된다.

결과적으로, IPv6 환경에서 NAT의 역할은 '주소 절약'에서 '네트워크 관리 및 정책 적용' 도구로 변화했다. 순수 IPv6 네트워크에서는 NAT 없이도 충분한 주소 할당과 강력한 보안 정책 구현이 가능하지만, IPv4와의 공존 기간 동안에는 변환 기술이 계속 필요할 수 있다.

7. 관련 기술 및 프로토콜

포트 포워딩은 정적 NAT의 특수한 형태로, 외부 네트워크의 특정 포트로 들어오는 연결을 내부 네트워크의 특정 사설 IP 주소와 포트로 고정적으로 전달하는 기술이다. 주로 내부 네트워크에 위치한 웹 서버, 게임 서버, 원격 접속 서비스 등을 외부에 공개해야 할 때 사용된다. 라우터나 방화벽에서 사전에 규칙을 설정하여, 외부에서 공인 IP의 특정 포트로 접속하는 트래픽을 내부의 지정된 장치로 안내한다.

NAPT는 PAT와 동의어로 사용되며, 가장 일반적인 NAT 동작 방식을 지칭한다. NAPT는 여러 내부 호스트가 하나의 공인 IP 주소를 공유할 수 있도록, IP 주소뿐만 아니라 TCP/UDP 포트 번호까지 함께 변환한다. 이를 통해 포트 번호를 키로 사용하여 각 연결 세션을 구분하고 관리한다. 이 방식은 주소 변환의 극대화를 가능하게 하여, 수백 대의 장치가 단일 공인 IP로 외부와 통신할 수 있게 한다.

다음 표는 포트 포워딩과 NAPT의 주요 특징을 비교한 것이다.

특징

포트 포워딩

NAPT (PAT)

주요 목적

외부에서 내부 서비스로의 인바운드 연결 허용

내부 다수 호스트의 아웃바운드 연결을 위한 주소 절약

매핑 방식

(공인 IP:특정 포트) ↔ (사설 IP:특정 포트)의 고정 매핑

(사설 IP:임의 포트) ↔ (공인 IP:임의 포트)의 동적 매핑

연결 방향

주로 외부에서 시작되는 연결(인바운드)을 위해 설계

주로 내부에서 시작되는 연결(아웃바운드)을 처리

주소 사용 효율

한 공인 IP 포트당 하나의 내부 호스트만 매핑 가능

한 공인 IP로 수많은 내부 호스트와 세션을 동시 처리 가능

이러한 기술들은 기본적인 NAT의 개념을 확장하여, 현대 네트워크 환경에서 필수적인 주소 관리, 보안, 서비스 배포 기능을 제공한다.

7.1. 포트 포워딩 (Port Forwarding)

포트 포워딩은 네트워크 주소 변환의 한 형태로, 라우터나 방화벽과 같은 네트워크 게이트웨이 장치가 외부 네트워크(예: 인터넷)에서 들어오는 특정 포트의 통신 요청을 내부 네트워크의 특정 장치로 전달하도록 정적으로 매핑하는 기술이다. 이를 통해 내부 네트워크에 위치한 서버(예: 웹 서버, 게임 서버, FTP 서버)를 공인 IP 주소를 직접 할당하지 않고도 외부에서 접근할 수 있게 한다.

동작 원리는 다음과 같다. 관리자는 라우터의 설정에서 외부 포트 번호, 내부 대상 장치의 사설 IP 주소, 그리고 해당 장치에서 사용할 내부 포트 번호를 지정한다. 예를 들어, 외부 포트 80의 요청을 내부 IP 192.168.1.100의 포트 80으로 전달하도록 설정하면, 외부 사용자가 라우터의 공인 IP 주소로 웹 접속(포트 80)을 시도할 때 라우터는 그 요청을 자동으로 내부의 지정된 서버로 리디렉션한다.

설정 항목

설명

예시

외부 포트 (WAN Port)

라우터가 외부에서 청취하는 포트 번호

80, 443, 25565

내부 IP 주소 (LAN IP)

패킷을 전달할 내부 네트워크 장치의 주소

192.168.1.100

내부 포트 (LAN Port)

내부 장치에서 서비스가 실행 중인 포트 번호

80, 3389

포트 포워딩은 주로 정적 NAT 방식으로 구현되며, 매핑 관계가 고정되어 있다는 점에서 동적 NAT나 PAT와 구분된다. 이 기술은 홈 네트워크에서 원격 데스크톱, 파일 공유, 또는 멀티플레이어 게임 호스팅을 위해 널리 사용된다. 그러나 특정 포트를 열어둠으로써 해당 내부 장치에 대한 직접적인 공격 경로가 생길 수 있어, 보안 설정을 신중하게 관리해야 한다는 단점도 있다[8].

7.2. NAPT (Network Address Port Translation)

NAPT는 PAT와 동의어로, 하나의 공인 IP 주소를 여러 개의 사설 IP 주소가 공유하도록 하는 주소 변환 기술이다. 동적 NAT가 사설 IP와 공인 IP를 1:1로 매핑하는 반면, NAPT는 포트 번호를 추가적으로 변환함으로써 하나의 공인 IP로 수천 개의 내부 호스트 연결을 동시에 처리할 수 있다. 이는 주로 IPv4 주소 고갈 문제를 극복하기 위해 광범위하게 사용되는 방식이다.

NAPT의 동작 원리는 다음과 같다. 내부 네트워크의 호스트가 외부로 패킷을 전송하면, NAT 장비(예: 라우터 또는 공유기)는 출발지의 사설 IP 주소와 포트 번호를 자신의 공인 IP 주소와 새로운 임시 포트 번호로 변환한다. 이 변환 정보는 NAT 테이블에 기록된다. 외부에서 들어오는 응답 패킷은 목적지 포트 번호를 확인하여, NAT 테이블을 참조해 원래의 내부 호스트 IP와 포트로 다시 변환하여 전달한다. 이를 통해 단일 공인 IP로도 내부의 여러 장치가 각기 다른 포트를 통해 인터넷에 동시 접속할 수 있다.

변환 유형

IP 주소 변환

포트 번호 변환

주소 매핑 관계

정적 NAT

O

X

사설 IP 1개 ↔ 공인 IP 1개 (고정)

동적 NAT

O

X

사설 IP 1개 ↔ 공인 IP 풀의 1개 (동적)

NAPT (PAT)

O

O

사설 IP:포트 여러 개 ↔ 공인 IP 1개:포트 여러 개

NAPT는 현대의 대부분의 가정용 네트워크와 소규모 사무실 네트워크에서 표준적으로 사용된다. 그러나 모든 내부 세션이 하나의 공인 IP를 공유하기 때문에, 외부에서 내부의 특정 서버(예: 웹 서버, 게임 서버)로의 직접적인 인바운드 연결을 설정하기 어렵다는 단점이 있다. 이 문제는 포트 포워딩이나 DMZ 설정을 통해 해결할 수 있다. 또한, IPsec이나 FTP의 일부 모드와 같이 패킷 데이터 내부에 IP 주소나 포트 정보를 포함하는 특정 프로토콜은 추가적인 ALG 지원 없이 NAPT를 통과하기 어려울 수 있다.

8. 여담 및 참고

네트워크 주소 변환은 IPv4 주소 고갈 문제를 해결하기 위한 임시 방편으로 고안되었지만, 예상보다 훨씬 오랫동안 네트워크 인프라의 핵심 요소로 자리 잡았다. 이 기술의 광범위한 채택은 인터넷의 확장을 가능하게 했으나, 동시에 엔드투엔드 원칙을 훼손하고 네트워크 아키텍처를 복잡하게 만들었다는 비판도 존재한다[9]].

일부 네트워크 전문가들은 NAT를 "필요악"으로 간주한다. 주소 절약과 기본적인 방화벽 효과라는 실용적 이점이 있지만, P2P 응용 프로그램, VoIP, 온라인 게임 등 직접 연결이 필요한 서비스에는 장벽으로 작용하기 때문이다. 이로 인해 NAT 트래버셀과 같은 별도의 기술이 발전하게 되었다.

NAT의 보안적 이점은 종종 과장되어 이해되기도 한다. NAT 자체가 강력한 보안 솔루션은 아니며, 단순히 내부 네트워크 토폴로지를 숨기는 역할을 한다. 실제 보안은 주로 상태 기반 패킷 필터링 기능에 의존하며, 이는 전용 방화벽 없이도 NAT 장비가 제공하는 기본적인 기능이다.

구분

내용

비고

예상된 역할

IPv4 주소 고갈을 완화하기 위한 일시적 전환 기술

실제 역할

주소 변환, 기본적인 보안, 네트워크 관리 도구로 영구적 정착

주요 비판점

엔드투엔드 통신을 복잡하게 만들고, 특정 프로토콜과의 호환성을 떨어뜨림

보안에 대한 오해

NAT 자체가 강력한 보안 장치라는 인식

실제 보안은 동반된 상태 기반 필터링에서 옴

IPv6의 본격적 도입은 이론적으로 NAT의 필요성을 크게 줄인다. 거의 무한에 가까운 주소 공간으로 인해 모든 장치에 공인 주소를 할당하는 것이 가능해지기 때문이다. 그러나 현실에서는 여전히 네트워크 관리 정책, 레거시 시스템 호환성, 그리고 여전히 유효하다고 간주되는 보안 장벽의 개념 때문에 IPv6 네트워크에서도 NAT 유사 기술이 사용되는 경우가 있다.

리비전 정보

버전r1
수정일2026.02.14 21:21
편집자unisquads
편집 요약AI 자동 생성