Home DNS 란?
Post
Cancel

DNS 란?

브라우저에 “www.naver.com” 입력하면?

DNS가 무엇인지 알아보기 전에 먼저 브라우저에 “www.naver.com” 을 입력했을 때
어떻게 해당 도메인의 IP를 조회하는지 알아보자

  1. 브라우저 애플리케이션이 “도메인명”을 조회하는 DNS 리졸버 호출
  2. DNS 리졸버가 DNS 서버에 보내는 조회 메시지를 생성
  3. 프로토콜 스택이 DNS 서버에 DNS 리졸버가 생성한 메시지를 송신
  4. DNS 리졸버가 응답 결과를 수신

브라우저 애플리케이션이 “도메인명”을 조회한다고 했는데, 여기서 “도메인명” 이란 무엇을 말하는 걸까?
“www.naver.com”를 예시로 들었을 때 도메인명이란 www, naver, com 모두 해당된다.
보통 우리는 특정 웹사이트에 접속할 때 IP 주소가 아닌 도메인명을 입력해서 접속한다.

DNS 란?

사용자는 특정 웹사이트의 도메인명이 아닌 실제 IP를 알 필요가 없다. 하지만 OS 내부에서 다른 서버에 패킷을 송신할 때는 도메인명이 아닌 IP 주소가 필요하다. 앞서 설명한 것처럼 브라우저 애플리케이션은 도메인명으로 해당 서버의 IP 주소를 조회한다. 그렇다면 DNS란 무엇일까? DNS는 도메인명에 해당하는 IP와 기타 정보를 저장해둔 서버이다. 보통 아래와 같은 정보가 저장되어 있다.

이름클래스타입클라이언트에 회답하는 항목
www.example.comINA192.168.2.5
example.comINMX192.168.2.6

✔️ 등록정보의 구성

  • 이름
    • 이름은 앞서 말한 도메인명에 해당된다.
  • 클래스
    • 클래스는 네트워크의 종류를 나타낸다. IN은 인터넷을 뜻한다.
  • 타입
    • 해당 도메인명에 어떤 타입의 정보가 지원되는지를 뜻한다. 예를 들면 MX는 메일의 배송 목적지, A는 도메인명에 IP 주소가 지원된다는 뜻
  • 클라이언트에 회답하는 항목
    • 이 항목은 도메인명에 해당하는 IP 주소를 의미한다.


등록된 정보를 간단하게 살펴보면 도메인명으로 해당하는 IP를 매칭 해둔 서버인 것 같다.
그런데? 대체 왜 필요한 것일까?

DNS를 사용하는 이유

간단하게 전화번호부를 예로 들어보자. 평소에 우리는 지인들의 전화번호를 전부 외우지 못한다. 하지만 우리는 현대인이기 때문에 전화번호를 외우지 못하는 것이 아무런 문제가 되지 않는다. 전화번호를 전화번호부에 이름으로 저장해두면 되기 때문이다. DNS도 비슷한 맥락이다. 우리가 자주 접근하는 웹 사이트 전부를 IP 주소만을 사용해서 접근할 수 있다고 생각하면 너무 끔찍하다. 북마크 기능이 있지만 접근하는 사이트마다 북마크를 해놓을수도 없는 노릇이다. DNS 서버는 우리가 도메인명으로 웹 사이트에 접근할 수 있도록 해주는 아주 고마운 서버이다. 그런데 DNS 서버없이 그냥 도메인명으로 통신하면 안될까? 라는 의문도 들 수 있다. 하지만 IP 주소는 32bit 만으로 이뤄져있는 반면에 도메인명은 수십 바이트부터 255 바이트까지 존재하기 때문에 라우터의 부하가 발생하여 통신이 지연될 수 있다.

This post is licensed under CC BY 4.0 by the author.

[네트워크 스터디] Chapter_02 TCP/IP의 데이터를 전기 신호로 만들어 보낸다

[글또 7기] 다짐