DNS는 Domain Name System의 약자로, 인터넷에서 도메인 이름을 IP 주소로 변환해주는 시스템입니다.
도메인은 흔히 주소라고 부를 수 있습니다. 예를 들어, www.naver.com을 보았을 때 도메인은 naver.com입니다. 그렇다면 www는 무엇일까요? 이는 호스트 네임(host name)이라고 부릅니다. www 외에도 blog처럼 도메인 앞에 붙는 부분은 모두 호스트 네임에 해당합니다.
우리가 웹사이트에 접속하려면 브라우저가 해당 사이트의 서버에 요청을 보내 데이터를 받아와야 합니다. 그런데 이를 위해서는 서버의 IP 주소를 알아야 합니다.
문제는 우리가 모든 웹사이트의 IP 주소를 외우는 것이 불가능하다는 점입니다. 이를 해결하기 위해 사람들이 쉽게 기억할 수 있는 도메인 이름을 사용합니다.
그럼 도메인 이름과 IP 주소의 연결은 어디에 저장될까요? 바로 DNS입니다.
DNS는 단순히 하나의 서버에 모든 정보를 저장하는 것이 아니라, 다층적이고 분산된 네트워크 구조로 동작합니다.
이렇게 다층적으로 구성된 네트워크에 분산되서 도메인 정보들이 저장되고 조회됩니다.
예를 들어, 제가 www.naver.com에 접속한다고 가정해봅시다.
브라우저가 IP 주소를 요청
먼저, 제 브라우저는 www.naver.com의 IP 주소를 알지 못합니다. 그래서 로컬 DNS 서버에 해당 도메인과 호스트 이름의 IP 주소가 저장되어 있는지 물어봅니다.
로컬 DNS 서버에 정보가 없다면
만약 로컬 DNS 서버에 해당 정보가 없다면, 로컬 DNS 서버는 Root DNS 서버에 요청을 보냅니다.
Root DNS 서버의 역할
Root DNS 서버는 전 세계에 13곳만 있으며, 한국에는 없습니다. 대신 미러 서버가 이를 대체합니다.
Root DNS 서버는 요청을 받으면 .com 도메인을 담당하는 DNS 서버의 IP 주소를 반환합니다.
.com DNS 서버로 이동
로컬 DNS 서버는 받은 IP 주소를 통해 .com DNS 서버에 접속하고, naver.com 도메인 정보를 가진 DNS 서버의 IP 주소를 얻습니다.
naver.com의 DNS 서버
마지막으로, naver.com DNS 서버에서 www와 같은 호스트 네임별 IP 주소를 얻습니다.
IP 주소 반환
최종적으로 로컬 DNS 서버는 www.naver.com의 IP 주소를 브라우저에 전달하고, 브라우저는 해당 서버에 접속합니다.
DNS는 사용자가 기억하기 쉬운 도메인 이름을 통해 IP 주소를 효율적으로 관리하고, 다층적이고 분산된 네트워크로 빠르고 안정적인 조회를 가능하게 합니다.
출처 및 참고자료
DNS가 뭔가요? + 도메인, A Record, CName