네트워크

NAT, DHCP, 포트포워딩

be_en 2025. 3. 2. 20:41

NAT(Network Address Translation)

네트워크 주소 변환(이하 NAT)은 컴퓨팅 네트워킹에서 쓰는 용어로서, IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술이다.

NAT를 이용하는 이유

사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다.

이를 통해 IPv4의 한정된 주소를 모든 네트워크 기기에 할당하지 않아도 되기 때문에 주소 고갈 문제를 막을 수 있다.

단점으로는 P2P(Peer To Peer) 통신을 할 때 사용자가 NAT를 통해야 하는 경우 포트포워딩이라는 작업을 해줘야 서로 통신할 수 있다.

(예를 들어 워크래프트 사용자 지정 게임으로 방 만들 때 이런 작업을 해야 한다.)

 

그럼 사설 IP는 누가 할당하는데? - DHCP Server!

사설 IP(Private IP)는 DHCP(Dynamic Host Configuration Protocol) Server의 역할을 하는 기기(공유기)에서 Client가 할당 받는다.

대표적인 사설 IP를 할당해주는 DHCP Server는 공유기이다.

 

사설 IP 대역은 다음과 같다. (로컬 네트워크 안에서 주소 충돌 방지)

10.0.0.0 ~ 10.255.255.255

172.16.0.0 ~ 172.31.255.255

192.168.0.0 ~ 192.168. 255. 255

 

 

DHCP Server는 임대, 갱신, 반환의 과정으로 IP를 관리한다.

1. 임대

IP를 할당해주는 것을 임대(Lease)라고 한다. 이 임대에는 임대 기간이 있다. 임대 기간이 끝나면 해당 IP 주소는 DHCP 주소 풀로 반환이 된다. 임대 기간은 기본이 8일이며, 장소에 따라서 적합한 값을 찾아서 설정할 수 있다. 카페같이 유동인구가 많은 지역은 임대 기간을 8일로 두면 주소가 금방 고갈될 것이므로 2~3시간 정도로 짧게 설정하는 편이 좋다.

2. 갱신

임대 기간을 갱신하는 것이다. 이는 임대 기간 중 2번 발생할 수 있다.

임대 기간의 50%가 되었을 때 한 번 갱신 시도를 한다. 만일 이 첫 번째 시도가 모종의 이유로 실패한다면, 87.5%의 시간이 지났을 때 다시 갱신 시도 한다. 갱신에 성공한다면 그 시점을 기준으로 임대 기간이 다시 채워진다.

3. 반환

임대 기간이 끝났거나, IP 주소를 더 이상 사용하지 않는다면 DHCP 서버에 IP 주소를 반환한다.

DHCP 서버와 클라이언트 모두 임대 기간에 대한 정보를 가지고 있기 때문에, 임대 기간이 끝났는데 클라이언트가 연결되지 않았더라도 해당 주소를 사용 가능하도록 주소 풀로 보낸다.

 

우리가 카페에 가서 노트북에 와이파이를 연결하는 과정을 생각해보자.

공유기의 와이파이에 연결되면 공유기는 특정 사설 IP를 나의 노트북에 할당해준다.

작업을 마치고 카페에서 나오게 되면 연결이 끊어지게 되고 해당 사설 IP는 공유기로 반환된다.

포트포워딩

"공유기로 들어오는 패킷 중에 N번 포트로 들어오는 패킷은 내게로 포워딩해줘"

라고 공유기에 관련 정보를 등록하는 것이다.

이는 공유기 내부에 매핑 테이블에 포트 번호를 기준으로 목적지의 사설 IP를 식별할 수 있게 된다.

 

외부 네트워크의 호스트가 내부 네트워크의 특정 호스트와 P2P 연결을 할 때 필요하다.