NAT 테이블 (NAT Table) 기초
NAT 테이블은 NAT(Network Address Translation) 장치(주로 라우터)가 사설(Private) IP 주소와 공인(Public) IP 주소를 서로 변환할 때 사용하는 주소 변환 기록부입니다. 이는 IPv4 주소 고갈 문제의 해결책인 NAT 기술의 핵심 요소입니다.
1. NAT의 역할과 테이블의 필요성
① NAT의 역할
NAT는 사설 네트워크(예: 가정이나 회사 내부망)의 장치들이 공인 IP 주소를 공유하여 외부 인터넷과 통신할 수 있게 해줍니다.
- 발신 시: 내부 사설 IP 주소 $\rightarrow$ 외부 공인 IP 주소로 변환
- 수신 시: 외부 공인 IP 주소 $\rightarrow$ 내부 사설 IP 주소로 역변환
② 테이블의 필요성
외부에서 들어오는 응답 패킷을 NAT 라우터가 받았을 때, 이 패킷이 내부 네트워크의 어떤 장치(어떤 사설 IP)로 가야 하는지 정확히 알기 위해 NAT 테이블이 필요합니다.
2. NAT 테이블의 구조와 작동 원리
NAT의 종류에 따라 테이블에 저장되는 정보가 달라집니다. 가장 흔히 사용되는 NAPT (Network Address and Port Translation, 또는 PAT) 방식을 기준으로 설명합니다.
NAPT는 하나의 공인 IP 주소에 포트 번호를 추가하여 다수의 사설 IP 주소를 맵핑합니다.
| 필드 | NAT 테이블에 저장되는 정보 | 설명 |
|---|---|---|
| 사설 주소 (Private IP) | 내부 장치의 사설 IP 주소 | 192.168.1.10 |
| 사설 포트 (Private Port) | 내부 장치가 사용한 포트 번호 | 50000 |
| 공인 주소 (Public IP) | NAT 라우터의 공인 IP 주소 | 203.0.113.5 |
| 공인 포트 (Public Port) | 외부 통신을 위해 변환된 포트 번호 | 12345 |
작동 과정 (NAPT 예시)
- 발신: 내부 장치 A (
192.168.1.10:50000)가 외부에 데이터를 요청하면, 라우터는 이 요청을 변환하여203.0.113.5:12345로 내보냅니다. - 테이블 기록: 라우터는
(192.168.1.10, 50000) $\leftrightarrow$ (203.0.113.5, 12345)를 테이블에 기록합니다. - 수신: 외부 서버가
203.0.113.5:12345로 응답을 보냅니다. - 역변환: 라우터는 테이블을 조회하여 포트 번호
12345가 내부의192.168.1.10:50000에 대응됨을 확인하고, 응답 패킷의 목적지 주소를 변환하여 장치 A에게 정확하게 전달합니다.
3. 테이블의 관리
- 유효 기간 (Timeout): 불필요한 엔트리(기록)가 쌓이는 것을 막기 위해, 일정 시간(Timeout) 동안 사용되지 않은 엔트리는 테이블에서 삭제됩니다.
- 충돌 방지: 만약 두 개의 내부 장치가 같은 포트 번호로 동시에 외부 서버에 접속하려 하면, NAPT는 내부 포트 번호를 다른 공인 포트 번호로 변환하여 충돌을 방지합니다.