Network··5 min read·

주소창에 naver.com을 치면 — DNS, IP, NAT의 기초

도메인 이름이 어떻게 IP로 바뀌고, 그 IP는 누가 어떻게 할당하며, 집 안의 여러 기기가 어떻게 공인 IP 하나를 나눠 쓰는지 — DNS·IP·NAT를 처음부터 정리했다.

주소창에 naver.com을 치면

브라우저 주소창에 naver.com을 치고 엔터를 누르면 화면에 네이버가 뜬다. 너무 당연해서 그냥 넘기지만, 그 사이에는 "이름을 번호로 바꾸고, 그 번호의 컴퓨터를 찾아가고, 연결을 맺는" 여러 단계가 들어 있다.

이 글은 그 첫 구간 — 이름이 주소가 되고, 주소를 찾아가기까지를 정리한다. 핵심 개념은 셋이다. 이름을 번호로 바꾸는 DNS, 그 번호인 IP, 그리고 집 안 기기들이 번호 하나를 나눠 쓰게 해주는 NAT. 받은 HTML을 화면에 그리는 다음 구간은 브라우저 렌더링 파이프라인과 Chrome 동작 원리에서 다룬다.


전체 그림 — 이름에서 화면까지

먼저 큰 흐름을 한 번 보고 들어간다.

text
1. URL 입력         naver.com
      │  (DNS 조회 — 이름을 IP로)
2. IP 확보          223.130.200.107
      │  (TCP 연결 + TLS 핸드셰이크)
3. 연결 맺기        암호화된 통신 터널
      │  (HTTP 요청 → 응답)
4. HTML 받기        <!doctype html> …
      │  (파싱 → 렌더링)
5. 화면 표시

이 글이 다루는 건 1~2단계, 즉 "이름을 어떻게 주소로 바꾸고, 그 주소는 어떻게 정해지는가"다.


DNS는 주소가 아니라 "변환 시스템"이다

자주 하는 오해가 "DNS = 도메인 주소"인데, 정확히는 다르다. 도메인 이름은 naver.com이라는 사람용 이름이고, DNS(Domain Name System)는 그 이름을 IP 주소로 바꿔주는 시스템이다. 인터넷의 전화번호부라고 보면 된다.

text
도메인 이름:  naver.com          ← 사람이 외우는 이름
   │  (DNS가 변환)
   ▼
IP 주소:     223.130.200.107    ← 컴퓨터가 실제로 찾아가는 번호

DNS는 "주소" 자체가 아니라, "naver.com이 어디야?"라고 물으면 "223.130.x.x야"라고 답해주는 조회 서비스다.

조회는 한 번에 끝나지 않는다

DNS 조회는 한 서버가 다 아는 게 아니라, 계층을 따라 내려가며 묻는다. 브라우저가 처음 보는 도메인을 조회한다고 하면 대략 이렇다.

text
브라우저
  │  "naver.com 의 IP 알려줘"
  ▼
Recursive Resolver (보통 ISP 또는 8.8.8.8)
  │  ① Root 네임서버에 물음     → "'.com'은 저쪽 TLD 서버한테 물어봐"
  │  ② TLD(.com) 네임서버에 물음 → "naver.com은 저쪽 권한 서버한테 물어봐"
  │  ③ Authoritative 네임서버    → "naver.com = 223.130.200.107 (A 레코드)"
  ▼
브라우저에 IP 반환 (그리고 TTL 동안 캐시)

여기서 도메인을 IPv4로 매핑하는 레코드를 A 레코드, IPv6로 매핑하는 것을 AAAA 레코드라고 한다. 한 번 조회한 결과는 TTL(Time To Live) 동안 캐시되므로, 매번 이 전 과정을 다 거치지는 않는다. 브라우저 캐시, OS 캐시, 리졸버 캐시가 차례로 쓰인다.


IP — 인터넷에서의 집 주소

IP 주소는 네트워크에서 각 컴퓨터를 가리키는 번호다. 가장 널리 쓰이는 IPv4는 223.130.200.107처럼 점으로 구분된 네 개의 숫자(각 0~255)로 표현된다.

IPv4는 부족하다

IPv4는 32비트라, 표현할 수 있는 주소가 약 43억 개(2의 32승)뿐이다. 전 세계 기기 수를 생각하면 턱없이 부족하다. 그래서 두 가지가 나왔다.

  • IPv6: 128비트로 늘려 사실상 무한에 가까운 주소를 제공한다.
  • NAT: 공인 IP 하나를 여러 기기가 나눠 쓰게 해서 IPv4를 아낀다. (뒤에서 다룬다)

사설 IP vs 공인 IP

IP에는 두 종류가 있다.

사설 IP (로컬)공인 IP
192.168.0.5, 10.x.x.x, 127.0.0.1223.130.200.107
유효 범위내 집·회사 내부 네트워크에서만전 세계에서 유일
할당 주체내 공유기인터넷 회사(ISP)

집 안의 폰, 노트북, TV가 전부 192.168.0.x를 가져도, 인터넷으로 나갈 때는 공유기의 공인 IP 하나로 나간다. 127.0.0.1은 자기 자신을 가리키는 특수 주소(loopback)로, localhost가 바로 이것이다.


