네트워크 기초

한 줄 요약

네트워크는 주소(MAC/IP) 를 가진 노드들이 데이터를 주고받는 구조이며, 공유기·NAT·DHCP 같은 메커니즘이 이 흐름을 제어한다.


1. 노드와 주소

네트워크에서 노드란 주소를 가진 장치(서버, PC, 스마트폰 등)를 의미한다.

주소 종류통신 범위특징
MAC 주소같은 네트워크(LAN) 내부하드웨어에 고정된 물리 주소
IP 주소다른 네트워크(WAN) 간논리 주소, 변경 가능

2. 공유기 — 올인원 네트워크 장비

가정용 공유기는 여러 역할을 동시에 수행한다.

역할설명
AP (Access Point)무선 신호(Wi-Fi)를 뿌려주는 안테나
Router외부 인터넷(WAN)과 내부 네트워크(LAN)를 연결하는 길잡이
SwitchLAN 안에서 기기들끼리 데이터를 주고받게 연결
DHCP Server연결되는 기기에 IP 주소를 자동으로 할당하는 번호표 발행기

3. DHCP — 자동 IP 할당

노드가 공유기에 연결되면 DHCP(Dynamic Host Configuration Protocol)가 자동으로 사설 IP를 부여한다.

  • 프로토콜: UDP 67번(서버) / 68번(클라이언트), 브로드캐스트 방식
  • IP를 임대(lease) 하는 방식이므로, 일정 시간이 지나면 갱신하거나 반환한다.

고정 IP가 필요한 경우

방법설명
Static IP기기에 직접 고정 IP를 수동 설정
IP 예약공유기 설정에서 특정 MAC 주소에 특정 IP를 매핑
DNS 등록도메인 이름을 붙여 주소를 고정적으로 참조

DHCP Pool 소진

Wi-Fi 연결은 됐는데 인터넷이 안 되거나 “IP 구성 오류”가 뜬다면, DHCP 서버가 나눠줄 수 있는 IP 주소(Pool)가 바닥났을 수 있다.

클라우드에서의 DHCP

요즘 개발자는 물리 공유기보다 VPC(Virtual Private Cloud)나 쿠버네티스 환경을 더 많이 접한다. 내부 네트워크 엔진이 IP를 어떻게 할당·회수하는지 이해해야 서브넷 설계를 올바르게 할 수 있다.


4. 공인 IP vs 사설 IP

구분공인(Public) IP사설(Private) IP
인터넷 직접 연결OX (중개자 필요)
할당 주체ISP공유기(DHCP)
예시203.0.113.1192.168.0.x, 10.x.x.x

5. NAT — 사설 IP의 인터넷 접속 원리

사설 IP를 가진 기기가 인터넷에 접속하는 과정:

맥북(192.168.0.5) → 패킷 전송 → 라우터가 가로챔
  → 출발지를 공인 IP로 변환(NAT) → 인터넷으로 전송
  → 웹서버 응답 → 라우터가 기록 장부(NAT Table)로 원래 기기에 전달

NAT(Network Address Translation)는 기본적으로 안→밖 통신에 최적화되어 있다. 나갈 때 기록해둔 장부가 있어야 돌아오는 패킷을 올바른 사설 IP로 전달할 수 있다.


6. LAN 통신

같은 공유기에 연결된 기기들은 서로의 사설 IP를 알고 있어 외부 인터넷을 거치지 않고 LAN을 통해 빠르게 데이터를 주고받을 수 있다.

공유기 없이 LAN 통신

랜선으로 직접 연결하거나 단순 스위치에 연결해도 통신은 가능하다. 단, DHCP 서버가 없으므로 수동으로 사설 IP를 설정해야 한다.


7. VPN — 가상 사설망

VPN에 연결하면 물리적으로는 외부에 있지만, 논리적으로는 해당 LAN 안에 있는 것처럼 사설 IP를 하나 더 부여받는다. 즉 ‘가상’으로 사설망을 확장하는 기술이다.


8. 외부에서 사설 네트워크로 접속하는 방법

NAT는 안→밖에 최적화되어 있기 때문에, 밖→안 접속은 별도 설정이 필요하다.

방법원리비고
포트포워딩”80번 포트로 오면 192.168.0.5로 보내라”는 고정 규칙 설정공유기 설정에서 직접 지정
터널링 서비스Ngrok, Cloudflare Tunnel 등으로 역방향 터널을 미리 구성DevOps 환경에서 많이 사용
DMZ특정 기기를 ‘비무장 지대’로 설정해 모든 외부 접속을 해당 기기로 전달보안 위험이 크므로 주의

터널링 서비스 동작 방식

내 기기에서 외부 서비스 업체로 미리 역방향 터널을 뚫어놓으면, 외부 사용자는 업체가 제공하는 주소로 접속하고 업체가 터널을 통해 사설망 기기로 데이터를 전달한다.