[DNS] 도메인 네임 시스템이란?

이상돈·2023년 6월 12일
0

도메인 네임 시스템이란?

웹사이트에 접속 할 때 외우기 어려운 IP주소 대신 도메인 이름을 사용한다.
도메인 이름을 사용했을 때 입력한 도메인을 실제 네트워크상에서 사용하는 IP주소로 바꾸고 해당 IP주소로 접속하는 과정이 필요하다.
이러한 과정, 전체 시스템을 DNS(도메인 네임 시스템)라고 한다.
상위 기관에서 인증된 기관에게 도메인을 생성하거나 IP주소로 변경할 수 있는 '권한'을 부여한다.
DNS는 이처럼 상위 기관과 하위 기관과 같은 '계층 구조'를 가지는 분산 데이터베이스 구조를 가진다.

DNS 구성 요소

DNS는 아래 세 가지 요소로 구성되어있다.
1. 도메인 네임 스페이스(Domain Name Space)
2. 네임 서버(Name Server) = 권한 있는 DNS 서버
3. 리졸버(Resolver) = 권한 없는 DNS 서버

DNS 작동 원리

클라이언트가 도메인명을 브라우저에 검색하면, 먼저 도메인 정보가 저장된 네임서버(DNS 서버)로 가서 도메인과 일치하는 IP주소로 가라고 지시하게 되고, 다시 그 IP주소로 접속하게 되면 홈페이지가 열리는 골격이다.
단지, DNS서버에서 도메인 & IP정보를 얻는 과정이 약간 복잡하게 되어있을 뿐이다. 전세계 도메인 수가 너무 많이 때문에 DNS 서버 종류를 계층화해서 단계적으로 처리하기 때문이다.

DNS 동작 순서

  1. 웹 브라우저에 www.naver.com을 입력하면 먼저 PC에 저장된 Local DNS(기지국 DNS서버)에게 'www.naver.com' 이라는 hostname에 대한 IP 주소를 요청한다.

    Local DNS(기지국 DNS 서버) 란?
    기본적으로 인터넷을 사용하기 위해선 IP를 할당해주는 통신사(SKT, KT, LG 등...)에 등록하게 된다. 컴퓨터의 LAN선을 통해 인터넷이 연결되면, 가입했던 각 통신사의 기지국 DNS서버가 등록되게 된다. 예를 들어, SK통신사 사용하는 집이라면 SK DNS가 자동으로 셋팅 된다.

Local DNS에는 "www.naver.com"의 IP주소가 있을 수도 없을 수도 있다.
만일 예전에 네이버에 접속했던 전적이 있다면, Local DNS에 접속정보가 캐싱이 되어있어, 바로 PC에 IP 주소를 주고 끝난다. (바로 1번 → 8번으로 넘어가 빠르게 웹페이지에 접속할수 있다)

  1. 그러면 Local DNS는 이제 "www.naver.com"의 IP주소를 찾아내기 위해 다른 DNS 서버들과 통신(DNS 쿼리)를 시작한다.
    먼저 Root DNS 서버에게 "www.naver.com"의 IP주소를 요청한다.

    Root DNS(루트 네임서버)란?
    Root DNS는 인터넷의 도메인 네임 시스템의 루트 존이다.
    ICANN이 직접 관리하는 절대 존엄 서버로, TLD DNS(Top-level-Domain DNS)서버 IP 들을 저장해두고 안내하는 역할을 한다.

  2. Root DNS 서버는 "www.naver.com"의 IP 주소를 찾을 수 없어 Local DNS서버에게 "www.naver.com"의 IP 주소를 찾을 수 없다고 다른 DNS 서버에게 물어봐 라고 응답을 한다.

  3. 이제 Local DNS 서버는 com 도메인을 관리하는 TLD DNS서버(최상위 도메인 서버)에 다시 www.naver.com에 대한 IP주소를 요청한다.

TLD(Top-level Domain, 최상위 도메인) DNS Server란?
TLD는 도메인 등록기관이 관리하는 서버로, 도메인 네임의 가장 마지막 부분을 말한다. 예를 틀어 .com이나 .co.kr같은 도메인들을 관리하고 부여하는 서버이다.

  1. com 도메인을 관리하는 DNS서버에도 해당 정보가 없으면, Local DNS서버에게 www.naver.com 의 IP주소를 찾을 수 없음. 다른 DNS서버에게 물어봐 라고 응답을 한다.

  2. 이제 Local DNS서버는 naver.com DNS서버 (Authoritative DNS 서버)에게 다시 www.naver.com 의 IP주소를 요청한다.

Authoritative DNS Server 란?
실제 개인 도메인과 IP 주소의 관계가 기록/저장/변경 되는 서버,
그래서 권한의 의미인 Autoritative가 붙는다
일반적으로 도메인/호스팅 업체의 '네임서버'를 말하지만, 개인이나 회사 DNS 서버 구축을 한 경우에도 여기에 해당하게 된다.

  1. naver.com DNS 서버에는 www.naver.com의 IP주소가 있따.
    그래서 Local DNS서버에게 www.naver.com에 대한 IP주소는 222.122.195.6라는 응답을 한다.

  2. 이를 수신한 Local DNS는 www.nave.com의 IP주소를 캐싱하고, 이후 다른 요청이 있을시 응답할 수 있도록 IP주소 정보를 단말(PC)에 전달해준다.

이렇게 Local DNS 서버가 여러 DNS 서버에 차례대로 (Root DNS 서버 → TLD DNS 서버(.com) → Authoritative DNS 서버(naver.com) 요청하여 그 답을 찾는 과정을 재귀적 쿼리 Recursive Query 라고 부른다.

참고
https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-DNS-%EA%B0%9C%EB%85%90-%EB%8F%99%EC%9E%91-%EC%99%84%EB%B2%BD-%EC%9D%B4%ED%95%B4-%E2%98%85-%EC%95%8C%EA%B8%B0-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC

profile
사람들의 더 나은 삶을 위한 개발자

0개의 댓글