본문 바로가기
목차훔치기/하루 3분 네트워크 교실

DNS (하루 3분 네트워크 교실)

by 해삼2 2023. 7. 14.
728x90
반응형
DNS

DNS란

DNS(Domain Name System)는 인터넷에서 사용되는 주소 체계인 IP 주소와 사람이 이해하기 쉬운 도메인 

이름을 매핑하는 시스템입니다. DNS는 도메인 이름을 IP 주소로 변환하거나, 반대로 IP 주소를 도메인

이름으로 변환하는 역할을 합니다.

간단히 말하면, DNS는 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 서비스입니다. 

예를 들어, "www.example.com"이라는 도메인 이름을 사용하여 웹 브라우저에서 해당 웹 사이트에 접속

하려고 할 때, 먼저 DNS가 이 도메인 이름을 해당 웹 사이트의 IP 주소로 변환합니다. 그리고 

웹 브라우저는 이 IP 주소를 사용하여 웹 서버와 통신하여 웹 페이지를 가져옵니다.

DNS는 전 세계적으로 분산된 서버 네트워크로 구성되어 있습니다. 이 서버 네트워크에는 도메인 이름과 

해당하는 IP 주소를 저장하는 DNS 레코드가 포함되어 있습니다. 사용자가 도메인 이름을 입력하면, DNS 

서버는 해당 도메인 이름의 IP 주소를 찾기 위해 계층적인 방식으로 검색을 수행합니다. 이 검색 

프로세스를 통해 DNS는 원하는 도메인 이름의 IP 주소를 찾아서 사용자에게 제공합니다.

DNS는 인터넷에서 매우 중요한 역할을 담당하고 있습니다. 도메인 이름을 사용하여 웹 사이트에 접속하는 

것은 물론, 이메일 전송, 파일 공유, 음성 및 비디오 통화 등 인터넷의 거의 모든 서비스에 DNS가 

사용됩니다. DNS의 역할은 인터넷 사용자에게 편의성을 제공하고, 네트워크 트래픽을 효율적으로 

관리하며, 인터넷 리소스의 분산과 안정성을 유지하는 데 도움을 줍니다.

 

 

DNS 구성요소

 

DNS 클라이언트: 

DNS 서비스를 사용하는 컴퓨터 또는 장치를 말합니다. 일반적으로 웹 브라우저나 이메일 클라이언트 

등이 DNS 클라이언트로 동작하여 도메인 이름을 IP 주소로 변환하는 작업을 수행합니다.

DNS 서버: 

DNS 정보를 저장하고 관리하는 서버입니다. DNS 서버는 계층적인 구조로 구성되어 있으며, 사용자의 

요청에 따라 도메인 이름에 해당하는 IP 주소를 찾아 제공합니다. 주요한 종류의 DNS 서버로는 

리졸버(Resolver), 루트 서버(Root Server), 최상위 도메인(Top-Level Domain) 서버, 인증 기관 서버 등이 

있습니다.

DNS 레코드: 

DNS 서버에 저장되는 도메인 이름과 IP 주소의 매핑 정보입니다. 다양한 유형의 DNS 레코드가 있으며, 

각각의 레코드 유형은 특정한 용도에 맞게 사용됩니다. 일반적인 DNS 레코드 유형으로는 A 레코드

(IPv4 주소와 도메인 이름 매핑), AAAA 레코드(IPv6 주소와 도메인 이름 매핑), CNAME 레코드(Canonical Name, 도메인 이름에 대한 별칭), MX 레코드(Mail Exchanger, 이메일 서버 정보) 등이 있습니다.

DNS 캐시: 

DNS 캐시는 이전에 조회한 도메인 이름과 IP 주소의 매핑 정보를 일시적으로 저장하는 메모리 또는 

디스크 공간입니다. DNS 클라이언트나 서버는 도메인 이름에 대한 IP 주소를 조회할 때 캐시를 

우선적으로 검색하여 네트워크 부하를 줄이고 응답 시간을 단축할 수 있습니다.

DNS 프로토콜: 

DNS는 전송에 사용되는 표준 프로토콜입니다. 일반적으로 UDP(User Datagram Protocol) 포트 53을 

