Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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
Archives
Today
Total
관리 메뉴

과거의 내가 미래의 나에게

Domain Name System 학습(2) 본문

CS

Domain Name System 학습(2)

양바삭 2023. 8. 2. 01:03

웹 서버는 IP 주소를 통해 사용자가 원하는 사이트로 이동시켜준다. 그러나 사람들이 IP 주소를 외우기에는 벅찼고, 그렇기에 문자로 이루어진 도메인 주소를 만들어냈다. 그리고 도메인 주소를 통해 IP 주소를 알 수 있도록 DNS가 만들어진다.  이번 글에서는 DNS가 어떤 구성으로 이루어져 있는지에 대해 살펴보겠다. 

 

 

 

DNS 구성

DNS(Domain Name System)에서 웹사이트의 IP 주소와 도메인 주소를 이어주기 위해 일하는 서버들을 DNS Server라고 한다. 이 DNS Server는 네임 서버, 도메인 서버 등으로 다양하게 불리는 데 어찌되었든 이들이 하는 일은 웹사이트의 IP 주소와 도메인 주소를 이어주는 것이다. 

DNS 서버를 분류하기 위해 많은 글을 읽어봤지만 부족한 정보 수집 능력 탓인지 명확한 답을 얻을 수 없었고, 그렇기에 정답이 아닌 내가 이해한 방향으로 정리해보려 한다.

 

DNS 서버는 Recursive DNS Server와 Authoritative DNS Server로 나눌 수 있다.

 

1. Authoritative DNS Server(이하 Authoritative)

Authoritative는 자체적으로 데이터를 가지고 있는 DNS 서버이다. 즉, 도메인 주소에 대한 IP 주소 정보를 가지고 있다는 것이다. 주소에 대한 질의가 들어오면 다른 서버를 참고하거나 의존하지 않고 오로지 자기 자신의 영역에 대한 정보만 가지고 있고 그에 따른 응답만 할 뿐이다. 만약 자신이 가지고 있지 않은 정보에 대해 물어본다면 답변하지 않는다. Authoritative의 뜻은 '권위있는' 이라는 뜻인데 본인이 관리하고 있는(권위를 가지고 있는) 정보만 다룬다는 뜻에서 그런 이름이 지어진 것이 아닐까 싶다.

 

2. Recursive DNS Server(이하 Recursive)

Recursive는 주소에 대한 질의가 들어오면 다른 DNS 서버에 계속해서 질문하여 필요한 답을 얻어내는 서버이다. Domain Name Space의 계층적 구조에 따라 가장 상단인 Root 서버로부터 시작하여 아래로 내려가며 답을 찾을 때까지 반복적으로 질문한다.

DNS 체계에서 클라이언트의 역할을 담당하고 있으며 이 DNS 서버는 클라이언트(웹브라우저)와 Authoritative DNS Server 사이의 중개자 역할을 담당한다. Recursive의 뜻은 “반복되는” 이란 뜻인데, 실제로 IP 주소가 저장되어 있는 Authoritative DNS Server와 계속해서 질의하여 클라이언트로 원하는 IP 주소를 찾을 수 있도록 도와준다.

 

< 참조 >
용도를 보면 Root 서버와 TLD 서버도 Authoritative DNS 서버의 한 종류가 아닐까 싶었는데 어떤 글에서는 그렇게 포함시킨 곳도 아닌 곳도 있었다. 참고로 많은 글에서 DNS 서버를 구분하면 보통 Authoritative DNS 서버, Recursive DNS 서버, Root 서버, TLD 서버로 나누었다. 참고하자!

 

 

 

DNS 동작 과정

DNS 서버의 구성에 대해서 알아 보았다던 이제 DNS가 어떤식으로 동작하는지 알아보겠다. DNS는 위에서 설명했듯 계층적 구조를 따라 단계적으로 처리하다보니 다소 복잡한 과정처럼 보인다. 하지만 결국 IP 주소를 가지고 있는 DNS 서버를 반복해서 물어보느라 복잡하게 보일 뿐 원리는 간단하다.

 

https://www.cloudflare.com/ko-kr/learning/dns/dns-server-types/


한 사용자가 www.example.com을 브라우저의 주소창에 입력했다는 것부터 시작하겠다.

 

1. 개인 PC에 저장된 Local DNS 서버에서 www.example.com이라는 도메인 주소에 매칭되는 IP 주소를 찾는다.

< 참조 >
우리나라에서는 보통 인터넷 서비스 제공자(ISP)가 DNS 서비스를 제공하기에 ISP의 Local DNS 서버를 이용하게 된다. ISP가 제공하는 DNS 서버는 국내에서 제공하는 만큼 상대적으로 빠른 속도를 가지고 있는 것이 장점이다. 하지만 보안을 위한 지원이 다소 부족한 면이 있다. 
해외의 유명한 DNS 서버는 Google DNS, Cloudflare DNS 등이 있는데, 해외다보니 국내에서는 반응 속도가 느리지만 보안적인 측면에서 우수하여 국내에도 사용자 점차 늘고 있는 추세다.

2. Local DNS 서버에 해당 도메인 주소에 대한 매칭 정보를 찾을 수 없다면 다른 DNS 서버에게 질의를 하러 간다. 첫 번째로는 계층적 구조의 상단을 차지하고 있는 Root DNS 서버에게 도메인 주소를 물어본다.


3. Root DNS 서버는 www.example.com의 주소를 가지고 있지 않기에 Local DNS 서버에게 주소가 없다하고 대신 .com의 도메인을 통해 COM 최상위 도메인을 관리하는 TLD DNS 서버 주소를 안내한다.

 

4. Local DNS 서버는 TLD DNS 서버 중 하나인 COM 서버에게 도메인 주소를 물어보고, COM 서버는 www.example.com의 주소를 가지고 있지 않기 Local DNS 서버에게 주소가 없다하고 example.com의 도메인을 통해 이를 관리하고 있는 Authoritative DNS 서버 주소를 안내한다. 


5. example.com DNS 서버에는 www.example.com의 IP 주소가 있기 Local DNS 서버에게 IP 주소를 응답을 해준다.


6. 드디어 원하는 정보를 받은 Local DNS 서버는 이 도메인 주소의 IP 주소를 캐싱하고는 브라우저에게 IP 주소를 알려준다.


7. 브라우저는 IP 주소를 웹 서버에 전달하고 해당 사이트를 출력한다.

 

 


참고 문서

'CS' 카테고리의 다른 글

HTTP 학습 (3) - HTTP 메시지  (0) 2023.10.27
HTTP 학습 (2) - 동작 과정과 특징  (0) 2023.10.22
HTTP 학습(1)  (0) 2023.10.15
Domain Name System 학습(3)  (0) 2023.08.12
Domain Name System 학습(1)  (0) 2023.07.09
Comments