개발일지

DNS(Domain Name System) 알아보기 본문

CS, WEB

DNS(Domain Name System) 알아보기

lyjin 2024. 8. 24.

도메인 네임과 DNS 서버

도메인 네임 (Domain Name)

  • IP 주소와 대응하는 문자열 형태의 주소를 말한다.
  • 인터넷 상에서 서로 다른 네트워크가 통신하기 위해서는 IP 주소가 필요하다. 하지만 숫자로 이루어진 IP 주소를 하나하나 외우긴 번거로운 일이기 때문에, 사용자가 기억하기 쉽도록 문자열 형태로 제공해준다.
  • 또한 IP 주소 변경에도 유연하다. IP 주소가 변경 되더라도 도메인 네임에 새로운 IP 주소를 연결해주기만 하면 된다.

 

DNS 서버

  • 실제 네트워크 계층에서는 IP 주소를 사용하기 때문에, 도메인 네임 ↔ IP 주소를 변환하는 단계가 필요하다.
  • DNS 서버도메인 네임과 IP 주소 간 매핑 정보를 관리하는 서버로, 사용자가 도메인 주소로 접속 했을 때 이에 대응하는 IP 주소를 찾아 반환해준다.

 


도메인 네임 구조

  • 도메인 네임은 계층적인 구조를 갖고 있으며, 각 계층을 점(.)을 기준으로 구분한다.
  • 오른쪽으로 갈수록 상위 계층의 도메인 네임이다.
예시) www.naver.com.

[sub].[second-level].[TLD]

 

루트 도메인 (Root domain)

  • 가장 최상단에 위치하는 도메인 네임으로, 도메인 네임의 시작점이 된다.
  • 맨 끝에 점(.)으로 표시하지만 보통은 생략한다.

 

최상위 도메인 (Top-Level Domain, TLD)

  • 루트 도메인 바로 아래 위치하는 최상위 도메인
  • 크게 국가 코드 최상위 도메인일반 최상위 도메인으로 나뉜다.
    • 국가 코드 최상위 도메인 (ccTLD): .kr, .jp, .us 등
    • 일반 최상위 도메인 (gTLD): .com, .net, .biz, .edu 등

 

2단계 도메인(Second-level domain)

  • TLD의 하위 레벨 도메인
  • 보통 웹 사이트나 특정 조직의 이름을 나타낸다.
    • ex) .naver, .google

 

서브 도메인 (Sub domain)

  • 2단계 도메인의 하위 레벨 도메인
  • 여러 단계를 가질 수 있으며 보통은 3~5단계로 이뤄진다.
  • 특정 서비스나 호스트를 나타낸다.
    • ex) www.naver.com, mail.naver.com

 

전체 주소 도메인 네임 (Fully-Qualified Domain Name, FQDN)

  • 모든 레벨의 도메인을 포함하는 도메인 이름
    • ex) www.naver.com.

 

호스트 네임 (Host name)

  • FQDN의 맨 첫 부분, 최종적으로 특정 호스트를 식별하는 부분
    • ex) www.naver.com. , hello.world.example.com.

 

 


네임 서버(DNS 서버) 종류

  • 도메인 네임과 동일하게 계층적인 구조를 가진다.

 

로컬 네임 서버 (=Resolver)

  • 클라이언트가 입력한 도메인에 대해 가장 먼저 쿼리를 받는 네임 서버
  • 일반적으로 ISP에 의해 제공되거나 공개 DNS 서버를 이용한다.
  • 요청 받은 도메인에 대응하는 IP 주소를 찾기 위해 재귀/반복 쿼리를 수행한다.
  • DNS 캐싱을 관리하는 서버이다. 도메인 네임의 IP 주소를 이미 알고 있다면 바로 응답하고, 모를 경우 리졸빙(resolving)을 시작한다.

 

루트 네임 서버

  • DNS 계층의 최상단에 위치한 서버로, TLD 네임 서버의 IP 주소를 반환한다.

 

TLD 네임 서버

  • TLD 도메인을 관리하는 네임 서버로, 하위 레벨 네임 서버의 주소를 반환한다.

 

책임 네임 서버 (Authoritative name server)

  • 실제 도메인 네임과 IP 주소를 매핑한 정보를 관리하고 있는 서버로, 요청 받은 도메인의 최종 IP 주소를 반환한다.
  • 해당 IP 주소는 리졸버를 거쳐 클라이언트에게 전달된다.

 

 


리졸빙 과정 - 질의 방법

 

재귀 쿼리 vs. 반복 쿼리

 

 

재귀 쿼리 (Recursive Query)

  • 클라이언트가 리졸버에게 도메인 네임을 요청하면, 리졸버가 재귀적인 질의 과정을 거쳐 얻은 최종 IP 주소를 클라이언트에게 전달하는 방식이다.
  • “리졸버 → 루트 네임 서버 → TLD 네임 서버 → 책임 네임 서버” 각 서버는 하위 서버에게 질의하고 응답 받을 결과를 역순으로 전달한다.

 

반복 쿼리 (Iterative Query)

  • 클라이언트가 리졸버에게 도메인 네임을 요청하면, 리졸버는 각 네임 서버에 순차적으로 질의하고 응답 받는 과정을 반복한다. (“리졸버 ↔ 루트”, “리졸버 ↔ “, “리졸버 ↔ TLD“, “리졸버 ↔ 책임“)
  • 각 네임 서버는 다음으로 질의할 네임 서버의 주소를 응답하며, 리졸버는 최종적으로 책임 네임 서버로부터 IP 주소를 얻을 수 있다.

 

 


DNS 캐싱 (DNS Caching)

  • DNS 캐싱은 응답 받았던 결과 값을 임시 저장 하고 이후 동일한 요청이 들어오면 별다른 리졸빙 과정 없이 바로 반환하는 기법이다.
  • 이를 통해 불필요한 트래픽을 줄이고 응답 시간을 단축 시킬 수 있다.
  • 클라이언트(ex. OS, 브라우저), 로컬 네임 서버(ex. ISP) 등에서 DNS 캐싱이 이루어진다.
  • 캐싱된 정보는 TTL(Time To Live)동안만 유지되고 TTL이 만료되면 해당 정보가 삭제 된다.

 

 


+) 이전에 AWS Route 53으로 도메인 주소를 연결해 봤을 때 의문 가득한 상태로 여러 글을 참고 했었던 기억이 있다.

다시 보니 네임 서버가 뭔지, TTL 설정이 뭔지, Route 53 역할이 뭔지 감이 잡힌다!

 

 

AWS 서버 구축 및 HTTPS 적용기_1. 도메인 연결 및 프로젝트 배포 (Route53, EC2)

개요이전까지 나는 EC2 인스턴스 생성해서 프로젝트 띄우는게 전부였다. 그러다 이번 회사 업무로 간단한 서버를 구축해볼 기회가 생겼다. 그렇게해서 처음으로 도메인 연결부터 HTTPS까지 적용

93960028.tistory.com

 

 

참고

[도서] 혼자 공부하는 컴퓨터 구조+운영체제

https://aws.amazon.com/ko/route53/what-is-dns/

https://nordvpn.com/ko/blog/dns-explained/

'CS, WEB' 카테고리의 다른 글

쿠키 vs. 세션 스토리지 vs. 로컬 스토리지  (0) 2024.09.07
프로세스와 스레드  (0) 2024.02.28
로드밸런싱이란?  (0) 2024.02.07
OAuth 2.0 알아보기  (0) 2022.12.12
PASETO (Platform-Agnostic SEcurity TOkens)  (0) 2022.11.25