NAT

iamyoungbin·2024년 6월 26일

Network

목록 보기
2/2

NAT

NAT(Network Address Translation)이란 IP 패킷에 있는 소스와 목적지 주소를 재기록하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술이다. NAT을 이용하면 다음과 같은 이점이 있다.

  1. NAT 기술을 이용하면 하나의 공인망 IP 주소를 통해 여러 호스트가 통신을 할 수 있다. 이를 통해 IP 개수에 제한이 있는 IPv4에서 ip 주소의 고갈을 줄일 수 있다.
  2. 라우터를 통해 외부로 트래픽이 나갈 때 IP 주소가 바뀌기 때문에 내부 네트워크 및 호스트들에 대한 보안 기능이 있다.

동작원리

공유기에 연결된 컴퓨터로 통신할 경우, 컴퓨터에서 나오는 트래픽은 공유기(라우터)를 항상 거치게 되어 있다. 컴퓨터의 사설망 IP 주소를 그대로 이용할 경우, 수신 측이 답장을 보낼 때 해당 IP 주소에 대한 정보가 없으므로 어느 경로로 패킷을 보내야 할지 알 수 없다.

따라서 라우터는 트래픽이 나갈 때, 소스 IP 주소를 자신의 공인망 IP 주소로 바꾼 뒤 패킷을 전송한다. 이를 받은 수신 측은 소스 주소를 목적지 주소로 하여 라우터로 재발송한다.

하지만, 이 과정에서 라우터가 패킷을 받을 뿐 기존 소스 주소인 컴퓨터로 보내지지 않는다. 따라서 라우터는 내부 네트워크에서 트래픽이 나갈 때 테이블을 통해 기존 소스 주소를 기억한다.

프로토콜사설 IP 주소라우터 IP 주소목적지 IP 주소
TCP10.0.0.215.0.0.1175.118.89.129

NAT의 문제점과 NAPT

여러 호스트가 같은 목적지 주소로 패킷을 보낸 상황의 NAT 테이블은 다음과 같다.

프로토콜사설 IP 주소라우터 IP 주소목적지 IP 주소
TCP10.0.0.215.0.0.1175.118.89.129
TCP10.0.0.315.0.0.1175.118.89.129

이 때, 목적지로부터 라우터 주소인 15.0.0.1을 목적 주소로 하는 패킷이 발송되면 라우터는 어떤 사설 IP 주소로 보내진 패킷인지 구별할 수 없다.

따라서 포트 넘버를 같이 기록하는 NAPT(Network Address Port Translation)를 이용하여 이를 해결한다. 위와 같은 상황에서 NAPT 테이블이 다음과 같다고 가정하자.

프로토콜사설 IP 주소사설 포트 넘버라우터 IP 주소라우터 포트 넘버목적지 IP 주소
TCP10.0.0.25015.0.0.110001175.118.89.129
TCP10.0.0.35115.0.0.110002175.118.89.129

이 때, 15.0.01을 목적 주소로 하는 패킷이 발송되더라도 수신 패킷의 라우터 포트 넘버를 통해 어떤 사설 IP 주소로 온 패킷인지 구분할 수 있다.


Symmetric NAT

0개의 댓글