최종 업데이트 07:21
소개 검색
SEOUL AI PRESS

AI와 기술을, 사실부터

강좌 강좌

이름과 숫자를 이어 주는 시스템: DNS 입문

MDN Web Docs

웹 브라우저에 글자로 된 주소를 입력하면 컴퓨터는 어떻게 목적지를 찾을까. 이 강좌를 마치면 DNS가 무엇인지 한 문장으로 설명하고, 도메인 이름이 IP 주소에 대응되는 DNS 조회 과정을 단계로 말하고, DNS 조회와 역방향 DNS 조회의 차이를 구분할 수 있다. 사전지식은 도메인 이름과 IP 주소가 서로 다른 형태의 식별 표현이라는 사실 하나면 충분하며, 이 내용은 첫 단원에서 바로 설명한다.

한 문장으로 이해하기

DNS(Domain Name System, 도메인 이름 시스템)는 사람이 읽기 쉬운 도메인 이름을 숫자로 된 IP 주소(Internet Protocol address, 인터넷 프로토콜 주소)에 대응시키는, 계층적이고 분산된 이름 지정 시스템이다.

여기서 도메인 이름은 mozilla.org처럼 글자로 된 인터넷 주소 표현이고, IP 주소는 192.0.2.172처럼 숫자로 된 표현이다. 같은 대상을 가리키더라도 표현 방식이 다르며, DNS는 이 두 표현을 서로 이어 주는 역할을 한다. 이 사실 하나만 알면 이 강좌를 따라올 수 있다.

왜 필요한가

mozilla.org 같은 도메인 이름은 사람이 읽기 쉬운 표현이고, 192.0.2.172 같은 IP 주소는 숫자로 된 표현이다. 서로 다른 두 표현 사이에는 대응 관계를 관리해 주는 다리가 필요하다.

DNS가 바로 그 다리다. DNS는 도메인 이름의 목록과 각 이름에 연결된 IP 주소 같은 자원 정보를 함께 관리한다. 덕분에 사람은 읽기 쉬운 이름을 쓰면서도, 그 이름에 대응하는 숫자 주소를 시스템을 통해 찾아낼 수 있다.

어떻게 이루어지는가

사람이 읽기 쉬운 도메인 이름을 IP 주소에 대응시키는 과정을 DNS 조회(DNS lookup, 이름으로 주소를 찾아보는 일)라고 한다. 입력 자료가 뒷받침하는 범위에서 과정을 단계로 정리하면 다음과 같다.

  1. 사용자가 mozilla.org 같은 도메인 이름을 사용한다.
  2. DNS가 관리하는 목록에서 그 이름에 대응하는 IP 주소를 찾는다. 이것이 DNS 조회다.
  3. DNS 조회의 결과로 그 이름에 대응하는 IP 주소를 얻는다.

이때 DNS는 하나의 장부가 아니라 계층적이고 분산된 시스템으로 운영된다. 즉 이름 정보가 여러 단계로 나뉘어(계층적) 여러 곳에 흩어져(분산) 관리된다는 뜻이다.

반대 방향의 과정도 있다. IP 주소에 연결된 도메인 이름을 찾는 것은 역방향 DNS 조회(rDNS, reverse DNS lookup, 주소로 이름을 되찾는 일)라고 한다.

하나의 예시로 따라가기

가상 예시: 어떤 사용자가 mozilla.org라는 도메인 이름으로 웹사이트를 찾아가려는 상황을 상상해 보자. 등장하는 이름과 숫자의 대응은 입력 자료에 예시로 나온 값이다.

  1. 사용자는 mozilla.org라는 도메인 이름을 제시한다.
  2. DNS 조회가 일어나 mozilla.org에 대응하는 IP 주소를 찾는다.
  3. 그 결과로 이 이름에 대응하는 IP 주소 192.0.2.172를 얻는다.

만약 반대로 192.0.2.172라는 숫자만 알고 있고 이것이 어떤 이름에 연결돼 있는지 궁금하다면, 역방향 DNS 조회를 사용해 도메인 이름을 찾는다. 같은 대응 관계를 어느 방향으로 묻느냐가 두 조회의 차이다.

언제 쓰고 언제 쓰지 않는가

방향에 따라 쓰임이 갈린다. 이름에서 주소를 찾고 싶을 때는 DNS 조회를 쓰고, 주소에서 이름을 찾고 싶을 때는 역방향 DNS 조회를 쓴다. 무엇을 알고 있고 무엇을 알고 싶은지가 선택 기준이다.

이 강좌의 범위에도 한계가 있다. 이번 입력 자료는 DNS가 무엇이고 어떤 대응을 관리하는지까지만 설명한다. 조회 요청이 실제로 어떤 서버들을 거치는지, 결과가 어디에 임시 저장되는지, 조회 뒤의 통신이 어떻게 이어지는지, 장애나 보안 문제가 생기면 어떻게 되는지는 이 자료만으로는 답할 수 없다. 그런 질문이 생겼다면 이 강좌를 넘어선 다음 학습 주제로 남겨 두는 것이 정확하다.

핵심 정리와 확인문제

DNS는 처음부터 끝까지 하나의 일을 한다. 사람이 읽기 쉬운 도메인 이름과 숫자로 된 IP 주소를 대응시키는 것이다. 이 대응을 이름에서 주소 방향으로 묻는 것이 DNS 조회, 주소에서 이름 방향으로 묻는 것이 역방향 DNS 조회이며, 이 전체를 계층적이고 분산된 시스템이 떠받친다.

확인문제 1. DNS의 가장 중요한 역할은 무엇인가?

정답: 사람이 읽기 쉬운 도메인 이름(예: mozilla.org)을 숫자로 된 IP 주소(예: 192.0.2.172)에 대응시키는 것이다.

해설: DNS는 도메인 이름과 그에 연결된 IP 주소 같은 자원 정보를 계층적이고 분산된 방식으로 관리한다.

확인문제 2. 사람이 읽기 쉬운 도메인 이름을 IP 주소에 대응시키는 과정을 무엇이라고 부르는가?

정답: DNS 조회(DNS lookup)라고 한다.

해설: DNS가 관리하는 이름과 주소의 목록에서 해당 이름에 연결된 IP 주소를 찾는 과정이다.

확인문제 3. DNS 조회와 역방향 DNS 조회는 입력과 결과가 어떻게 다른가?

정답: DNS 조회는 도메인 이름을 입력으로 받아 IP 주소를 결과로 내놓고, 역방향 DNS 조회(rDNS)는 IP 주소를 입력으로 받아 그에 연결된 도메인 이름을 결과로 내놓는다.

해설: 두 조회는 같은 대응 관계를 서로 반대 방향으로 묻는 것이며, 무엇을 알고 있고 무엇을 찾고 싶은지에 따라 선택이 달라진다.

참고자료