목차
- DNS란
- DNS 구성요소
- DNS 작동원리
DNS (Domain Name System)란
DNS란 도메인 이름을 IP주소와 매칭시켜 주는 시스템을 말한다.
즉, DNS란 인터넷에서 사용하는 전화번호부 같은 것이다.
- 전화번호 = IP주소 : 이름 = 도메인 이름
여기서 도메인 이름(Domain Name)은 naver.com 혹은 google.com과 같이 흔히 하는 사이트의 이름이다.
cmd 명령 프롬프트를 실행해서 nslookup naver.com를 입력하면
Addresses:223.130.195.200
223.130.195.95
223.130.200.107
223.130.200.104
같은 결과가 나온다. 위 숫자 중 아무거나 주소에 입력하면 naver.com을 입력한 것과 같이 NAVER로 이동한다.
DNS 구성요소
- 도메인 네임 스페이스 (Domain Name Space)
- DNS 서버의 계층 구조라고 생각하면 된다.
- naver.com 이라는 도메인이 있으면 오른쪽 부터 읽어 들어간다.
- com이 최상위 도메인 TLD (Top-Level-Domain)이 된다.
- naver가 2차 도메인 SLD (Second-Level-Domain)이 된다.
- 3차 혹은 서브 도메인은 blog.naver.com 혹은 news.naver.com 처럼 루트 도메인을 용도 구분을 위해 쪼갤 수 있다.
- 루트 도메인인 ' . '에서 1차 도메인 (TLD) .com, .org, .net 등으로 갈라지고 1차 도메인에서 2차 도메인으로 트리 형식으로 구조를 이룬다.
- 네임 서버 (Name Server)
- 도메인 이름을 IP주소로 바꿔 주기 위해서 위 트리 구조의 정보를 담고 있는 서버를 말한다.
- 루트 DNS 서버에는 TLD DNS 서버 정보가 TLD DNS 서버에서는 SLD DNS 서버의 정보가 있다.
- 리졸버 (Resolver)
- DNS 클라이언트에게 받은 요청을 네임 서버에 전달하고 IP주소를 DNS 클라이언트에게 반환하는 기능.
- 대부분의 기능을 네임 서버 (DNS Server)에 구현하고 최종 결과만 전달하는 인터페이스 기능만 수행하는 스터브 리졸버 (Stub Resolver)가 있다.
DNS 작동원리
-
브라우저가 요청을 보내면 캐시에서 방문한 적이 있는지 찾는다.
-
있으면 IP주소를 반환하고 없다면 Root DNS부터 Iterative Query을 통해 Authoritative DNS 서버까지 찾아가 IP주소를 Local DNS 혹은 DNS Resolver에서 캐시에 저장한 후 브라우저로 반환한다.
-
브라우저는 반환받은 IP주소를 통해 HTTP request를 보낸다.
-
해당 IP서버가 브라우저에 렌더링할 웹 페이즈를 반환한다.