티스토리 뷰

네트워크

DNS서버란?

tioon 2023. 5. 7. 19:22
DNS서버란?

-인터넷 상에서 도메인이름을 IP주소로 변환하는 시스템입니다. 도메인이름과 해당 IP주소를 쌍으로 가지고 있으며 이 DNS서버는 전 세계에 분산되어 있습니다.  모든기기의 IP주소를 활용하여 인터넷 통신하기엔 IP주소를 외우는기 어렵기때문에 도메인 이름을 사용하여 쉽게 통신을 가능하게 하는 서버입니다.

 

 

DNS  계층구조

여기서 하나하나의 박스들을 DNS ZONE이라고 합니다.  (EX. .com은 ROOT DNSZONE에 속함)

(여기서 빨간색 구간을 보시면 .com에 있는 하위 도메인들과 .com도메인이 묶여있습니다. 여기서 .com은  Authoritative name server인데 해당 DNS ZONE에서 가장 최상위 노드이기 때문에  모든 DNS정보를 가지고 있어 가장정확하게 제공하는 DNS서버입니다.)

 

  • 루트 (Root)
    -전 세계에 존재하는 DNS 서버중 최상위에 위치하는 DNS 서버. DNS에서 가장 높은 수준에 있으며 인터넷에 연결된 모든 기기와 DNS 서버들의 DNS 쿼리를 받아 응답을 합니다.
  • 최상위 수준 도메인 (Top-Level Domain, TLD)
    -TLD는 DNS에서 가장 높은 수준의 도메인을 말합니다. 일반 상위수준 도메인(gTLD)와 국가 코드상위수준 도메인(ccTLD)로 나뉩니다. gTLD에는 .com , .net등이 있고, ccTLD에는 .kr , .jp등이 있습니다.

  • 하위 도메인 (Subdomain)
    -최상위 수준 도메인 아래에 위치하는 도메인을 말함. 하위 도메인은 필요에 따라 추가될 수 있습니다. 위의 예시에선 google , example이 있습니다.

 

 

 

 

 

 

DNS 요청-응답 과정
  1. Local DNS 서버로 요청 (1)
    -클라이언트에서 Local DNS 서버로 요청합니다. 해당 서버에서 요청한 도메인의 정보가 있으면 바로 클라이언트로 요청하지만 만약에 해당 서버에 없으면 다음과정을 실행합니다.

  2. Root DNS 서버로 요청 (2,3)
    -Local DNS 서버에 해당 정보가 없다면 Root DNS서버로 질의를 보냅니다. 그 이후 root가 TLD 서버에 대한 정보를 다시 전달합니다.

  3. TLD 서버로 요청 (4,5)
    -Root DNS서버에서 받은 정보를 바탕으로 TLS서버로 요청을 보냅니다. 그럼 해당 도메인네임에 권한이 있는 Authoritative Name Server를찾아서 Local DNS서버로 다시 전달합니다.

  4. Authoritative DNS 서버로 요청 (6,7)
    -이제 TLD 서버에서 응답받은 서버로 질의를해 해당 도메인의 IP주소를 받아가지고 옵니다.

  5. 클라이언트에 응답 (8)
    -이제 받아온 IP주소를 클라이언트에게 전달합니다.

 

 

Local DNS 서버

  • ISP가 제공
    -인터넷 서비스 제공자(ISP)가 제공하는 DNS 서버로, 사용자의 컴퓨터 내부나 사용자가 있는 네트워크 내부에 위치한 DNS서버입니다.

  • DNS 질의 처리
    -사용자가 웹브라우저로, 도메인이름 입력시, 가장 처음으로 DNS 처리 질의가 들어오는 서버입니다.

  • 캐시 저장
    -이 서버는 사용자의 DNS 질의를 처리하고, 최근에 처리한 DNS 정보를 내부 캐시 메모리에 저장하여 다음번에 똑같은 질의가 들어왔을 때 빠르게 결과를 보내줄 수 있습니다.

 

 

Root DNS 서버

  • 전세계에 위치
    -전 세계에 총 13개의 루트 DNS 서버가 존재하며, 각 DNS서버는 각각 다른 위치에 배치되어있습니다.

  • 최상위 도메인(TLD) 관리
    -루트 DNS서버는 각 최상위 도메인(com,org,net,edu)들을 관리합니다.

  • TLD 서버 관리
    -루트 DNS서버는 TLD서버들의 IP주소를 관리합니다. 이를 통해, 도메인 질의가 들어왔을때 TLD서버의 IP주소를 제공함으로써 다음 도메인을 찾을 수 있게 도와줍니다.

 

 

