본문 바로가기

NAT와 DHCP

NAT·PAT가 사설 주소와 포트를 변환하는 방식과 DHCP DORA 절차를 익혀 공유기의 주소 할당 흐름을 이해합니다.

지금까지 IP 주소와 서브넷을 배우면서, 공인 IP와 사설 IP가 구분된다는 것을 알았습니다.

그런데 한 가지 의문이 남습니다.

사설 IP는 인터넷에서 라우팅되지 않는다고 했는데, 그렇다면 192.168.x.x 주소를 가진 내 노트북은 어떻게 구글에 접속하는 걸까요?

이 질문에 대한 답이 NAT(Network Address Translation)입니다.

NAT는 주소를 단순히 바꾸는 기능이지만, 가정과 기업에서 흔히 말하는 NAT는 대부분 PAT/NAPT입니다.

내부의 여러 장치가 하나의 공인 IP를 함께 쓰기 위해 IP 주소뿐 아니라 TCP/UDP 포트까지 함께 변환합니다.


NAT의 동작 원리

다음은 PAT 매핑 한 건을 추적한 예시입니다. 실제 포트는 장비가 선택하며 충돌이 없으면 원래 포트를 유지할 수도 있습니다.

PAT 매핑의 요청 변환과 응답 복원

내부 출발지를 유효한 공인 끝점 매핑으로 바꿉니다. 응답 목적지를 원래 내부 끝점으로 복원합니다. 각 단계의 값과 전환 이유를 비교합니다.

PAT STATE · OUTBOUND SOURCE / RETURN DESTINATION

요청 출발지 변환의 매핑을 응답 목적지 복원에 사용한다

내부 192.168.1.10:51514를 예시 공인 203.0.113.7:40001에 매핑합니다. TCP/UDP 프로토콜과 외부 목적지 등 나머지 연결 튜플은 생략했습니다. 실제 측정·서비스 주소가 아닙니다.

PAT의 요청 출발지·응답 목적지 변환요청은 내부호스트에서 NAT를거쳐외부로전달되며출발지주소와포트가바뀐다. 응답은역방향으로돌아오며동일한유효매핑으로목적지주소와포트를복원한다. 나머지연결튜플과허용정책은별도조건이다.내부 호스트192.168.1.10:51514NAT 매핑203.0.113.7:40001외부 서비스튜플·정책 조건 유지요청 → 출발지 변환내부 호스트192.168.1.10:51514NAT 매핑203.0.113.7:40001외부 서비스튜플·정책 조건 유지응답 ← 목적지 복원
PAT 변환과 같은 매핑의 응답 복원요청은 내부호스트에서 NAT를거쳐외부로전달되며출발지주소와포트가바뀐다. 응답은역방향으로돌아오며동일한유효매핑으로목적지주소와포트를복원한다. 나머지연결튜플과허용정책은별도조건이다.내부 호스트192.168.1.10포트 51514NAT의 유효 매핑203.0.113.7:40001요청: 출발지 변환응답: 목적지 복원외부 서비스요청 ↓ · ↑ 응답요청 ↓ · ↑ 응답
PAT 매핑의 요청 변환과 응답 복원
패킷 방향변환 전 필드변환 후 필드
외부로 나가는 요청출발지 192.168.1.10:51514출발지 203.0.113.7:40001
내부로 돌아오는 응답목적지 203.0.113.7:40001목적지 192.168.1.10:51514

같은 매핑, 서로 다른 방향의 필드

요청: 출발지 IP·포트 변경 → 외부 서비스. 모바일 오른쪽 실선은 아래로 전달합니다.

응답: 공인 목적지 IP·포트 조회 → 원래 내부 목적지 복원. 모바일 왼쪽 점선은 위로 돌아옵니다.

실제 장비는 충돌이 없으면 원래 포트를 유지할 수도 있습니다. 상태 손실은 기존 흐름에 영향을 주며 NAT 매핑과 방화벽 허용 정책은 별도입니다.

이 예의 조건

  • 본문과 전체 도표의 예를 따라 요청 변환부터 목적지 복원까지 진행합니다.
관계도의 보충 설명
전체 도표의 표기·관계·조건
구분전체 도표의 내용
관계 설명요청은 내부 호스트에서 NAT를 거쳐 외부로 전달되며 출발지 주소와 포트가 바뀝니다. 응답은 역방향으로 돌아오며 동일한 유효 매핑으로 목적지 주소와 포트를 복원합니다. 나머지 연결 튜플과 허용 정책은 별도 조건입니다.
예의 값과 변화
관찰·상황값·보충 정보변화·이유
요청 변환

