DNS란?
DNS(Domain Name System) 서버는 클라이언트가 요청한 도메인 주소에 대한 실제 IP 주소를 찾아주는 컴퓨터입니다.
인간이 사용하기 쉬운 도메인 주소만 사용하면 되지, 왜 IP 주소도 같이 사용할까요?
도메인 주소가 인간에게는 사용하기 편리하지만, 컴퓨터 입장에서 이 도메인 주소가 가리키는 실제 컴퓨터를 찾기에는 정보가 부족합니다. 예를 들어, loopback.kr 이란 도메인을 컴퓨터 입장에서 해석할 때, 아마 실제 컴퓨터가 대한민국(.kr)에 있을 것(하지만 kr 도메인에 연결된 컴퓨터가 항상 국내에 있으란 법은 없습니다.)이라는 정보 외에는 좀 더 구체적인 정보를 제공하지 않습니다. 그러므로 컴퓨터가 해석하기 쉬운, 숫자로 구성된 IP 주소로 다시 변환하는 작업이 필요합니다. (IP 주소는 사실 계층적 구조로 이루어져 있어, 컴퓨터의 위치를 찾을 수 있습니다.) 그 역할을 DNS가 담당합니다.
클라이언트가 목적지 서버로 접속하는 과정
IP 주소 체계에 대한 자세한 설명은 생략하고 클라이언트가 특정 컴퓨터로 접속하는 과정을 아주 간단하게 설명하자면,
- 사용자가 웹 브라우저에 example.com을 입력하여 웹 페이지 탐색을 시도한다.
- 클라이언트 컴퓨터는 example.com에 대한 IP 주소를 찾기 위해 DNS 서버에 물어(질의, 쿼리, Query)본다.
- DNS 서버는 example.com에 대한 IP 주소를 찾고 이를 다시 클라이언트로 알려준다.
- 클라이언트는 example.com에 대한 IP 주소를 얻었으므로 해당 IP 주소로 연결을 시도한다.
- 클라이언트는 효율성을 위해 일정 기간동안 example.com에 대한 IP 주소를 로컬에 캐시해 놓는다.
그러니까 우리 눈에는 example.com으로 바로 연결되는 것 처럼 보이지만 내부를 살펴보면 컴퓨터 간의 통신은 모두 IP 주소를 통해 연결되는 것을 볼 수 있습니다.
이 과정은 nslookup 도구 및 웹 브라우저의 개발자 도구에서 살펴볼 수 있습니다.