그러면 naver.com이 쓰는 공인 IP는 누가 정할까. IPv4가 부족하다 보니, 주소는 위에서 아래로 나눠주는 계층 구조로 관리된다.

text
IANA (ICANN 운영, 전 세계 최상위)
  └─ RIR (대륙별 관리기구)
       │   아시아·태평양 = APNIC,  북미 = ARIN,  유럽 = RIPE NCC …
       └─ ISP / 대기업 (KT, SKT, 네이버 같은 큰 조직)
            └─ 최종 사용자 / 서버

여기서 두 가지 "할당"을 구분하는 게 핵심이다.

무엇누가 정하나
IP 주소 블록 소유권 (이 번호 묶음은 네이버 것)RIR(APNIC) → ISP → 네이버. 네이버가 IP 대역을 임대·소유
도메인 → IP 매핑 (naver.com = 223.130.x.x)네이버가 DNS 권한 서버에 직접 등록 (A 레코드)

즉 naver.com이 IP를 "쓰는" 과정은 두 단계다. 먼저 ① 네이버가 공인 IP 블록을 RIR/ISP로부터 배정받아 소유하고, ② 그 IP를 DNS에 "naver.com은 이 IP다"라고 등록한다. 그래야 사용자의 DNS 조회가 그 IP로 응답된다.

일반 가정집은 ISP가 공인 IP를 임시(동적)로 빌려준다. 반면 서버는 IP가 바뀌면 안 되므로 고정(static) 공인 IP를 받는다. 이것이 동적 IP와 정적 IP의 차이다.

NAT — 공인 IP 하나를 여럿이 나눠 쓰기

집에는 기기가 여러 대인데 공유기가 받은 공인 IP는 보통 하나다. 이걸 가능하게 하는 것이 NAT(Network Address Translation, 네트워크 주소 변환)다.

text
[폰    192.168.0.2] ┐
[노트북 192.168.0.3] ┼─▶ [공유기 : 공인 IP 1.2.3.4] ─▶ 인터넷
[TV    192.168.0.4] ┘
                         나갈 때:  출발지 주소를 1.2.3.4로 바꿔치기
                                   + 포트 매핑표에 "어느 기기였는지" 기록
                         들어올 때: 매핑표를 보고 원래 기기로 되돌려줌

동작은 이렇다. 내부 기기가 인터넷으로 패킷을 보내면, 공유기가 출발지 주소를 자기 공인 IP로 바꾸고, "이 응답은 어느 내부 기기·포트로 돌려줘야 하는지"를 매핑표에 적어둔다. 응답이 돌아오면 그 표를 보고 원래 기기에게 전달한다. 덕분에 집 안 기기가 100대여도 인터넷에는 공인 IP 하나로 나간다.

NAT의 효과는 두 가지다. 첫째, IPv4 절약 — 공인 IP 하나를 여러 기기가 공유한다. 둘째, 내부 기기 은닉 — 외부에서는 공유기만 보이고 내부 사설 IP는 직접 보이지 않아 일종의 보호막이 된다.


다시 전체 여정으로

이제 처음 그림을 개념과 함께 다시 본다. 주소창에 naver.com을 치면 이런 일이 순서대로 일어난다.

  1. DNS 조회 — 캐시에 없으면 리졸버가 Root → TLD → 권한 서버를 거쳐 naver.com의 IP를 받아온다.
  2. NAT 통과 — 내 노트북의 사설 IP에서 나간 패킷이 공유기에서 공인 IP로 변환된다.
  3. TCP 연결 + TLS 핸드셰이크 — 그 IP의 서버와 연결을 맺고, HTTPS면 암호화 터널을 만든다.
  4. HTTP 요청·응답 — 브라우저가 페이지를 요청하고 서버가 HTML을 돌려준다.
  5. 렌더링 — 받은 HTML을 파싱해 화면에 그린다.

이름을 번호로 바꾸고(DNS), 그 번호를 향해(IP), 집 밖으로 나가는(NAT) 이 세 가지가 맞물려야 비로소 서버에 닿는다.


정리

  • DNS는 도메인 주소가 아니라, 이름을 IP로 바꿔주는 변환 시스템이다. 조회는 Root → TLD → 권한 서버 계층을 따라 이뤄지고 결과는 TTL 동안 캐시된다.
  • IP는 사설(내부 전용)과 공인(전 세계 유일)으로 나뉜다. IPv4는 약 43억 개로 부족해 IPv6와 NAT가 등장했다.
  • 공인 IP는 IANA → RIR → ISP → 조직 순으로 할당된다. naver.com은 IP 블록을 소유하고, 그 IP를 DNS에 등록하는 두 단계를 거친다.
  • NAT는 공인 IP 하나를 여러 기기가 나눠 쓰게 해주고, IPv4를 절약하면서 내부 기기를 숨긴다.

평소엔 보이지 않지만, 주소창의 한 줄 뒤에는 이름·번호·변환이라는 작은 네트워크 한 판이 매번 돌아가고 있다.


참고 문서

Related Posts

같이 읽으면 좋은 글