[네트워크] DNS의 흐름

원하는 사이트에 접속하기 위해 주소창에 www.naver.com, www.youtube.com등의 도메인을 입력하면 화면이 브라우저 창에 띄워진다. 우리는 인터넷상에서 서버의 위치를 찾기 위해선 IP주소가 필요하다는 것을 알고 있다. 그렇다면 어떻게 도메인 주소만으로 IP를 찾아낼 수 있는 것일까?

도메인명을 사용하는 이유

앞에서 얘기했듯이 인터넷에서는 IP를 통해서 해당 서버의 위치를 찾는다. 하지만 직접적으로 IP를 사용하지 않고 www.naver.com처럼 도메인명을 사용한다. 왜 그럴까? 우리가 주소창에 IP가 아닌 도메인 이름을 사용하는 이유는 다음과 같다.

👉 숫자로 이루어진 IP주소는 사용자가 기억하기 쉽지 않다.
👉 IP가 변경된다면 사이트로의 접속에 어려움을 겪는다.


DNS(Domain Name System)

하지만 실제로 통신할때는 인터넷에서 유일한 주소값인 IP를 통해서 통신하기 때문에 도메인을 IP로 치환하는 과정이 필요하다. 이러한 과정을 DNS을 통해서 이루어진다. DNS(Domain Name System)란 IP주소와 도메인 주소를 이어주는 시스템으로 도메인이름을 이용하여 IP주소를 알아낼 수 있다.

DNS 시스템은 전 세계적으로 분산되어 있으며 도메인이름과 IP주소의 매핑 정보를 갖고 있는 DNS 서버가 여러대 존재한다. DNS 서버들은 계층 구조로 구성되어 있고 최상위 DNS부터 하위 DNS 서버로 이어지는 방식으로 동작한다.


DNS 서버 계층구조와 흐름

DNS 계층구조
DNS 서버 흐름

앞단의 Local DNS Server는 컴퓨터의 OS에 존재하는 캐시서버이며 ISP나 Public DNS Server는 캐시서버의 역할을 한다. 만약 이 두 캐시서버에 맴핑되는 IP가 존재하지 않으면 새로 DNS 서버 계층구조를 통해서 정보를 받아오게 된다.

  1. Root DNS 서버
    ICANN이 직접 관리하는 루트 서버이다. TLD DNS 서버의 IP주소를 가지고 있어 요청시 해당 IP로 안내해준다.
  2. Top-Level Domain(TLD) DNS Server
    도메인 등록 기관이 관리하는 서버이다.(.com, .org, .net 등) SLD의 IP주소를 가지고 있어 요청시 해당 IP로 안내해준다.
  3. Second-Level Domain(SLD) DNS Server
    실제 개인 도메인과 IP 주소의 관계가 기록되어 있다. 도메인/호스팅 업체의 네임서버 혹은 직접 구축한 네임서버도 여기에 속한다.


DNS Round robin

DNS 서버 구성 방식 중 하나로 도메인 대한 IP 요청시 round-robin 방식으로 IP를 반환한다. round-robin 방식은 리스트 중 시간단위로 값을 선택하여 반환하는 방식이다. 시분할 시스템으로 잘 알려져 있다. 이러한 방식 덕분에 따로 로드밸런서가 필요없다는 것이 특징이다.

하지만 로드밸런서가 없기 때문에 일어나는 문제가 있다. 각 IP가 제대로 동작하고 있는지 확인이 불가능(헬스체크를 하지 않음)하고, 각 IP로 균등하게 분산되지 않는다.

위 문제 해결을 위해 다중화 구성방식(Vitual IP로 서버를 다중화해 헬스체크하는 방식)과 가중치 편성방식(각 서버의 가중치를 가미해 분산 비율을 변경하는 방법)을 이용한다. 혹은 로드 밸런서를 도입해 사용하기도 한다.

카테고리:

업데이트:

댓글남기기