TLD DNS 서버

  • 하위 도메인 서버 정보 제공
    -특정 도메인 IP주소를 직접 제공하는것이 아니라, 해당 도메인에 속하는 하위 도메인들의 DNS서버 IP를 알려줍니다.

  • 최상위 도메인 
    -최상위 도메인(com,org,net,edu 등...)들을 따로 따로 서버를 두어서 서버를 관리합니다.

 

 

 

 

Authoritative DNS 서버

  • 도메인 직접적관리
    -직접적으로 도메인들의 IP정보를 관리합니다. 이를 이용해 사용자에게 해당 도메인의 IP정보를 알려줄 수있습니다.

  • 최하단 위치
    -DNS서버 계층구조에서 가장 최하위에 위치해 있으며, 여기가 마지막입니다.

 

 

 

 

DNS message format
Header  메세지의 정보 
Question 서버에 보내는 질문내용
Answer 질문에 대한 응답
Authority 다른 서버 포인터
Additional 추가정보

DNS 메세지 포맷은 기본적으로 위와 같습니다.

 

 

 

 

 

 

 

Header(총 12BYTE)
ID
QR Opcode AA TC RD RA Z RCODE
QDCOUNT
ANCOUNT
NSCOUNT
ARCOUNT
  • ID - 16비트로 이루어진 식별자로 메세지를 식별할 수 있게 합니다.
  • QR - 1비트 플래그로 DNS 메세지의 종류를 나타냅니다. 0은 질의 , 1은 응답 입니다.
  • Opcode - 4비트 필드로 dns메세지가 어떤 종류의 작업을 수행하는지 나타냅니다.
  • AA - 1비트 플래그로 Authoritative Answer을 나타냅니다.
  • TC - 1비트 플래그로 Truncated를 나타냅니다.
  • RD - 1비트 플래그로 Recursion Desired를 나타냅니다.
  • RA - 1비트 플래그로 Recursion Available을 나타냅니다.
  • Z - 3비트 플래그로 예약된 필드입니다.
  • RCODE - 4비트 필드로 DNS 서버가 수행한 작업의 결과를 나타냅니다.
  • QDCOUNT - 16비트 필드로 , 질의(Query) 섹션에 속하는 질의의 수를 나타냅니다.(질문 1개 = 1)
  • ANCOUNT - 16비트 필드로 , 응답(Response) 섹션에 속하는 응답의 수를 나타냅니다. (여러개가 될 수도있음)
  • NSCOUNT , ARCOUNT - 각각 Name Server와 Additional Record Count의 수를 나타냅니다.

 

 

 

Question (최소 4BYTE)
NAME
QTYPE
QCLASS
  • NAME -질문을 할 대상 도메인 이름입니다. 이경우에 각부분의 길이와 함께 분리하여 저장되는데
    예를들어 , "www.example.com"의 경우 "3www7example3com0"으로 입력됩니다.(각 value앞에 value의 길이를 적고 마지막엔 0으로 종료를 나타냄)

  • QTYPE - 질문 대상 도메인 이름에 대한 정보를 요청하는데 사용되는 질의 유형을 나타냅니다.즉, 질문의 형태를 나타냅니다.  대표적으로 A (IPv4주소) , AAAA(IPv6주소) , MX (메일 서버) , TXT(텍스트파일) 등이 있습니다.

  • QCLASS - 질의 유형에 대한 질의 클래스를 나타냅니다. 일반적으로는 1 (인터넷)이 사용됩니다.

 

 

 

Answer (다수의 응답을 가질 수 있음)
NAME
TYPE
CLASS
TTL
RDLENGTH
RDATA
  • NAME - 질문의 NAME 필드와 같은 도메인이름 (포인터로 가져옴)
  • TYPE - 질문의 QTYPE 필드와 같음, 대표적으로 A (IPv4주소) , AAAA(IPv6주소) , MX (메일 서버) , TXT(텍스트파일) 등이 있습니다.`
  • CLASS - 질문의 CLASS 필드와 같음
  • TTL - 응답된 레코드의 TTL(Time-To-Live)값 , 이값은 해당 레코드가 캐시될 수 있는 시간을 결정함.
  • RDLENGTH - RDATA 필드의 길이를 바이트 단위로 나타냅니다.
  • RDATA -질문에 대한 응답으로, 요청한 도메인 이름과 연관된 리소스 레코드에 대한 정보를 포함함.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함