몇차례에 걸처 DNS 에 관련된 소개 및 개요에 대하여 말씀 드리고 있습니다.


우리는 DNS를 무심코 계속 해서 사용 하고 있습니다. 


요즘 스마트 폰 혹은 태블릿PC를 많이 사용 하고 있습니다. 여기의 웹브라우저를 이용하면 대부분 도메인 네임을 이용하여 사이트를 접속 하게 됩니다.


과연 이제 DNS는 어떻게 동작을 하고 있는지에 대하여 살펴 보도록 하겠습니다.


저번에 글에서 이야기 한 것 같이, 전 세계에는 정말 수 많은 도메인이 있으며, 그 수많은 도메인들을 관리 하기 위해서 수 많은 DNS 서버가 있습니다. 


이렇듯, DNS는 단 한대의 서버에서 모든 주소를 처리 하는 것이 아닙니다. 


그리고 단 하나의 서버에서 모든 주소를 저장 한다고 해도 그것을 처리 하는것 자체는 불가능 하다고 할 수 있습니다. 


즉, 전 세계에 퍼저서 동작 하고 있는 IP 주소를 가진 서버에 도메인을 연결 해주는 DNS 서버는 전세계 각지에 흩어져 있어서, 정해진 규칙에 따라서 네임에 관련된 정보를 제공 합니다.


즉, 인터넷상의 도메인과 관련된 정보는 분산되어 DNS서버에 저장하고 있습니다. 


예를들어 내가 www.google.com 의 IP 주소를 조회한다고 가정 해 보았을 때, 이 도메인에서 가장 상위에 있는 도메인은 무엇일까요? 


바로 루트 도메인(".") 입니다. 현재 전세계에 루트 도메인은 13개가 존재합니다. 


그리고, 이 루트 도메인 서버의 IP 주소는 변경되지 않기 때문에 모든 각각 전세계에 흩어져 있는 DNS 서버들은 루트 도메인을 알고 있습니다. 


이제 여기 부터 우리는 추적을 시작 할 수 있는 출발점이 되는 것입니다. 

아래 그림을 보시면 이해 하시기 쉬울 것 입니다.


 DNS_Search.jpg

 

위 그림의 내용에 대하여 설명을 하는 것으로 하여 이번 강좌를 마치 도록 하겠습니다.


일반적으로 우리는 웹 사이트를 검색 하러 google을 접속 한다는 가정에서 출발해 보도록 하겠습니다.


클라이언트는 브라우저가 설치된 컴퓨터 입니다. 


사용자가 웹브라우저 주소창에 www.google.com  URL을  입력하고 엔터를 입력 합니다.


그러면, (1) 브라우저가 설치된 컴퓨터는 www.google.com 의 IP를 알아내기 위해서 가장 가까운 곳에 위치한(클라이언트에 등록된 ) DNS 서버에 www.google.com 의 IP 주소를 문의 합니다.


그리고, (2)가장 가까운 DNS 서버가 IP주소를 알고 있다면 즉시 IP 주소를 알려 줍니다. 하지만 가장 가까운 DNS 서버가 IP 주소를 모르면 루트 도메인 네임서버에게 문의를 합니다. 


(3) 루트 네임서버는 도메인의 최상위 도메인이 .com인 것을 보고 “.com” 이 등록된 네임서버의 IP어드레스를 전달 합니다. 

이것에 대한 내용을 이해 하기 쉽게 예를 들어 설명 하면 다음과 같이 설명 할 수 있습니다.  "나는 IP 주소를 가지고 있지 않지만,  “.com” 네임서버에게 물어보면 도와 줄꺼야"  


(4) 가장 가까운 DNS는 “.com” 도메인을 관리하는 네임서버에게 문의합니다. 


(5) “.com” 네임서버는 google의 네임서버의 IP 주소를 알려줍니다. 


(6) 가장 가까운 DNS 서버는 google 의 네임서버에게 문의합니다. 


(7) www 의 네임서버를 알려 줍니다. 


(8) 최종적으로 www 네임서버에게 문의  합니다. 


그래서, (9) www.google.com 의 IP 주소를 얻을 수 있습니다. 


(10) 가장 가까운 DNS 서버는 이 IP 주소를 클라이언트에게 알려 주게 됩니다.


그러면, 클라이언트 컴퓨터는 이 IP를 브라우저에게 알려주게 되며, 브라우저는 이 IP에 해당하는 컴퓨터에 접속 할 수 있게 됩니다.


이렇게 대략 10번에 가까운 과정이 우리는 URL을 입력 하고 엔터를 치자 마자 순식간에 일어나서 나의 웹브라우저에 해당 사이트가 표시 되는 것을 알 수 있습니다. 그렇지만 이렇게 복잡한 과정을 통하여 우리에게 정보가 전달이 되는 숨은 과정이 있다는 것을 살펴 보았습니다.