내부 출발지를 유효한 공인 끝점 매핑으로 바꿉니다.

  • 주소·PAT 매핑 1: 192.168.1.10:51514→203.0.113.7:40001
  • 요청의 출발지 주소·포트를 변환
응답 도착

외부 서비스가 공인 끝점으로 응답합니다.

  • 주소·PAT 매핑 1: destination203.0.113.7:40001
  • 유지된 같은 PAT 매핑을 조회
목적지 복원

응답 목적지를 원래 내부 끝점으로 복원합니다.

  • 주소·PAT 매핑 1: destination192.168.1.10:51514
  • 내부로 전달; 매핑 소실과 방화벽 조건은 별도

PAT 매핑의 요청 변환과 응답 복원

내부 출발지를 유효한 공인 끝점 매핑으로 바꿉니다. 응답 목적지를 원래 내부 끝점으로 복원합니다. 각 단계의 값과 전환 이유를 비교합니다.

PAT STATE · OUTBOUND SOURCE / RETURN DESTINATION

요청 출발지 변환의 매핑을 응답 목적지 복원에 사용한다

내부 192.168.1.10:51514를 예시 공인 203.0.113.7:40001에 매핑합니다. TCP/UDP 프로토콜과 외부 목적지 등 나머지 연결 튜플은 생략했습니다. 실제 측정·서비스 주소가 아닙니다.

PAT의 요청 출발지·응답 목적지 변환요청은 내부호스트에서 NAT를거쳐외부로전달되며출발지주소와포트가바뀐다. 응답은역방향으로돌아오며동일한유효매핑으로목적지주소와포트를복원한다. 나머지연결튜플과허용정책은별도조건이다.내부 호스트192.168.1.10:51514NAT 매핑203.0.113.7:40001외부 서비스튜플·정책 조건 유지요청 → 출발지 변환내부 호스트192.168.1.10:51514NAT 매핑203.0.113.7:40001외부 서비스튜플·정책 조건 유지응답 ← 목적지 복원
PAT 변환과 같은 매핑의 응답 복원요청은 내부호스트에서 NAT를거쳐외부로전달되며출발지주소와포트가바뀐다. 응답은역방향으로돌아오며동일한유효매핑으로목적지주소와포트를복원한다. 나머지연결튜플과허용정책은별도조건이다.내부 호스트192.168.1.10포트 51514NAT의 유효 매핑203.0.113.7:40001요청: 출발지 변환응답: 목적지 복원외부 서비스요청 ↓ · ↑ 응답요청 ↓ · ↑ 응답
PAT 매핑의 요청 변환과 응답 복원
패킷 방향변환 전 필드변환 후 필드
외부로 나가는 요청출발지 192.168.1.10:51514출발지 203.0.113.7:40001
내부로 돌아오는 응답목적지 203.0.113.7:40001목적지 192.168.1.10:51514

같은 매핑, 서로 다른 방향의 필드

요청: 출발지 IP·포트 변경 → 외부 서비스. 모바일 오른쪽 실선은 아래로 전달합니다.

응답: 공인 목적지 IP·포트 조회 → 원래 내부 목적지 복원. 모바일 왼쪽 점선은 위로 돌아옵니다.

실제 장비는 충돌이 없으면 원래 포트를 유지할 수도 있습니다. 상태 손실은 기존 흐름에 영향을 주며 NAT 매핑과 방화벽 허용 정책은 별도입니다.

이 예의 조건

  • 본문과 전체 도표의 예를 따라 요청 변환부터 목적지 복원까지 진행합니다.

관계도의 보충 설명

전체 도표의 표기·관계·조건
구분전체 도표의 내용
관계 설명요청은 내부 호스트에서 NAT를 거쳐 외부로 전달되며 출발지 주소와 포트가 바뀝니다. 응답은 역방향으로 돌아오며 동일한 유효 매핑으로 목적지 주소와 포트를 복원합니다. 나머지 연결 튜플과 허용 정책은 별도 조건입니다.
예의 값과 변화
관찰·상황값·보충 정보변화·이유
요청 변환

