- 호스트의 도메인 네임(www.naver.com)을 네트워크 주소(192.2.168.1.0)로 변환하거나, 네트워크 주소를 도메인 네임으로 변환하는 시스템
- 원래는 IP 주소로 브라우저에게 제공하면 해당 서버에서 홈페이지를 제공하는 식으로 웹이 동작하지만, IP 주소는 매우 복잡하여 사람이 외우기 힘들다.
- 별명을 지어 정리하고 접근하게 쉽게 하는 시스템이라고 생각하면 된다.
전세계에 도메인 수가 너무 많기 때문에 DNS 서버 종류를 계층화해서 단계적으로 처리한다.
- 웹 브라우저에 www.naver.com 을 입력하면 먼저 PC에 저장된 **Local DNS(기지국 DNS 서버)**에게 "www.naver.com"이라는 hostname"에 대한 IP 주소를 요청한다.
- 만일 예전에 네이버에 접속했던 전적이 있다면, Local DNS에 접속 정보가 캐싱이 되어 있어 바로 PC에 IP 주소를 주고 끝난다. (1 → 8)
- Local DNS는 이제 "www.naver.com 의 IP 주소"를 찾아내기 위해 다른 DNS 서버들과 통신(DNS 쿼리)을 시작한다.
- 가장 먼저 Root DNS 서버에게 요청한다.
- Root DNS 서버 는 "www.naver.com 의 IP 주소" 를 찾을 수 없어 Local DNS 서버에게 "www.naver.com 의 IP 주소 찾을 수 없다고 다른 DNS 서버에게 물어봐" 라고 응답을 한다.
- 이제 Local DNS 서버는 com 도메인을 관리하는 TLD DNS 서버(최상위 도메인 서버)에 다시 www.naver.com에 대한 IP 주소를 요청한다.
- com 도메인을 관리하는 DNS 서버에도 해당 정보가 없으면, Local DNS 서버에게 "www.naver.com 의 IP 주소 찾을 수 없음. 다른 DNS 서버에게 물어봐" 라고 응답을 한다.
- 이제 Local DNS 서버는 **naver.com DNS 서버(Authoritative DNS 서버)**에게 다시 "www.naver.com 의 IP 주소" 를 요청한다.
- naver.com DNS 서버 에는 "www.naver.com 의 IP 주소" 가 있다. 그래서 Local DNS 서버에게 "www.naver.com에 대한 IP 주소는 222.122.195.6" 라는 응답을 한다.
- 이를 수신한 Local DNS는 www.naver.com 의 IP 주소를 캐싱을 하고 이후 다른 요청이 있을시 응답할 수 있도록 IP 주소 정보를 단말(PC)에 전달해 준다.
⇒ Local DNS 서버가 여러 DNS 서버에 차례대로 (Root DNS 서버 → TLD DNS 서버(.com) → Authoritative DNS 서버(naver.com) 요청하여 그 답을 찾는 과정을 재귀적 쿼리 Recursive Query
- "www.naver.com" 의 IP주소를 성공적으로 받아 왔고, 몇 분 후 다시 "www.naver.com"에 방문하려고 했을 때, 또다시 위와 같은 복잡한 과정을 반복해서 IP 주소를 받아올까?
- 너무 비효율적이기 때문에 PC에는 DNS Cache라는 Cache를 활용해 Cache안에 자주쓴는 Domain Name 주소를 저장해 놓는다.
- Local DNS : 인터넷을 사용하기 위해서 IP를 해당해주는 통신사
- Root DNS : 인터넷의 도메인 네임 시스템의 루트 존 (ICANN이 직접 관리하는 절대 존엄 서버로, TLD DNS 서버 IP들을 저장해두고 안내하는 역할)
- TLD : 최상위 도메인, 도메인 등록 기관(Registry)이 관리하는 서버로, 도메인 네임의 가장 마지막 부분을 말한다. 예를들어 웹사이트에서 한번쯤은 봐왔던 .com 이나 co.kr 같은 도메인들을 관리하고 부여하는 서버이다.
- Authoritative DNS Server : 실제 개인 도메인과 IP 주소의 관계가 기록/저장/변경되는 서버