Studyyyyy
NAT (Network Address Translation) 본문
- NAT란?
- 사설 IP <-> 공인 IP로 변환시켜주는 기술
- 필요한 이유 / 배경
- 초창기 인터넷은 IPv4로 IP를 할당받았지만, 인터넷 보급이 늘어남에 따라 IP 생성에 한계가 생겨 한정된 공인 IP주소를 여러 내부 장비들이 공유할 수 있도록 만들어진 것이 NAT이다.
- 사설 IP로는 외부 인터넷에 접근이 불가능하기 때문에 공인 IP로 변환하여 접근을 도와주는 역할도 포함한다.
- 동작 원리
- NAT장비(공유기, 라우터..)가 중간에서 사설 IP <-> 공인 IP 변환
- 포트 번호를 이용하여 각 장비와의 연결 구분(PAT)
- 구성 요소
- IP 저장 매핑 테이블
- 타이머 / 세션 관리 : NAT 테이블에 저장된 매핑은 일정 시간동안만 유지되며, 클라이언트에서 통신을 멈출 시 매핑은 자동으로 삭제
- 실생활 / 실무 예시
- 하나의 공유기로 여러 사람이 같은 공인 IP 하나를 공유
- localhost:3000으로 개발 중 맥엔드 api 호출 시 사설 IP에서 외부 요청 -> NAT가 공인 IP로 변환
- CORS 에러 : 클라이언트는 사설망에, 서버는 공인망에 있을 때 발생
- API 서버 접근 제한(보안)
- 백엔드 서버가 특정 공인IP만 허용할 경우(화이트리스팅) NAT 뒤에 있는 클라이언트는 출발지 IP가 NAT된 주소로 인식됨
- 프록시 서버나 VPN을 설정해야 접근 가능
- 관련 개념
- DHCP
- 더 찾아볼 요소
- 프록시 서버
- NAT는 내부에서 먼저 요청이 있어야 그에 대한 응답을 받아들일 수 있다.
- 내부에서 먼저 요청한 경우
- 내부 PC에서 외부 인터넷으로 데이터 요청 | ex) 192.168.0.2:12345 → google.com:443
- NAT가 이를 변환(공인 IP:54321 → google.com:443), NAT 테이블에 매핑 정보 저장 | ex) 54321 → 192.168.0.2:12345
- 인터넷에서 응답 전송 ex) → 공인 IP:54321
- NAT가 테이블 확인 후 원래 장치로 전달 ex) → 192.168.0.2:12345
- 외부에서 먼저 요청하는 경우(내부 장치 호출) -> 요청 거부
- 해결방안
- 포트 포워딩(Port Forwading)
- 외부에서 오는 특정 포트 요청을 내부 장비로 강제 라우팅하는 설정
- DMZ
- NAT Traversal(VPN 등)
- 포트 포워딩(Port Forwading)
- 해결방안
- 내부에서 먼저 요청한 경우
LAN에서 사용하는 사설 IP 주소와 인터넷에서 사용할 수 있는 공인 IP 주소를 상호 변환하는 기술로, 라우터 등에 구현되어 있다.
인터넷 세계에서는 공인 IP 주소를 사용하여 통신하지만, IP 주소는 32비트 숫자이므로 발행할 수 있는 수에 한계가 있다. 따라서 LAN 같은 조직의 네트워크에서는 일반적으로 각 컴퓨터에 사설 IP 주소를 할당한다. 그러나 사설 IP 만으로는 인터넷과 통신할 수 없기 때문에 인터넷에 액세스할 때만 주소 변환 이라는 방법을 사용해 공인 IP 주소로 변환해야 한다. 여기에 사용하는 것이 NAT(Network Address Translation)이다.
NAT에 의한 주소 변환은 패킷(데이터)을 재작성함으로써 이루어진다. 통과하는 패킷은 상시 감시되고, 인터넷으로 나가는 패킷이 전송되었을 때는 그 패킷의 송신처 IP주소를 NAT에서 관리하고 있는 공인 IP 주소로 재작성해 송신한다. 이 때 변환한 원래의 사설 IP 주소는 기억해두고, 인터넷에서 받은 패킷에 대해서는 송신처 IP 주소를 사설 IP 주소에 재작성해 LAN에 보낸다. 즉, 내부에서는 사설 IP 주소를 사용하면서도 외부와의 통신에는 자동으로 공인 IP 주소가 사용되는 것이다.
이러한 구조이므로, NAT에 의한 주소 변환은 항상 공인 IP 주소와 사설 IP 주소가 1:1로 대체된다. 따라서 NAT은 소유하고 있는 공인 IP 주소의 수 이상으로 동시에 인터넷과 통신할 수 없다.
'study' 카테고리의 다른 글
RSA (0) | 2025.07.14 |
---|---|
HTTPS, SSL (0) | 2025.07.14 |
서브넷 마스크 (0) | 2025.07.13 |
DHCP (Dynamic Host Configuration Protocol) (0) | 2025.07.13 |