내부 출발지를 유효한 공인 끝점 매핑으로 바꿉니다.

  • 주소·PAT 매핑 1: 192.168.1.10:51514→203.0.113.7:40001
  • 요청의 출발지 주소·포트를 변환
응답 도착

외부 서비스가 공인 끝점으로 응답합니다.

  • 주소·PAT 매핑 1: destination203.0.113.7:40001
  • 유지된 같은 PAT 매핑을 조회
목적지 복원

응답 목적지를 원래 내부 끝점으로 복원합니다.

  • 주소·PAT 매핑 1: destination192.168.1.10:51514
  • 내부로 전달; 매핑 소실과 방화벽 조건은 별도

같은 내부 포트를 쓰는 두 연결: 다음은 TCP로 같은 예시 외부 서버 198.51.100.10:443에 연결하고, 표의 매핑이 유효하며 응답 정책도 허용된 조건입니다. 장비가 아래 외부 포트를 선택했다고 가정합니다.

내부 연결의 출발지변환된 출발지외부 목적지
192.168.1.10:51514203.0.113.7:40001198.51.100.10:443
192.168.1.11:51514203.0.113.7:40002198.51.100.10:443

내부 포트 51514가 같아도 내부 IP가 다르므로 두 연결은 서로 다릅니다. 이 표에서 외부 서버의 응답 목적지가 203.0.113.7:40002라면 유효한 매핑을 조회하여 192.168.1.11:51514로 복원합니다. 요청에서는 출발지, 돌아오는 응답에서는 목적지 필드가 바뀌므로 방향을 먼저 확인해야 합니다. RFC 3022 §2.2의 NAPT 설명도 이 주소·전송 식별자 매핑과 복원을 다룹니다.

독립 판단: 위 표의 두 번째 매핑 상태만 소실되었습니다. 이어 203.0.113.7:40002를 목적지로 하는 기존 연결의 응답이 도착했습니다. 첫 번째 행이나 내부 포트 51514만 보고 어느 내부 장치로 보내도 될까요?

응답 복원 근거 확인

첫 번째 행은 이 응답 목적지의 매핑이 아니며, 내부 포트 51514는 두 장치에서 모두 사용합니다. 따라서 어느 내부 장치의 기존 연결인지 그 정보만으로 복원할 수 없습니다. 다른 정적 규칙이나 새 상태가 없다는 조건에서 이 응답으로 기존 두 번째 연결을 계속 전달할 근거가 없습니다. 상태 손실 때의 구체적인 폐기·오류 처리는 장비 구현에 따라 확인하며 NAT 표가 있다는 사실만으로 방화벽 허용까지 추론하지 않습니다.

NAT의 종류

변환대상과 대표 구성
SNAT출발지 IP 변경 · 내부 클라이언트의 인터넷 접속 등에 사용
DNAT목적지 IP 변경 · 포트 포워딩·서버 공개 등에 사용
PAT / NAPTIP와 TCP/UDP 포트를 함께 매핑 · 여러 내부 장치의 공인 주소 공유
1:1 NAT내부 주소와 외부 주소의 고정 매핑 · DMZ 등

PAT(NAPT라고도 함)가 실무에서 가장 많이 사용됩니다.

하나의 공인 IP에서 포트·프로토콜·외부 목적지 등의 튜플로 연결을 구분합니다. 동시 연결 한계는 장비와 설정에 따라 달라집니다.

가정의 공유기가 수행하는 NAT가 바로 PAT입니다.

PAT 장비는 내부 IP:포트 ↔ 공인 IP:포트 ↔ 외부 목적지 관계를 NAT 테이블에 저장합니다.

응답 패킷이 돌아오면 이 테이블을 보고 원래 내부 장치로 되돌려 보냅니다.

이런 동적 PAT는 매핑 상태를 유지합니다. NAT 자체가 트래픽 허용 정책을 대신하지는 않습니다.

포트 포워딩 (DNAT)

포트 포워딩은 외부에서 먼저 들어오는 연결을 허용하기 위한 정적 DNAT 규칙입니다.

예를 들어 203.0.113.7:443으로 들어온 연결을 내부 서버 192.168.1.50:8443으로 넘기도록 미리 매핑합니다.

단, 실제 장비에서는 방화벽 규칙도 함께 열려 있어야 합니다.

여기서 사용하는 203.0.113.x, 198.51.100.x 같은 주소는 실제 서비스 주소가 아니라 문서 예시용 대역입니다.

