본문 바로가기
[Linux]

DNS란무엇인가?

by SAMSUNG Metaverse-Cloud 2023. 8. 17.
728x90

 

 

DNS란 무엇인가?

DNS는 Domain Name Server의 줄임말로 사람이 읽을 수 있는 이름 (ex: www.example.com ) 을 머신이 읽을 수 있는 IP 주소로 변환시키는 것을 의미한다. 

인터넷에 연결된 각 기기는 다른 컴퓨터가 기기를 찾는 데 사용하는 고유 IP 주소가 있다. DNS를 사용하면 IPv4나 IPv6를 기억할 필요가 없다. 

 

 

DNS 3가지 구조

작동원리에 들어가기 전 DNS는 3가지로 구성되어 있다.

1. Domain Name Space
2. Name Server
3. Resolver 

도메인 네임 시스템에서 Domain Name Space는 데이터 자료구조를 정의하는데 사용된다. 도메인 네임을 중복되지 않게 이름을 생성하여 사용하도록 정의된 네임 구성 체계이다. 

위 그림에서 볼 수 있듯이 최상위 루트 도메인으로부터 뻗어나가는 트리 구조의 도메인 네임 체계가 이를 의미한다. 

두번째로 네임서버는 도메인의 데이터를 보유하며 외부 인터넷으로부터 도메인네임과 네임에 대한 데이터 질의를 수신할 때 보유한 데이터를 검색하여 조회하며, 데이터로 응답하는 역할을 담당한다. 주로 메모리에 DB 구조를 구현하여 파일을 통해 데이터를 도메인 존 데이터로 저장한다. 

마지막으로 Resolver는 DNS 클라이언트 요청을 네임서버로 전달한 후 찾은 정보를 다시 클라이언트에게 제공하는 기능을 담당한다. 어떤 네임서버에서 찾아야 하는지, 캐시 유무를 찾아 클라이언트에게 전달한다. 

 

DNS 동작방식

  1. 사용자가 웹 브라우저에 도메인을 입력하면 Local DNS(KT, LG, SKT 등 기지국) 에 접속 후 도메인에 대한 IP 주소를 요청한다. 
  2. Local DNS는 도메인의 IP주소를 찾기 위해 다른 DNS 서버들과 쿼리를 통해 통신을 시작한다. 여기서 Root DNS 서버에 먼저 주소를 요청한다.
  3. Root DNS 서버가 도메인에 대한 IP를 찾을 수 없다면 Local DNS에 IP 주소를 찾을 수 없으니 다른 서버에 요청하라는 응답을 보낸다. 
  4. 그럼 Local DNS는 .com TLD에 요청한다. TLD란 도메인 등록기관이 관리하는 서버로 도메인 네임의 가장 마지막 부분을 담당하는 부분이다. 
  5. 만약 TLD에도 그 서버에 대한 정보가 없으면 Local DNS에게 다른 서버로 물어보라는 응답을 한다.
  6. 그 후 Local DNS는 Authoritative DNS 서버로 도메인에 대한 IP를 요청한다. Authoritative DNS 서버란 개인 도메인과 IP 주소의 관계를 저장 및 변경하는 서버이다. 
  7. Authoritative DNS에는 해당 도메인에 대한 IP가 존재하므로 그 IP를 Local DNS 서버로 응답한다.
  8. 마지막으로 Local DNS는 도메인의 IP주소를 캐싱하고 PC로 전달 해 준다. 

 

DNS 종류

가장 먼저 기지국들이 존재한다. 우리가 흔히 알고 있는 통신사(skt, kt, lg) 등은 DNS를 가지고 있으며 가장 먼저 물어보는 서버이다. 

두번째로는 Root DNS이다. 위 그림에 나온것처럼 상위에 존재하며 TLD DNS 서버 IP 주소를 가지고 있기 때문에 만약 Root DNS에 해당 도메인에 대한 IP가 없으면 TLD DNS로의 안내를 담당한다.

세번째로는 TLD DNS 서버이다. 도메인 등록 기관이 관리하며 TLD DNS에 해당 도메인에 대한 IP가 없다면 Authoritative DNS 서버의 주소를 저장하며 안내하는 역할을 한다. 이 도메인은 국가 최상위 도메인과 일반 최상위 도메인으로 구분된다. 우리가 아는 .kr의 경우는 국가 최상위 도메인이며 .com, .net 등은 일반 최상위 도메인이다. 

네번째로 2차 도메인이다. Root -> TLD -> 2차 도메인 으로 리턴한다. 만약 naver.com이나 google.com을 요청한다면 TLD가 .com을 파악한 후 구글이나 네이버로 넘기게 된다. 

마지막으로 최하위 서버이다. naver.com앞에 blog가 붙는 경우, www가 붙는 경우 등을 구분하는 최하위 서버를 말한다. 이 서비스들을 구분하는 도메인이라고 생각하면 된다. 

 

즉 blog.naver.com.이라는게 원래의 도메인 네임 시스템이다.

여기서 blog가 최하위이며, naver가 2차,  com이 TLD, 마지막 .이 Root DNS라고 생각하면 된다. 

 

 

728x90