Home 도메인 네임 시스템 (DNS)
Post
X

도메인 네임 시스템 (DNS)

DNS에 대해 알아보자.


Domain

Domain은 인터넷에 연결된 컴퓨터의 IP 주소를 사람이 기억하기 쉽게 문자로 만든 인터넷 주소입니다.

Domain

Domain Name은 위 그림에서 ‘https://’‘www.’ 을 제외한 나머지 부분만을 말합니다. 또한, 우측에서 부터 최상위 도메인(Top Level Domain), 2차 도메인(Second-Level Domain) 영역으로 구성되어 있습니다.
(3차,4차 도메인도 존재합니다.)

  • 도메인 이름 부여 원칙
    • 영문자 A~z, 숫자 0~9 또는 하이픈(-)의 조합으로만 표현되며, 영문자의 대, 소문자는 구별하지 않고 같은 것으로 간주한다.
    • 첫 글자는 영문자로 시작하여야 하며, 하이픈으로 끝날수 없다. (우리나라에서는 1999년 6월 30일부터 숫자로 시작되는 도메인 이름도 허용되었다)
    • 길이는 각 단계별로 최소 2자에서 최대 63자까지 가능하다.
    • 컴마(,), 언더바(_) 등의 기호는 사용할 수 없다.
    • 전세계적으로 중복되지 않도록 고유해야 한다.
      (이미 사용되고 있는 도메인 이름은 쓸 수 없다).

Domain 체계

  1. 최상위 도메인 (Top Level Domain)
    도메인 레벨 중 가장 높은 단계에 있는 도메인입니다.
    7개의 일반 도메인(gTLD)과 190여개의 국가 도메인(ccTLD)으로 구성되어 있습니다.
    최상위 도메인은 도메인의 목적, 종류, 국가 를 나타냅니다.

    TLD

  2. 2차 도메인 (Second Level Domain)
    도메인 이름을 등록한 조직을 나타냅니다.
    단과 대학과 학술 시설은 ac, 회사는 co 등

  3. 도메인 이름 (Domain Name)
    임의로 지정할 수 있는 자율적인 이름입니다.


DNS (Domain Name System)

웹 사이트에 접속할 때 외우기 어려운 IP 주소 대신 도메인 이름을 사용합니다.

도메인 이름을 사용했을 때 입력한 도메인을 IP 주소로 변환하여 IP 주소로 접속하는 과정이 필요합니다.

즉, DNS는 호스트의 도메인 이름을 IP 주소로 변환하거나, 그 반대의 역할을 수행하는 시스템입니다.

원래는 IP 주소를 브라우저에 입력해야하지만 IP 주소를 외우는 것은 불편하기 때문에 마치 핸드폰에 연락처를 저장하듯 전화번호부에 정리해 쉽게 접근하기위해 사용합니다.

ex

  • 간단 예시 DNS-ex 사용자가 브라우저에 ‘naver.com’을 입력했을 때의 과정
    1. 도메인 주소 naver.com을 입력하면, 도메인 주소들을 갖고있는 네임서버(DNS 서버)에 접속합니다.
    2. 네임 서버는 접속한 도메인 주소와 연결된 IP 주소를 확인하고, IP 주소를 사용자 PC에 전달합니다.
    3. 사용자 PC는 전달받은 IP 주소로 접속합니다.

DNS 서버 종류

  1. Local DNS (기지국 DNS 서버)
    컴퓨터의 LAN선을 통해 인터넷을 연결하면, 가입했던 통신사의 기지국 DNS 서버가 등록됩니다.

    URL에 Domain Name을 입력하면 IP 주소를 찾기위해ㅐ 가장 먼저 찾는 DNS 서버입니다.

  2. Root DNS
    최상위 DNS 서버로 해당 DNS부터 시작해서 아래로 다음 DNS 서버에게 차례로 물어보는 구조로 동작합니다.
    (예시 : google.com 주소 중 .com 주소를 알고 있으니 com DNS 서버의 정보를 주는 형태)