실제 설정에서는 ISP나 클라우드가 할당한 공인 IP를 사용합니다.

다음은 80번 포트를 사용하는 별도 규칙 예시입니다. 이 규칙만으로 구성이 끝나지는 않으며 IP 포워딩, 방화벽 허용 정책과 응답 경로도 맞아야 합니다.

nat_iptables.sh
# Linux에서 NAT 설정 (iptables)

# SNAT: 내부 → 외부 (마스커레이드)
sudo iptables -t nat -A POSTROUTING \
  -s 192.168.1.0/24 -o eth0 -j MASQUERADE

# DNAT: 외부 80 → 내부 웹서버
sudo iptables -t nat -A PREROUTING \
  -i eth0 -p tcp --dport 80 \
  -j DNAT --to-destination 192.168.1.50:80

# NAT 테이블 확인
sudo iptables -t nat -L -n -v

# 현재 NAT 세션 확인
sudo conntrack -L | head -20

NAT의 한계

한계영향
엔드투엔드 연결외부에서 내부로 먼저 접속하기 어려워 P2P·WebRTC에 영향
매핑 자원주소·프로토콜·포트 조합과 장비 한계에 따라 동시 연결 자원 고갈
페이로드의 주소FTP active·SIP처럼 본문에 IP·포트가 있는 프로토콜은 별도 처리 필요
동적 상태장애·재시작으로 매핑을 잃으면 기존 세션 영향
이중 NAT · CGNAT상위 NAT도 매핑을 제공하지 않으면 공유기 포트 포워딩만으로 외부 접속 불가

이런 한계를 우회하기 위해 STUN/TURN 서버(WebRTC), UPnP(자동 포트 포워딩), NAT-T(IPsec VPN) 등의 기술이 사용됩니다.

CGNAT 환경에서는 100.64.0.0/10 공유 주소 대역이 고객 장비와 ISP NAT 사이에서 사용될 수 있습니다.

이 경우 공유기에서 포트 포워딩을 설정해도 ISP NAT를 통과하지 못해 외부 접속이 막힐 수 있습니다.


DHCP 동작 흐름

컴퓨터를 네트워크에 연결하면 자동으로 IP 주소가 할당되는 것이 당연하게 느껴지지만, 사실 이 뒤에는 DHCP(Dynamic Host Configuration Protocol)라는 프로토콜이 동작하고 있습니다.

최초 임대의 성공 흐름을 DORA라고 부릅니다. 아래는 같은 LAN에서 서버 하나가 응답한 예시이며 relay와 갱신은 생략했습니다. Discover와 서버 선택을 알리는 Request는 브로드캐스트로 보내고, Offer·ACK는 상태와 플래그에 따라 브로드캐스트 또는 유니캐스트로 전달됩니다.

DHCP 최초 주소 임대의 DORA 교환

유효 임대가 없는 클라이언트가 서버를 찾습니다. ACK 뒤 조건을 확인하고 임대를 설정합니다. 각 단계의 값과 전환 이유를 비교합니다.

DHCPv4 FIRST LEASE · DISCOVER / OFFER / REQUEST / ACK

최초 임대는 제안을 선택한 뒤 ACK로 확정한다

같은 LAN에서 서버 하나가 응답하는 최초 임대 성공 예시입니다. Discover·선택 알림 Request는 브로드캐스트이고 Offer·ACK의 전달 방식은 클라이언트 상태와 플래그에 따라 달라집니다. Relay·갱신 경로는 생략했습니다.

DHCP 최초 주소 임대의 DORA 교환같은 LAN에서 서버 하나가 응답하는 최초 임대의 성공 경로입니다. Discover와 선택 알림 Request는 브로드캐스트이며 Offer와 ACK의 전달 방식은 클라이언트 상태와 플래그에 따라 달라집니다. Relay와 갱신 경로는 제외합니다.1 · Discover서버 찾기2 · Offer주소 제안3 · Request선택한 제안 알림4 · ACK임대 확정클라이언트UDP 68DHCP 서버UDP 67
DHCP 최초 주소 임대의 DORA 교환같은 LAN에서 서버 하나가 응답하는 최초 임대의 성공 경로입니다. Discover와 선택 알림 Request는 브로드캐스트이며 Offer와 ACK의 전달 방식은 클라이언트 상태와 플래그에 따라 달라집니다. Relay와 갱신 경로는 제외합니다.1 · Discover서버 찾기2 · Offer주소 제안3 · Request선택한 제안 알림4 · ACK임대 확정클라이언트UDP 68DHCP 서버UDP 67