사용하여 DNS 요청과 응답을 전송합니다. DNS는 계층적인 구조를 가지고 있으며, 

클라이언트와 서버 간의 상호작용을 위해 특정한 메시지 형식과 프로토콜 규칙을 따릅니다.

이러한 구성 요소들이 함께 동작하여 DNS는 도메인 이름과 IP 주소 간의 매핑을 처리하고 인터넷 

사용자에게 원활한 서비스를 제공합니다.

 

DNS 작동 방식

 

도메인 이름 조회:

사용자가 도메인 이름(예: www.example.com)을 입력하면, DNS 클라이언트는 운영체제의 DNS 설정 또는

설정된 DNS 서버에 도메인 이름 조회를 요청합니다. DNS 클라이언트는 로컬 DNS 캐시를 검색하여 이전에 도메인 이름에 대한 IP 주소를 저장한 경우에는 캐시에서 바로 응답을 받을 수 있습니다. 로컬 DNS 캐시에

해당 정보가 없는 경우, DNS 클라이언트는 DNS 서버에 질의를 전달합니다.

 

계층적인 질의:

DNS 클라이언트는 우선적으로 루트 DNS 서버에 도메인 이름 조회를 요청합니다. 루트 DNS 서버는 전 세계에 분산된 서버로 구성되어 있으며, 이 중 하나로부터 응답을 받습니다. 루트 DNS 서버는 최상위 도메인

(Top-Level Domain, TLD)에 대한 정보를 가지고 있으며, TLD 서버의 IP 주소를 DNS 클라이언트에게

알려줍니다.

 

TLD 서버 조회:

DNS 클라이언트는 TLD 서버에 도메인 이름 조회를 요청합니다. TLD는 도메인 이름의 마지막 부분으로,

예를 들어 ". com"이나 ". net" 등이 있습니다. TLD 서버는 다음 단계로 질의를 전달하기 위해 해당 도메인

이름에 대한 권한이 있는 네임 서버의 IP 주소를 DNS 클라이언트에게 제공합니다.

 

권한 있는 네임 서버 조회:

DNS 클라이언트는 권한 있는 네임 서버에 도메인 이름 조회를 요청합니다. 권한 있는 네임 서버는 특정

도메인의 DNS 정보를 저장하고 관리합니다. 권한 있는 네임 서버는 도메인 이름에 해당하는 IP 주소를

DNS 클라이언트에게 응답합니다.

 

결과 반환:

DNS 클라이언트는 받은 IP 주소를 로컬 DNS 캐시에 저장하고, 해당 IP 주소를 사용하여 웹 브라우저 등의

애플리케이션에 전달합니다. 애플리케이션은 IP 주소를 사용하여 해당 도메인의 서버에 연결하고, 웹 페이지, 이메일, 파일 등을 요청하고 받을 수 있습니다.

 

이와 같은 계층적인 구조를 통해 DNS는 전 세계적으로 분산된 서버 네트워크를 활용하여 도메인 이름과

IP 주소 간의 매핑을 빠르고 효율적으로 처리합니다. 이를 통해 사용자는 사람이 이해하기 쉬운 도메인 이름을 사용하여 인터넷 서비스에 접속할 수 있습니다.

 

 

 

*바쁜 사람을 위한 깜찍한 정리

DNS는 도메인이나 IP주소를 입력하면 IP는 도메인으로 도메인은 IP주소로 서로 매핑을 시켜 해당하는 웹 사이트나 이메일 전송, 등을 가능하게 해 주는 것을 의미한다. 예를 들어 우리는 naver.com을 치면 이 DNS는 naver.com
라는 도메인주소를 IP주소로 변환시켜 해당하는 IP주소와 도메인 주소로 DNS서버에 요청을 보내 해당 사이트를 찾아 접속시켜주는 역할을 한다. 이미 한번 접속한 기록이 있다면 캐시라는 것을 생성해 다음번에 들어갈 때 그
캐시를 읽어 접속 속도등 가독성을 높여주고 만약 처음 방문한 페이지라면 DNS 서버에 질의를 전달시켜 캐시를
생성시키는 역할을 하는 것이 DNS이다.
728x90
반응형