www.naver.com이나 www.google.com 같은 것들이 바로 도메인 이름
입니다.
그런데 컴퓨터는 이런 도메인 이름
을 이해할 수 없습니다. 컴퓨터는 192.0.2.44와 같은 숫자로 된 IP 주소
를 사용해서 서로 통신합니다. 그렇다면 도메인 이름과 IP 주소는 어떻게 연결되는 걸까요? 바로 DNS(Domain Name System)
덕분입니다.
DNS
란 Domain Name System의 약자로, 도메인 이름을 IP 주소로 변환해주는 시스템입니다.
DNS
는 전 세계에 분산되어 있는 서버들로 구성되어 있습니다. DNS 서버는 도메인 이름에 대한 요청을 받으면, 해당하는 IP 주소를 찾아서 응답해줍니다. 이 과정을 쿼리라고 부릅니다.
DNS 서버
는 계층적으로 구성되어 있습니다.
가장 상위에 있는 서버를 루트 DNS 서버
라고 하며, 전 세계에 13개가 존재합니다. 루트 DNS 서버는 .com, .net, .kr 등의 최상위 도메인(TLD)에 대한 정보를 가지고 있습니다.
최상위 도메인의 하위에 있는 서버를 책임 DNS 서버
라고 하며, naver.com, google.com 등의 도메인에 대한 정보를 가지고 있습니다.
책임 DNS 서버의 하위에 있는 서버를 로컬 DNS 서버
라고 하며, 사용자가 직접 접속하는 서버입니다.
www.naver.com의 IP 주소를 알고 싶다고 가정해봅시다. 다음과 같은 순서로 DNS 쿼리
가 진행됩니다.
로컬 DNS 캐시
에 해당 도메인 네임의 IP주소가 있는지 확인합니다.로컬 DNS 캐시
란 컴퓨터나 브라우저가 이전에 방문했던 웹사이트의 도메인 네임과 IP주소를 저장해두는 곳입니다. 로컬 DNS 캐시에 IP주소가 있다면 바로 해당 웹사이트에 접속합니다.ISP(Internet Service Provider)의 DNS 서버
에 도메인 네임을 요청합니다.ISP의 DNS 서버
란 인터넷 서비스 제공자가 운영하는 DNS 서버로, 다수의 사용자가 접속할 수 있습니다. ISP의 DNS 서버도 자신의 캐시에 해당 도메인 네임의 IP주소가 있는지 확인합니다. ISP의 DNS 서버에 IP주소가 있다면 바로 브라우저에 전달하고 해당 웹사이트에 접속합니다.루트 DNS 서버
에 도메인 네임을 요청합니다.루트 DNS 서버
란 인터넷에서 가장 상위에 있는 DNS 서버로, 전 세계에 13개의 루트 DNS 서버가 분산되어 있습니다. 루트 DNS 서버는 도메인 네임의 최상위 도메인(TLD)
을 확인하고, 해당 TLD를 관리하는 TLD DNS 서버
의 주소를 ISP의 DNS 서버에 전달합니다. 예를 들어, www.google.com에서 .com이 TLD입니다.TLD DNS 서버
에 도메인 네임을 요청합니다.TLD DNS 서버
란 특정 TLD를 관리하는 DNS 서버로, 예를 들어 .com은 Verisign이라는 회사가 관리하는 TLD DNS 서버에 의해 관리됩니다.TLD DNS 서버
는 도메인 네임의 권한 있는(Authoritative) DNS 서버
의 주소를 ISP의 DNS 서버에 전달합니다. 권한 있는 DNS 서버
란 특정 도메인 네임을 소유하고 관리하는 DNS 서버로, 예를 들어 www.google.com은 Google이 소유하고 관리하는 권한 있는 DNS 서버에 의해 관리됩니다.권한 있는 DNS 서버
에 도메인 네임을 요청합니다. 권한 있는 DNS 서버는 도메인 네임과 일치하는 IP주소를 ISP의 DNS 서버에 전달합니다.권한 있는 DNS 서버
가 메인 네임과 일치하는 IP 주소를 ISP의 DNS 서버에 전달합니다. 권한 있는 DNS 서버
가 도메인 네임과 일치하는 IP 주소를 ISP의 DNS 서버
에 전달한 후, ISP의 DNS 서버
는 이 IP 주소를 브라우저에 전달합니다. 그러면 브라우저는 이 IP 주소로 해당 웹 사이트에 접속합니다. 이렇게 DNS는 인터넷에서 원하는 웹 사이트나 애플리케이션으로 트래픽을 라우팅하는 역할을 합니다.
이를 통해 우리는 모든 웹 사이트의 IP 주소를 외울 필요가 없습니다.