위에서 아래로 시간 순서, 가로 화살표는 메시지 방향입니다. 점선 Offer는 응답 방향을 구별하기 위한 표현이며 유니캐스트라는 뜻이 아닙니다. 세로 점선은 시간축, 청록 ACK는 이 예시의 임대 확정입니다.

이 예의 조건

  • 본문과 전체 도표의 예를 따라 Discover부터 ACK까지 진행합니다.
예의 값과 변화
관찰·상황값·보충 정보변화·이유
Discover

유효 임대가 없는 클라이언트가 서버를 찾습니다.

  • 임대·메시지 1: clientUDP68→server67
  • 임대·메시지 2: broadcast
  • 최초 임대의 Discover를 브로드캐스트
Offer

서버가 192.168.1.100을 제안합니다.

  • 임대·메시지 1: offer192.168.1.100
  • 임대·메시지 2: 아직 사용 확정 아님
  • 주소 사용은 아직 확정 전; 응답 방식은 조건에 따라 달라짐
Request

선택한 서버와 주소를 알립니다.

  • 임대·메시지 1: 선택 제안
  • 임대·메시지 2: broadcast
  • Request 브로드캐스트; 아직 ACK·설정 성공은 미확인
ACK

ACK 뒤 조건을 확인하고 임대를 설정합니다.

  • 임대·메시지 1: lease 확정
  • 임대·메시지 2: 충돌 확인 추가
  • 추가 충돌 확인 필요; 임대만으로 DNS·경로·인터넷 업무 성공을 보장하지 않음

DHCP 최초 주소 임대의 DORA 교환

유효 임대가 없는 클라이언트가 서버를 찾습니다. ACK 뒤 조건을 확인하고 임대를 설정합니다. 각 단계의 값과 전환 이유를 비교합니다.

DHCPv4 FIRST LEASE · DISCOVER / OFFER / REQUEST / ACK

최초 임대는 제안을 선택한 뒤 ACK로 확정한다

같은 LAN에서 서버 하나가 응답하는 최초 임대 성공 예시입니다. Discover·선택 알림 Request는 브로드캐스트이고 Offer·ACK의 전달 방식은 클라이언트 상태와 플래그에 따라 달라집니다. Relay·갱신 경로는 생략했습니다.

DHCP 최초 주소 임대의 DORA 교환같은 LAN에서 서버 하나가 응답하는 최초 임대의 성공 경로입니다. Discover와 선택 알림 Request는 브로드캐스트이며 Offer와 ACK의 전달 방식은 클라이언트 상태와 플래그에 따라 달라집니다. Relay와 갱신 경로는 제외합니다.1 · Discover서버 찾기2 · Offer주소 제안3 · Request선택한 제안 알림4 · ACK임대 확정클라이언트UDP 68DHCP 서버UDP 67
DHCP 최초 주소 임대의 DORA 교환같은 LAN에서 서버 하나가 응답하는 최초 임대의 성공 경로입니다. Discover와 선택 알림 Request는 브로드캐스트이며 Offer와 ACK의 전달 방식은 클라이언트 상태와 플래그에 따라 달라집니다. Relay와 갱신 경로는 제외합니다.1 · Discover서버 찾기2 · Offer주소 제안3 · Request선택한 제안 알림4 · ACK임대 확정클라이언트UDP 68DHCP 서버UDP 67

위에서 아래로 시간 순서, 가로 화살표는 메시지 방향입니다. 점선 Offer는 응답 방향을 구별하기 위한 표현이며 유니캐스트라는 뜻이 아닙니다. 세로 점선은 시간축, 청록 ACK는 이 예시의 임대 확정입니다.

이 예의 조건

  • 본문과 전체 도표의 예를 따라 Discover부터 ACK까지 진행합니다.
예의 값과 변화
관찰·상황값·보충 정보변화·이유
Discover

유효 임대가 없는 클라이언트가 서버를 찾습니다.

  • 임대·메시지 1: clientUDP68→server67
  • 임대·메시지 2: broadcast
  • 최초 임대의 Discover를 브로드캐스트
Offer

