DNS 알아보기

임지선·2024년 8월 22일
0

컴퓨터 네트워크

목록 보기
3/11

DNS 란?

DNS(Domain Name System, 도메인 네임 시스템)는 인터넷에서 도메인 이름을 IP 주소로 변환해주는 시스템입니다. 이를 통해 사람이 기억하기 쉬운 도메인 이름(예: www.example.com)을 인터넷 프로토콜(IP) 주소(예: 192.0.2.1)로 변환하여, 컴퓨터와 서버 간의 통신이 가능하게 합니다.
DNS는 인터넷의 핵심 인프라 중 하나로, 도메인 이름을 IP 주소로 변환하여 사용자가 웹사이트를 방문할 수 있도록 합니다. DNS는 도메인 이름 관리, 부하 분산, 그리고 빠른 정보 검색을 통해 인터넷의 효율적이고 신뢰성 있는 운영을 지원합니다.

DNS 질의는 일반적으로 UDP를 사용하여 빠르고 효율적으로 처리됩니다. UDP는 연결 설정 없이 데이터를 신속하게 전송할 수 있으며, DNS 질의와 응답의 특성상 작은 데이터 패킷과 빠른 응답이 요구되기 때문에 적합합니다. 그러나 데이터의 양이 많거나 신뢰성이 필요한 경우에는 TCP가 사용될 수 있습니다.



DNS의 주요 개념

  • 도메인 이름:
    도메인 이름은 웹사이트 주소를 식별하는 문자열입니다. 예를 들어, "example.com"이 도메인 이름입니다.
  • IP 주소:
    IP 주소는 네트워크 상에서 컴퓨터나 서버를 식별하는 숫자 형식의 주소입니다. 예를 들어, "192.0.2.1"은 IPv4 주소의 예입니다.
  • DNS 서버:
    DNS 서버는 도메인 이름과 IP 주소 간의 매핑 정보를 저장하고 제공하는 서버입니다. 여러 종류의 DNS 서버가 있으며, 각각 특정 역할을 수행합니다.



DNS 동작 방식

1. 사용자의 요청

사용자가 웹 브라우저에 도메인 이름을 입력하면, 브라우저는 해당 도메인 이름에 대한 IP 주소를 찾기 위해 DNS 쿼리를 시작합니다. 예를 들어, 사용자가 www.example.com을 입력하면, 브라우저는 이 도메인 이름을 IP 주소로 변환하려고 합니다.

2. 로컬 DNS 캐시 확인

브라우저는 먼저 로컬 DNS 캐시를 확인합니다. 만약 이 캐시에 이미 www.example.com의 IP 주소가 저장되어 있다면, 브라우저는 해당 IP 주소를 사용하여 웹 서버에 직접 연결합니다. 로컬 캐시는 일반적으로 운영 체제와 웹 브라우저에서 관리됩니다.

3. DNS 리졸버 (Resolver)

만약 로컬 캐시에 정보가 없다면, 브라우저는 DNS 리졸버에 쿼리를 보냅니다. DNS 리졸버는 DNS 쿼리를 처리하고, 필요한 정보를 찾기 위해 다른 DNS 서버와 상호 작용하는 역할을 합니다. 리졸버는 보통 인터넷 서비스 제공업체(ISP)에 의해 운영됩니다.

4. 재귀적 쿼리

리졸버는 도메인 이름의 IP 주소를 찾기 위해 여러 DNS 서버에 재귀적 쿼리를 보냅니다. 이 과정은 다음과 같이 진행됩니다:

루트 DNS 서버
리졸버는 먼저 루트 DNS 서버에 쿼리를 보냅니다. 루트 DNS 서버는 인터넷의 모든 도메인 이름 시스템의 최상위에 위치하며, 최상위 도메인(TLD) 서버의 위치 정보를 반환합니다. 루트 서버는 도메인 이름의 끝부분(예: .com, .org)에 대한 정보를 알고 있습니다.

TLD DNS 서버
루트 DNS 서버가 반환한 정보에는 TLD DNS 서버의 주소가 포함되어 있습니다. 리졸버는 이제 이 TLD DNS 서버에 쿼리를 보냅니다. TLD DNS 서버는 특정 최상위 도메인(예: .com)에 대한 권한 있는 DNS 서버의 주소를 제공합니다.

권한 있는 DNS 서버
TLD DNS 서버가 제공한 정보를 바탕으로 리졸버는 권한 있는 DNS 서버에 쿼리를 보냅니다. 권한 있는 DNS 서버는 특정 도메인 이름(예: example.com)에 대한 최종 정보를 가지고 있습니다. 이 서버는 도메인 이름과 관련된 IP 주소를 반환합니다.

5. 응답 반환

