개발은 아름다워

인터넷 공유기는 어떻게 작동할까? (NAT 기술을 이해하기) 본문

네트워크

인터넷 공유기는 어떻게 작동할까? (NAT 기술을 이해하기)

do_it_zero 2024. 12. 27. 15:34

작동 흐름을 크게 보자면 아래와 같습니다.

로컬 네트워크 장치 -> 게이트웨이 -> 공용 ip 주소 -> 인터넷  

 

세부적으로 어떻게 작동하는지 알아보겠습니다.

공용 ip주소와 사설 ip주소

1. 공용  ip주소란?

: 인터넷 서비스 제공업체에서 공유기에  할당한  ip주소이며, 인터넷 상에서 고유한 주소 입니다. 

 

# 역할

- 전 세계적으로 고유하며, 인터넷과 통신하기 위해 사용

 

2. 사설 IP주소란?

: 공유기에 연결된 각 장치에 할당하는 IP주소로, 외부 인터넷에서는 직접 접근할 수 없는 주소입니다.

 

# 역할

- 로컬 네트워크 내 장치 간의 통신

- NAT(Network Address Translation)을 통해 공용 IP와 매핑하여 인터넷에 접근합니다.

NAT란?

공용 ip와 사설 ip 주소 간의  변환을 담당하는 기술입니다.

공유기 운영체제의 커널 네트워크 스택에서 수행됩니다.

 

NAT는 기본적으로 로컬 네트워크의 장치가 아웃바운드를 보낼 때 트리거가 됩니다.

공유기는 요청 패킷의 소스 ip주소와 포트를 공용 ip주소와 포트로 변환한 후 NAT 테이블에 기록합니다.

 

NAT 테이블에는 다음 정보가 저장됩니다.

- 로컬 네트워크의 사설 ip와 포트

- 변환된 공용 ip와 포트

- 외부 서버의 ip와 포트

 

또한 통신 방식과 보안 요구사항에 따라 Symmetric NAT와 Cone NAT로 나뉩니다.

 

1. Symmetric NAT

# 특징

- NAT 테이블에 외부 서버의 ip와 포트 정보가 함께 저장됩니다.

- 동일한 내부 장치라도 외부 서버가 달라질 경우, 각각 다른 공용 ip/포트 매핑이 생성됩니다.

- NAT 테이블의 매핑은 내부 ip포트 <-> 공용 ip포트 <-> 외부 서버 ip 포트 형태입니다.

 

# 통신 방식

- NAT 테이블에 매핑된 외부 서버와만 통신이 가능합니다. 

- 외부 서버가 동일하지 않은 경우, 기존의 매핑은 재사용되지 않으므로 다른 서버와 연결하려면 새로운 매핑이 필요합니다. 즉, 외부에서 불필요한 접근을 제한할 수 있으므로 보안성이 높습니다.

 

2. Cone NAT

# 특징

- NAT 테이블은 내부 ip포트 <-> 공용 ip 포트 매핑만 저장합니다.

- 매핑이 생성되면 외부의 어떤 서버든 해당 공용 ip/포트를 통해 접근할 수 있습니다.

- 외부에서의 접근 가능성이 높아서 보안성이 낮습니다. 

- Full cone , Restriceted cone, Port Restricted cone 등의 방식이 있습니다. 

 

# 통신 방식

- 로컬 네트워크가 한번 외부로 패킷을 보내 NAT 테이블에 매핑이 생성되면, 외부에서 해당 공용 ip/포트로 들어오는 패킷을 허용합니다.

- 외부 서버는 NAT 테이블의 매핑을 참조하여 내부 장치와 연결을 유지할 수 있습니다. 따라서 P2P 연결이 상대적으로 용이합니다. 

 

포트 포워딩

 또한 인터넷 공유기의 NAT 테이블에 특정 포트 매핑 규칙을 수동으로 설정할 수 있습니다.

이를 통해 외부에서 특정 공용 ip와 포트로 들어오는 요청을 로컬 네트워크의 특정 장치로 전달할 수 있습니다.

쉽게 말하면, 다른 사람이 직접 수정된 NAT 테이블 포트로 통신을 할 수 있다는 것입니다. 

 

# 포트 포워딩 동작 원리

- 외부 요청 수신 : 외부 장치가 공용 ip 주소와 포트 번호를 사용하여 공유기로 요청을 보냅니다.

- 공유기에서 NAT 테이블 확인 : 공유기는 NAT 테이블에 사전에 설정된 포트 포워딩 규칙을 확인합니다. 해당 요청이 포트 포워딩 규칙에 해당하면, 이를 지정된 로컬 ip와 포트 번호로 전달합니다.

- 로컬 네트워크로 요청 전달: 요청이 포트 포워딩 규칙에 따라 로컬 네트워크의 특정 장치로 전달됩니다. 이 과정에서 외부 클라이언트는 로컬 네트워크의 내부 ip를 알 필요가 없습니다.