DNS란?

zoo4we·2022년 6월 29일
0

스터디

목록 보기
2/3

설명에 앞서

오늘도 칼퇴를 하겠다는 부질없는 마음을 먹어보는 2년차 K씨, 어김없이 야근이다. 반쯤 포기하니 저녁 시간이 다와간다. 오늘은 저녁을 시켜먹자는 말에 칼퇴도 못했겠다, 부장님이 싫어하는 피자를 시켜본다. 탕비실에서 몰래 핸드폰 번호를 뒤져봐도 D피자의 번호가 없다.

L : K님 D피자 번호 찾고 계시죠?
K : 깜짝아, 어떻게 아셨어요?
L : 척보면 척이죠. 탕비실에 D피자 번호 있는 책자 있어요. 여기요.

DNS란?

DNS란 Domain Name System으로 유저가 도메인을 웹브라우저에 검색하였을 때, IP로 호환해주는 역할을 한다. 위에서 D피자 번호가 있는 책자를 생각하면 편하고 더 좋은건 전화번호부다.
Naver.com을 검색했을 때, 그에 상응하는 IP주소가 전달되고 이를 이용하여 우리가 아는 네이버에 접속할 수 있게 된다.
그렇다면 DNS는 어떻게 naver.com을 통하여 네이버의 IP 주소를 얻을 수 있을까?

DNS 동작 방식

아래의 이미지로 DNS의 동작 방식을 이해해보고자 한다.

  1. Naver.com을 입력하면 로컬DNS에 “naver.com”에 대한 IP주소를 질의한다.
    브라우저 : 혹시 거기 naver.com 친구 주소 있나요?

이때, 로컬DNS가 미리 캐시된 IP를 갖고 있다면 브라우저에 반환하지만 우리는 없다는 가정을 해본다.

로컬DNS : 여기 naver.com 주소 없는데? 기다려봐.

  1. 로컬DNS는 우선 Root Name Server중 하나에게 도메인을 알고 있냐고 묻는다.

로컬DNS : 혹시 naver.com 이 친구 주소 아시나요?

  1. Root Name Server는 응답한다.

루트 네임 서버 : 모르겠는데요. 대신 .com DNS 주소는 알고 있어서 거기에 물어보세요.

  1. com은 TLD(최상위 도메인) 중 하나로 로컬DNS는 TLD DNS에 묻는다.

로컬DNS : 혹시 naver.com 들어보셨나요? 여기 가면 알 수도 있다던데??

  1. TLD 조회 뒤, 응답한다.

TLD DNS : 잘 모르겠네요. Authoritative DNS Server 주소로 가보세요. 거긴 알 수도 있어요.

  1. Authoritative DNS Server는 권한 있는 네임서버로 IP주소를 확인하는 마지막 단계이다. 실제 IP 주소의 기록, 저장, 변경되는 서버이다.

로컬DNS : 혹시 naver.com 들어보셨나요? 여기 가면 진짜 알 수도 있다던데요.

  1. Authoritative DNS는 응답한다.

Authoritative DNS : 여기 223.130.195.95로 나오네요.

  1. 로컬 DNS는 전달 받은 IP 주소를 캐싱하고 브라우저에 전달한다.

각 서버가 하는 일

DNS 서버가 어떤 방식으로 도메인을 입력 받아, IP를 리턴하는지 알게 되었다. 그렇다면 각 서버가 하는 일은 무엇일까?

루트 네임 서버(root name server) : 최상위 레벨 도메인 영역(TLD)의 권한을 가진 네임서버들의 이름, 주소를 제공한다.

TLD DNS : 도메인의 맨 마지막에 오는 .com, .net으로 끝나는 네임 서버들의 이름, 주소를 제공한다.

재귀적, 반복적?

DNS를 공부하다보면 자주 나오는 단어가 있다. 바로 재귀적 질의(Recursive Query)와 반복적 질의(Iterctive Query)이다.

재귀적 질의 : 캐시 영역에 저장된 도메인이 없는 경우 다른 DNS 서버와 즉각 질의이다.
반복적 질의 : 루트 네임 서버로부터 도메인의 트리형태 구조에 따라 순차적으로 반복하여 진행하는 질의이다. 로컬 DNS와 다른 DNS 서버간의 질의 형태이다.


재귀적 질의

반복적 질의

참고
DNS recursive query vs. Iterative query

profile
직장인 K씨의 개발스러운 일일

0개의 댓글