Basics of Computer Science and Network

DNS

마손리 2023. 3. 26. 18:53

DNS (Domain Name System)

도메인 네임 시스템을 간단하게 설명하자면 사람이 기억하기 쉬운 `www.naver.com`과 같은 도메인을 컴퓨터가 이해할 수 있는 ‘125.209.222.142`으로 변환하여 요청이 원하는 곳에 도달할 수 있도록 도와주는 시스템이다.

 

 

위의 그림에서 host부분이 도메인 주소에 속하며 도메인 주소는 오른쪽부터 왼쪽으로 최상위(탑 레벨) 도메인여러 개의 도메인으로 구성되어 있다. 탑 레벨 도메인은 .com, .kr, .net 등 도메인의 가장 오른쪽에 위치하는 도메인이다. kr, us와 같은 국가 코드를 사용하는 도메인은 co, ac와 같은 2단계 도메인과 함께 사용되기도 한다. 서브도메인은 일반적으로 `www, m`와 같은 제일 왼쪽에 위치한 도메인들이 해당된다. 

 

도메인 종류

도메인은 두종류로 나뉜다.

  • gTLD – generic Top Level Domain
  • ccTLD – country code Top Level Domain

 

gTLD는 전세계에서 등록이 가능한 .com, .net, .org, .edu, .gov, .int, .mil 입곱 가지로 시작하여 현재까지 .biz, .name, .info 등이 추가되었다.

 

ccTLD 의 경우 국가를 나타내며 .kr, .us, .jp 등 200개 이상이 있다.

 

 

도메인 서버

DNS를 관리하는 서버(존)이다. 대표적으로 모든 도메인을 관리하는 루트 네임 서버, TLD(Top Level Domain)을 관리하는 TLD 서버, 권한 있는 네임 서버로 구성된다. 이처럼 여러개의 서버로 구성되는 이유로 안정성을 위해서 최소한 두 개 이상의 서버가 하나의 도메인 네임을 담당한다. 여러 개의 서버를 구성한다면 하나의 서버로 운영될 경우 생길 수 있는 과부하 및 서비스 거부 공격에 대해 효율적으로 대응할 수 있기 때문이다.

 

루트 도메인 네임 서버는 각 최상위 도메인 네임 서버들의 주소를 알고 있으며 최상위 도메인 네임 서버는 권한 있는 네임 서버의 주소를 알고 있다. 

DNS의 작업 흐름

  1. 사용자가 브라우저에 URL을 입력
  2. 브라우저는 사용자가 입력한 URL의 도메인 네임만을 로컬 DNS서버 (그림에서의 DNS resolver)로 보냄
    • 만약 로컬 DNS 서버의 캐시에 저장되있는 도메인 네임이라면(이미 이전에 한번 접근한 기록이 캐시에 남아 있다면) 해당 IP주소를 사용자에게 보냄(그림에서의 7번). 
  3. 만약 캐시에 기록이 없다면 Root DNS 서버로 해당 도메인을 보내며 Root서버는 해당 TLD서버(그림의 경우 ".com"의 서버)의 IP주소를 반환
  4. 3번에서 반환받은 IP주소(TLD서버의 주소)로 사용자가 요청한 도메인 네임을 보낸뒤 해당 도메인 네임의 정보를 가지고 있는 다른 권한 있는 네임 서버의 IP주소를 반환
  5. TLD서버에서 받은 또 다른 네임 서버의 IP주소로 사용자가 보낸 도메인 네임을 보냄
  6. 해당 네임 서버는 받은 도메인 네임의 IP주소를 로컬 DNS서버(DNS resolver)로 보내며 로컬 DNS서버는 자신의 캐시에 해당 정보를 저장한다.
  7. 이후 사용자의 브라우저는 원하는 IP주소를 얻게된다.

위의 진행 순서를 보면 DNS resolver는 브라우저에게서 받은 도메인 네임과 IP(처음 시작은 ROOT네임서버의 IP)를 이용하여 반환 받은 IP들을 이용해 재귀적으로 진행하며 최종 IP값을 얻어 낸다.

 

'Basics of Computer Science and Network' 카테고리의 다른 글

SSR과 CSR  (0) 2023.03.26
웹 애플리케이션  (0) 2023.03.26
Network (TCP/IP 4계층)  (0) 2023.03.26
프로그래밍의 이해  (0) 2023.02.14
컴퓨터의 이해  (0) 2023.02.14