서버가 192.168.1.100을 제안합니다.

  • 임대·메시지 1: offer192.168.1.100
  • 임대·메시지 2: 아직 사용 확정 아님
  • 주소 사용은 아직 확정 전; 응답 방식은 조건에 따라 달라짐
Request

선택한 서버와 주소를 알립니다.

  • 임대·메시지 1: 선택 제안
  • 임대·메시지 2: broadcast
  • Request 브로드캐스트; 아직 ACK·설정 성공은 미확인
ACK

ACK 뒤 조건을 확인하고 임대를 설정합니다.

  • 임대·메시지 1: lease 확정
  • 임대·메시지 2: 충돌 확인 추가
  • 추가 충돌 확인 필요; 임대만으로 DNS·경로·인터넷 업무 성공을 보장하지 않음

제안과 사용 확정을 나누기: 최초 연결한 클라이언트가 Offer에서 192.168.1.100과 마스크를 받았다고 합시다. 아직 유효한 이전 임대는 없습니다. 이 주소는 서버의 제안이며, 클라이언트는 선택한 서버·주소를 Request로 알리고 ACK의 조건을 확인해 임대를 설정합니다. 주소 충돌 확인 등 실제 구성 절차도 필요합니다. RFC 2131 §4.4.1의 최초 임대 절차를 기준으로 읽습니다.

독립 판단: Discover→Offer→Request까지만 관측했고 ACK나 임대 설정 성공 기록은 아직 없습니다. “DHCP 서버가 응답했으니 주소 할당이 끝났고 인터넷 연결도 성공했다”는 결론을 낼 수 있을까요?

관측된 단계까지만 결론 내리기

Offer는 서버가 제안을 보냈다는 근거이고 Request는 클라이언트가 선택을 알렸다는 근거입니다. 이 관측만으로 최초 임대가 확정되었다고 할 수 없습니다. ACK와 임대 적용·충돌 확인 결과를 이어 대조해야 합니다. 정상 임대를 얻더라도 기본 경로, DNS, 외부 방화벽·서비스는 별도 조건이므로 인터넷 업무 성공까지 자동으로 이어지지 않습니다.

DHCP가 할당하는 정보

DHCP 정보예시와 용도
IP 주소192.168.1.100 · 장치 주소
서브넷 마스크255.255.255.0 · 같은 서브넷 범위 판단
기본 게이트웨이192.168.1.1 · 더 구체적인 경로가 없을 때의 출구
DNS 서버8.8.8.8, 1.1.1.1 · 이름 해석
임대 시간86400초 · 주소 사용 기간
NTP 서버옵션 42는 서버 IPv4 주소 목록 · 192.0.2.123은 주소 형식만 보이는 문서 예시

여기서 다루는 동적 DHCP 할당은 시간 제한이 있는 lease입니다.

클라이언트는 lease가 끝나기 전에 갱신을 시도하고, 다른 네트워크에 DHCP 서버가 있을 때는 라우터가 DHCP relay로 메시지를 중계할 수 있습니다.

dhcp_debug.sh
# 현재 DHCP 임대 정보 확인 (Linux)
cat /var/lib/dhcp/dhclient.leases

# DHCP 임대 갱신
sudo dhclient -r eth0     # 임대 해제
sudo dhclient eth0        # 새로 요청

# Windows
ipconfig /release
ipconfig /renew
ipconfig /all             # DHCP 서버 주소 확인

# DHCP 서버가 할당한 정보 확인
nmcli connection show "이더넷" | grep -i dhcp

공유기의 복합 기능

기능설명
라우터내부 ↔ 외부 패킷 중계
NAT사설 IP ↔ 공인 IP 변환
DHCP 서버연결 기기에 IP 자동 할당
L2 스위치유선 LAN 포트 간 프레임 전달
무선 APWi-Fi 제공
방화벽외부 → 내부 원치 않는 연결 차단

개발자가 로컬에서 서버를 실행하고 외부에서 접속하려 할 때, 포트 포워딩 설정이 필요한 이유가 바로 NAT 때문입니다.

요즘은 ngrok이나 Cloudflare Tunnel을 사용하면 포트 포워딩 없이도 외부에서 로컬 서버에 접근할 수 있습니다.

다음 절에서는 IPv4의 주소 고갈 문제와 그 근본적 해결책인 IPv6를 살펴보겠습니다.