요약
DNS(Domain Name System)은 호스트의 도메인네임(www.example.com)을 네트워크 주소(192.162.1.0)로 변환하거나, 그 반대의 변환을 수행하는 시스템.
- DNS 시스템은 이름과 숫자 간의 매핑을 관리하여 전화번호부와 같은 기능을 함
- DNS 서버는 사용자가 도메인 이름을 브라우저에 입력하면, 사용자를 어떤 서버에 연결할 것인지 제어함. 이러한 요청을 쿼리라고 함.
DNS의 작동원리
- PC 브라우저에서 www.naver.com을 입력한다. PC는 미리 설정되어 있는 DNS (단말에 설정되어 있는 DNS를 Local DNS라고 부름.) 에게 www.naver.com이라는 hostname에 대한 IP주소를 요청함.
- Local DNS에는 www.naver.com의 IP주소가 있을수도 있고 없을수도 있다. 있는 경우 → DNS가 바로 PC에 IP주소를 주고 끝 없는 경우 → 밑의 과정을 거침.
- Local DNS는 www.naver.com의 IP주소를 찾아내기 위해 다른 DNS 서버들과 통신을 시작 먼저 Root DNS 서버에게 www.naver.com의 IP주소를 요청함.
- Root DNS 서버는 www.naver.com의 IP주소를 찾을수 없어 www.naver.com의 IP주소를 찾을수 없으므로
com 도메인을 관리하는 DNS 서버(Top-Level Domain)에게 물어보라고 응답함.
Root DNS
인터넷의 도메인 네임 시스템의 루트 존, 루트 존의 레코드 요청에 직접 응답하고 적절한 최상위 도메인에 대한 권한이 있는 네임서버 목록을 반환함으로서 다른 요청에 응답.
- Local DNS 서버는 TLD 서버에 www.naver.com에 대한 IP주소를 요청함.
- TLD 서버에도 해당 정보가 없으면, ‘www.naver.com’ 의 IP주소를 찾을수 없으므로
naver.com 도메인을 관리하는 DNS 서버에게 물어보라고 응답함
- Local DNS 서버는
naver.com 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에 전달함. → 캐싱하다 : DNS record를 일정 시간 보관함.
Local DNS 서버가 여러 DNS 서버에 차례대로 (Root DNS 서버 → com DNS 서버 → naver.com DNS 서버) 요청하여 그 답을 찾는 과정을 Recursive Query 라고 부름