비트를 쪼개는 개발자

allen321@naver.com

통신

통신 - DNS

MozarTnT 2024. 8. 13. 16:25
728x90
반응형

 

 

 

 

 

DNS(Domain Name System) 란?

 

  • DNS는 인터넷에서 사용하는 전화번호부와 비슷한 개념이다.
  • 사용자가 입력하는 웹 주소(www.naver.com)를 도메인은 숫자 IP 주소로 변환하여 원하는 주소로 연결시켜 준다.
  • DNS는 여러 과정을 거쳐 단계별로 웹 주소를 IP 주소로 반환한다.
  • DNS 상위 기관은 인증된 기관에게 도메인 주소를 생성, 변경하거나 IP 주소로 변경이 가능한 권한을 부여해준다.
  • 위와 같은 계층형 구조를 가지며 분산 데이터베이스 구조를 가지는것이 DNS의 특징이다.

 

 

 

 

DNS의 구성 요소

 

 

1. 도메인 네임 스페이스

 

  • 도메인 네임 스페이스(Domain Name Space)는 인터넷에서 수많은 도메인 이름이라는 데이터를 체계적으로 구성한 계층 구조이다.
  • 도메인 이름이라는 데이터를 찾기 위해 구조는 트리 형태로 구성되며, 최상위에 루트 도메인이 위치한다.
  • 최상위의 루트 도메인, 그리고 그 하위로 TLD, 2차 도메인, 서브 도메인으로 노드들이 연속적으로 연결된다.
  • 예를 들어 www.naver.com는 아래와 같이 구성된다.
    • . (루트 도메인)
    • com (TLD)
    • naver(2차 도메인)
    • www (서브도메인)

 

 

2. DNS 네임 서버

 

  • 문자열인 도메인 이름을 컴퓨터가 사용하는 IP 주소로 변환하는 과정에서 도메인 네임 스페이스의 트리 구조에 대한 정보가 필요하며 해당 정보를 가지고 있는 서버를 네임 서버라고 한다
  • 네임서버는 DB의 역할과 요청 처리의 기능을 수행한다.
  • 네임 서버는 아래와 같이 구성된다. 
  • 루트 네임 서버: DNS 계층 구조의 최상위에 위치하며, TLD 네임 서버 정보를 제공한다.
  • TLD 네임 서버: 특정 최상위 도메인(TLD)을 관리하며, 해당 도메인의 권한 네임 서버 정보를 제공한다.
  • 권한 네임 서버: 특정 도메인에 대한 최종 IP 주소 정보를 제공한다.

 

 

3. DNS 레코드

  • 인터넷 사용자가 도메인을 통해 특정 페이지를 접속하거나 서비스와 통신을 할때 네임서버에 확인을 하여 미리 설정된 값을 찾아 통신한다.
  • 이때 네임 서버에 미리 설정된 명령이나 들을 DNS 레코드라고 한다.
  • 주요 유형에는 A(IPv4 주소), AAAA(IPv6 주소), MX(메일 서버), CNAME, ANAME 등이 있다.

 

 

4. DNS 리졸버

  • DNS 리졸버(DNS Resolver)는 클라이언트의 도메인 이름 요청을 처리해 IP 주소를 반환하는 역할을 한다.
  • 기본적으로 리졸버는 네임 서버에 요청을 보내 IP 주소를 조회하며, 정보가 없을 경우 다른 네임 서버에 계속 요청을 보낸다.
  • 대부분의 리졸버 기능은 자원의 한계나 제한 때문에 DNS 서버에 구현되며, 클라이언트는 간단한 스터브 리졸버*(Stub Resolver)만을 사용하게 된다.

 

스터브 리졸버란? : 도메인 이름을 IP 주소로 변환하기 위해 복잡한 DNS 구조를 직접 탐색하지 않고, 단일 DNS 서버(Recursive DNS Server)로 질의를 보내며, 스터브 리졸버는 이 서버로부터 최종적인 IP 주소 응답을 받아 웹 브라우저에 전달하는 간단한 리졸버다.

 

 

 

 

 

 

DNS의 반환 과정

 

 

 

  1. 도메인 이름 입력 : 사용자가 브라우저에 도메인 이름을 입력한다. (www.naver.com)
  2. 로컬 캐시 조회 : 컴퓨터나 라우터에 저장된 DNS 캐시에 해당 도메인의 IP 주소가 있는지 확인한다.
    그리고 캐시가 있다면 바로 IP 주소를 반환한다.
  3. 루트 네임 서버 문의: 만약 캐시에 해당 도메인의 IP 주소가 없다면 루트 네임 서버에 문의한다.
    루트 서버는 도메인의 최상위 부분(TLD)을 관리하는 서버의 위치를 알려준다.
  4. TLD 네임 서버 조회: 루트 서버가 반환한 정보에 따라 TLD(Top-Level Domain) 네임 서버에 물어본다.
  5. 권한 네임 서버 조회: TLD 서버는 해당 도메인의 권한 네임 서버(Authoritative Name Server)의 위치를 알려준다.
  6. IP 주소 반환: 권한 네임 서버는 최종적으로 해당 도메인의 IP 주소를 반환한다.
  7. IP 주소 캐싱: 이 IP 주소는 로컬 캐시에 저장되며, 사용자의 브라우저는 나중에도 이 IP 주소를 사용해 웹 서버에 접속하게 된다.

 

 

정리

 

  • DNS는 인터넷에서 도메인 이름(www.naver.com)을 IP 주소(192.168.x.x)로 변환하는 시스템이다.
  • 도메인 네임 스페이스는 계층 구조로 도메인 이름을 관리하며, 네임 서버는 이 정보를 처리하고 전달한다.
  • 리졸버는 클라이언트의 요청을 받아 IP 주소를 조회하고 반환하는 역할을 수행한다.
  • 최종적으로 전체적인 과정은 사용자 입력 -> IP 주소 반환 및 캐싱까지 이어지며 이를 통해 효율적인 인터넷 통신을 가능하게 만들어 준다.

 

 

 

 

 

 

사진 출처 :
https://www.geeksforgeeks.org/working-of-domain-name-system-dns-server/

https://www.hostinger.co.uk/tutorials/what-is-dns

728x90
반응형

'통신' 카테고리의 다른 글

통신 - REST, REST API  (0) 2024.09.10
통신 - HTTP와 HTTPS  (0) 2024.08.01
통신 - TCP/IP와 UDP  (0) 2024.07.29
통신이란 ?  (0) 2024.05.01