Root-DNS

  1. Top-Level DNS (TLD 서버)
    root 도메인 바로 아래 단계의 도메인으로 위에서 알아봤듯이 국가 도메인과 일반 도메인으로 구분됩니다.

    도메인 등록 기관이 관리하는 서버로 Authoritative DNS 서버의 주소를 저장하고 안내하는 역할을 한다.

  2. Second-Level DNS (= Authoritative DNS)
    실제 개인 도메인과 IP 주소의 관계가 기록(저장, 변경)되는 서버로 도메인/호스팅 업체의 DNS를 말한다.

    Root DNS에서 TLD 서버주소를 받아 요청했던 것처럼 TLD 서버에서 Second-Level DNS 서버를 리턴해줍니다.
    (예시 : google.com에서 com DNS 서버 (TLD 서버)로 갔다면 그다음 google DNS 서버로 요청)

  3. Sub DNS (최하위 서버)
    서브 도메인 서버는 www. dev. mail. blog. 등 TLD 서버에서도 여러 서비스를 구분하는 도메인 네임으로 정리할 수 있습니다.

  4. Resolver (리졸버)
    웹 브라우저와 같은 DNS 클라이언트의 요청을 네임 서버로 전달하고 네임 서버로부터 정보(도메인 이름과 IP 주소)를 받아 클라이언트에게 제공하는 기능을 수행합니다.

  • 최종 정리
    Total-DNS

DNS 작동 원리

위에서 생략된 DNS 안에서 도메인 주소로 IP 주소를 찾아내 전달하는 과정을 살펴보겠습니다.

  • 동작 순서

    1. 웹 브라우저에 도메인 주소(naver.com)를 입력하면 먼저 PC에 저장된 Local DNS(기지국 DNS 서버)에게 “naver.com”이라는 Hostname에 대한 IP 주소를 요청합니다.

    2. Local DNS에서 해당 도메인 주소의 IP 주소가 없다면 먼저 Root DNS에게 요청합니다.
      (접속정보가 캐싱 되어있다면 바로 IP주소를 전달해줍니다.)

    3. Root DNS가 찾을 수 없다는 응답을 해오면 응답받은 최상위 도메인을 관리하는 TLD DNS에 요청합니다.

    4. TLD DNS가 찾을 수 없다는 응답을 해오면 응답받은 2차 도메인을 관리하는 Second-Level DNS에 요청합니다.

    5. 같은 방식으로 최하위 DNS 서버까지 IP 주소를 받을 때까지 내려갑니다.

    6. IP 주소를 알고 있는 DNS 서버는 Local DNS에 IP 주소를 응답해주고 Local DNS는 해당 IP 주소를 캐싱한 후 다음 요청부터는 바로 응답해줍니다.

    7. 사용자 PC는 응답받은 IP 주소로 홈페이지를 응답 받습니다.

    Recursive Query (재귀적 질의)
    Local DNS 서버가 여러 DNS 서버를 차례로 요청하며 IP 주소를 찾는 과정


DNS 관점에서 Domain

우리가 아무 생각없이 사용하던 도메인 url은 다음과 같이 구성되어 있던 것이다.

DNS-Domain

모든 Computer들은 Root DNS의 IP 주소는 알고 있습니다.

Root DNS 서버는 TLD(Top-level domain)을 담당하는 서버 목록과 IP를 알고 있습니다.

TLD DNS 서버는 Second-level domain을 담당하는 서버 목록과 IP를 알고 있습니다.

Second-level DNS 서버는 SUb domain을 담당하는 서버 목록과 IP를 알고 있습니다.

결국, blog.example.com.의 IP주소는 Sub DNS 서버가 알고 있습니다.


DNS 캐시 (Cache)

도메인 주소를 입력할 때마다 여러 DNS 서버를 요청해가며 IP 주소를 받아오는 것은 비효율적입니다.

떄문에 PC에는 DNS Cache안에 자주쓰는 Domain Name 주소를 저장해 놓습니다.

(Window 기준 cmd창에 ipconfig /displaydns 입력시 확인할 수 있습니다.)


참조

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.