리졸버는 권한 있는 DNS 서버로부터 받은 IP 주소를 로컬 캐시에 저장하고, 웹 브라우저에 이 IP 주소를 반환합니다. 브라우저는 이 IP 주소를 사용하여 해당 웹 서버에 직접 연결합니다.

6. 웹 서버와의 연결

웹 브라우저는 반환된 IP 주소를 사용하여 웹 서버에 연결하고, 사용자에게 요청한 웹 페이지를 다운로드합니다.

7. 캐시 업데이트

리졸버는 IP 주소를 캐시하여 다음 번에 동일한 도메인 이름에 대한 요청이 있을 때 더 빠르게 응답할 수 있도록 합니다. 캐시된 정보의 유효 기간은 TTL(Time-To-Live) 값에 의해 결정됩니다. TTL 값은 도메인 이름의 DNS 레코드에 설정되어 있으며, 이 시간 동안 캐시된 정보가 유효하다고 간주됩니다.



DNS 질의 & DNS 레코드

DNS 질의(DNS Query)도메인 이름 시스템(DNS)을 사용하여 도메인 이름과 관련된 정보를 요청하는 과정을 말합니다. 사용자가 웹사이트에 접속하거나 특정 서비스를 이용하려고 할 때, DNS 질의가 사용되어 도메인 이름을 IP 주소 등과 같은 유용한 정보로 변환합니다. DNS 질의는 클라이언트(예: 웹 브라우저)와 DNS 서버 간의 상호작용을 통해 수행됩니다.

DNS 레코드DNS 시스템에서 도메인 이름과 관련된 정보를 저장하는 데이터 항목입니다. 각 레코드는 특정 유형의 정보를 제공하며, 도메인 이름 시스템의 핵심 기능을 수행합니다.

DNS 질의클라이언트가 DNS 서버에 보내는 요청입니다. 질의는 도메인 이름에 대한 특정 정보를 요청합니다.
DNS 레코드DNS 서버가 응답으로 제공하는 정보입니다. 레코드는 도메인 이름과 관련된 실제 데이터를 포함합니다.



DNS 질의 방식

  • 재귀 쿼리:
    DNS 서버가 클라이언트의 요청을 완전히 처리하고 최종 응답을 반환하는 방식입니다. 클라이언트는 DNS 서버에게 질의 결과를 직접 받으며, 서버는 모든 필요한 DNS 서버에 질의를 보내어 응답을 집계합니다.
  • 비재귀 쿼리:
    DNS 서버가 클라이언트의 요청에 대해 직접적인 응답을 제공하며, 클라이언트가 필요한 정보를 얻기 위해 추가 질의를 할 수 있습니다. 이 경우, DNS 서버는 클라이언트가 요청한 정보가 자신의 캐시나 데이터베이스에 있는 경우에만 응답하며, 정보가 없으면 다른 서버에 질의를 보낼 수 없습니다.
  • 반복 쿼리:
    클라이언트가 DNS 서버에 질의를 보내면, DNS 서버는 클라이언트에게 다른 DNS 서버의 주소를 반환하고, 클라이언트는 그 DNS 서버에 질의를 계속해서 보내는 방식입니다.



DNS 질의

  • A 레코드 질의: 도메인 이름을 IPv4 주소로 변환하는 요청.
  • AAAA 레코드 질의: 도메인 이름을 IPv6 주소로 변환하는 요청.
  • MX 레코드 질의: 도메인 이름의 메일 서버를 찾는 요청.
  • NS 레코드 질의: 도메인 이름을 관리하는 네임 서버를 찾는 요청.
  • CNAME 레코드 질의: 도메인 이름의 별칭을 찾는 요청.
  • TXT 레코드 질의: 도메인 이름에 대한 텍스트 정보를 찾는 요청.
  • PTR 레코드 질의: IP 주소를 도메인 이름으로 변환하는 요청.
  • SOA 레코드 질의: 도메인 이름에 대한 권한 있는 정보를 요청.



DNS 레코드

  • A 레코드: 도메인 이름을 IPv4 주소로 변환하는 레코드.
  • AAAA 레코드: 도메인 이름을 IPv6 주소로 변환하는 레코드.
  • MX 레코드: 도메인 이름의 메일 서버와 우선순위를 지정하는 레코드.
  • NS 레코드: 도메인 이름을 관리하는 네임 서버의 주소를 지정하는 레코드.
  • CNAME 레코드: 도메인 이름의 별칭을 지정하는 레코드.
  • TXT 레코드: 도메인 이름에 대한 텍스트 정보를 포함하는 레코드.
  • PTR 레코드: IP 주소를 도메인 이름으로 매핑하는 레코드.
  • SOA 레코드: 도메인 이름에 대한 권한 있는 정보(예: 네임 서버, 관리자 이메일)를 제공하는 레코드.

출처

이미지 출처 : https://academy.bit2me.com/en/what-is-dns-server/

profile
성장하는 프론트엔드 개발자입니다.

0개의 댓글