🔄
NAT(네트워크 주소 변환)란
집이나 회사 내부에서 쓰는 사설 IP 주소를, 인터넷에서 통하는 공인 IP 주소로 서로 변환해주는 라우터의 핵심 기능입니다.
우리 집 공유기에 연결된 노트북, 스마트폰, TV는 각각 192.168.0.x 같은 사설 IP 주소를 갖지만, 인터넷에는 통신사가 공유기에 부여한 공인 IP 주소 하나로만 나갑니다. 공유기가 내부 기기의 요청이 나갈 때는 출발지 주소를, 응답이 돌아올 때는 목적지 주소를 서로 바꿔치기하면서 여러 기기가 하나의 공인 IP를 함께 쓸 수 있게 해주는 것이 NAT입니다.
🌍
NAT이 필요한 이유: IPv4 주소 고갈
전 세계에 할당 가능한 IPv4 주소는 약 43억 개뿐이라, 기기마다 공인 IP를 하나씩 줄 수 없어 등장한 절충안이 NAT입니다.
스마트폰, 노트북, IoT 기기까지 인터넷에 연결되는 장치 수가 IPv4 주소 개수를 훨씬 넘어선 지 오래입니다. 만약 모든 기기가 공인 IP를 하나씩 가져야 한다면 진작에 주소가 바닥났겠지만, NAT 덕분에 집 안의 수십 개 기기가 통신사가 준 공인 IP 주소 단 하나만으로도 동시에 인터넷을 쓸 수 있습니다. 근본적인 해결책은 주소 공간이 훨씬 넓은 IPv6로 전환하는 것이지만, 그 전환이 끝날 때까지 NAT이 사실상 필수적인 다리 역할을 해왔습니다.
🔢
PAT(포트 주소 변환): 가정용 공유기의 실제 동작 방식
공인 IP 하나를 여러 기기가 나눠 쓸 수 있는 건, IP 주소뿐 아니라 포트 번호까지 함께 바꿔주는 PAT(NAPT) 방식 덕분입니다.
노트북과 스마트폰이 동시에 인터넷에 접속해도 서로 구분이 되는 이유는, 공유기가 내부 기기별 (사설 IP, 포트) 조합을 공인 IP의 서로 다른 포트 번호에 매핑하기 때문입니다. 예를 들어 노트북의 요청은 공인 IP의 40001번 포트로, 스마트폰의 요청은 40002번 포트로 내보내고, 응답이 돌아오면 포트 번호를 보고 어느 기기로 돌려줘야 할지 구분합니다. 가정용 공유기가 쓰는 방식이 바로 이 PAT(Port Address Translation), 흔히 NAPT라고도 부르는 방식입니다.
📋
NAT 변환 테이블: 매핑 정보를 기억하는 장부
공유기는 내부 IP·포트와 외부로 나가는 IP·포트의 대응 관계를 NAT 테이블(변환 테이블)에 기록해두고, 응답이 돌아올 때 이 표를 참고해 되돌려줍니다.
연결이 새로 생길 때마다 공유기는 "내부 192.168.0.5:51000이 외부로 나갈 때는 공인IP:40001로 나간다"는 식의 항목을 임시로 만들어 관리합니다. 이 항목은 통신이 끝나거나 일정 시간 동안 응답이 없으면 자동으로 지워지는데, 게임이나 화상통화처럼 오랫동안 연결을 유지해야 하는 서비스에서 이 항목이 예상보다 일찍 지워지면 연결이 끊기는 문제가 생기기도 합니다.
🗂️
정적 NAT과 동적 NAT의 차이
사설 IP 하나와 공인 IP 하나를 고정으로 짝지어주는 정적 NAT과, 필요할 때마다 사용 가능한 공인 IP 풀에서 하나를 빌려주는 동적 NAT으로 나뉩니다.
정적 NAT은 항상 같은 공인 IP로 매핑되어야 하는 서버 등에 쓰이며, 외부에서 특정 내부 장비로 항상 접근할 수 있어야 할 때 적합합니다. 동적 NAT은 여러 개의 공인 IP 주소 풀을 두고 필요한 시점에만 하나씩 임시로 배정하는 방식으로, 기업 네트워크에서 제한된 공인 IP를 여러 사용자가 돌아가며 쓸 때 활용됩니다. 다만 가정용 공유기에서 우리가 실제로 매일 사용하는 방식은 이 둘보다는 앞서 설명한 PAT에 훨씬 가깝습니다.
🚧
NAT의 한계: 포트포워딩과 P2P 연결의 어려움
NAT은 기본적으로 내부에서 시작한 통신에만 응답을 돌려주므로, 외부에서 먼저 내부 기기로 접속을 걸어오는 상황은 별도 설정 없이는 막혀 있습니다.
집에서 운영하는 홈서버나 게임 콘솔의 P2P 매칭처럼 외부에서 먼저 내 기기로 접속해야 하는 경우, NAT 뒤에 있으면 기본적으로 연결이 되지 않습니다. 이를 해결하려면 특정 포트를 미리 지정한 내부 기기로 열어주는 포트포워딩이나, 필요할 때 자동으로 포트를 여는 UPnP 같은 기능을 함께 써야 합니다. 온라인 게임에서 나타나는 NAT 유형(Open·Moderate·Strict) 문제도 결국 이 한계에서 비롯됩니다.
🛡️
NAT의 부수적인 보안 효과
NAT은 보안 기능으로 설계된 것은 아니지만, 외부에서 임의로 내부 기기에 접속하는 것을 기본적으로 차단해 방화벽과 비슷한 부수 효과를 냅니다.
외부의 공격자가 내 공인 IP로 접속을 시도해도, NAT 테이블에 해당 연결에 대한 항목이 없으면 공유기는 이 트래픽을 어느 내부 기기로 보내야 할지 알 수 없어 자연히 버립니다. 이 덕분에 가정용 네트워크는 별다른 설정 없이도 어느 정도 보호를 받지만, 이는 어디까지나 NAT의 동작 원리에서 나오는 부수적인 결과일 뿐 정식 방화벽을 대체할 수는 없다는 점을 기억해야 합니다.