DNS

DNS

  • 웹 브라우저를 통해 특정 사이트에 진입할 때, IP주소를 대신하여 사용하는 주소를 도메인이라고 한다.
  • 한눈에 파악하기 힘든 IP주소를 보다 분명하게 나타낼 수 있다.
  • Ex. IP주소가 지번 또는 도로명 주소라면, 도메인은 해당 주소에 위치한 상호명
  • 터미널 명령어 nslookup
  • 네트워크 상 존재하는 모든 PC는 IP주소 가짐
  • But!!, 모든 IP주소가 도메인 이름을 가지는 것은 아니다.
  • 로컬 PC를 나타내는 127.0.0.1은 localhost로 사용 가능, 그 외 모든 도메인 이름은 일정기간 동안 대여

도메인 이름과 IP주소 매칭 방법

  • 브라우저의 검색창에 도메인 이름을 입력하여 해당 사이트로 이동하기 위해서, 해당 도메인 이름과 매칭 된 IP주소를 확인하는 작업이 반드시 필요
  • 네트워크에는 이것을 위한 별도의 서버 있음 → DNS 서버

DNS

  • Domain Name System → 데이터 베이스 시스템
  • 호스트의 도메인 이름을 IP주소로 변환하거나, 반대의 경우를 수행하는 데이터베이스 시스템
  • DNS는 범국제적인 단위로 웹사이트의 IP주소와 도메인 주소를 이어주는 환경/시스템
  • DNS 시스템 안에서 이어주는 역할을 하는 서버 → 풀네임으로 DNS서버 (or 네임서버)

DNS 처리 순서

  • 브라우저의 검색창에 naver.com 입력
  • 이 요청은 DNS에서 IP주소 125.209.222.142 찾음
  • 이 주소에 해당하는 웹 서버로 요청을 전달하여 클라이언트와 서버 통신

서버 종류

  1. Recursive DNS Server
    1. 인터넷 사용자가 가장 먼저 접근하는 DNS 서버
    2. 매번 3개의 DNS서버를 거치면 효율이 떨어져 이전에 DNS 서버에 요청에 얻은 데이터를 일정 기간 동안 캐시 하는 형태로 저장해두는 서버
    3. 직접 도메인과 IP주소의 관계를 기록/저장/변경❌ 캐시만 보관⭕️
    4. 대표적으로 KT/LG/SK와 같은 ISP(통신사) DNS 서버가 있음
  2. Root DNS server
    1. ICANN이 직접 관리, 최상위 도메인 DNS 서버 IP주소들을 저장해두고 안내하는 역할
  3. TLD (최상위 도메인) DNS Server
    1. 도메인 등록기관이 관리하는 서버
  4. Authoritative DNS Server
    1. 실제 개인 도메인과 IP주소의 관계가 기록/저장/변경되는 서버
    2. 일반적으로 도메인/호스팅 업체의 DNS 서버를 말하지만, 개인 DNS 서버를 구축한 경우에도 여기 해당

서버의 종류를 나누는 이유?

  • 존재하는 도메인 수가 많기 때문에 하나의 DNS 서버만 사용한다면, 성능, 유지 관리 등 문제가 생김 → DNS 서버 종류를 계층화해 단계적으로 처리하여 트래픽을 분산하고 유지 및 관리를 안정적으로 하기 위해 분리
    • 시간이 오래 걸림
    • DNS 서버가 죽으면 → 서비스 중단

동작 과정 예시)

  1. 브라우저에서 Nesite.com을 검색한 뒤, 사용하고 있는 통신사인 KT DNS 서버에게 도메인 주소에 해당하는 IP 주소를 요청한다. (브라우저 기본 DNS 설정은 통신사 DNS 서버이다.)
  2. ISP 서버에서는 캐시 데이터가 없다는 것을 확인하고 Root DNS 서버에게 어디로 가야 하는지 요청한다. (만약 캐시가 있다면 8번 단계로 건너뛴다.)
  3. Root DNS 서버는 TLD DNS 서버 주소만 관리하므로 ***.com 도메인을 보고, com 최상위 도메인을 관리하는 TLD DNS 서버 주소를 안내한다.
  4. ISP 서버는 com 서버에게 어디로 가야 하는지 다시 요청한다.
  5. com 서버는 가비아 DNS 서버가 해당 도메인이 관리되고 있다는 사실을 확인하고, 가비아 DNS 서버 주소를 안내한다.
  6. ISP 서버는 가비아 서버에게 다시 요청한다.
  7. 가비아 서버는 요청 받은 도메인 주소의 IP 주소를 확인하고 알려준다. 동시에 ISP 서버는 해당 정보를 캐시로 기록한다.
  8. ISP 서버는 브라우저에게 알아낸 IP 주소를 안내한다.

DNS -UDP 사용

  • 연결 설정에 드는 비용이 없다.
  • 전달하는 패킷의 크기가 작기 때문에 신뢰성이 보장되지 않아도 괜찮다. 못 받으면 다시 전달
  • 연결 상태 유지 필❌

DNS Round Robin

  • round robin 이란, DNS 서버 구성 방식 중 하나

Round Robin 원리

  • 웹 서비스를 담당할 여러 대의 웹 서버는 자신의 공인 IP를 각각 가지고 있다.
  1. 사이트 접속을 하기 위해 사용자가 해당 도메인 주소를 브라우저에 입력
  2. DNS가 도메인 정보 조회
    1. IP주소를 여러 대의 서버 IP리스트 중에서 라운드 로빈 형태로 랜덤 하게 하나 혹은 여러 개를 선택하여 사용자에게 알려줌
  3. 알려준 주소로 접속
    1. 사용자의 OS 어플리케이션에 따라 동작 다름
      1. 여러 개의 IP 중 제일 먼저 조회된 IP 선택
      2. 무작위로 IP 선택
      3. 선택 IP에 접속이 안될 경우, 그다음 조회된 IP로 접속하도록 호칙 추가 가능
  • 결과: 웹 사이트에 접속하는 다수의 사용자는 실제로는 복수의 웹 서버에 나뉘어 접속해도 되면서 자연스럽게 서버의 부하가 분산되는 방식

Round Robin 단점

  1. 서버의 수만큼 공인 IP주소 필요
  2. 균등 분산 ❌
  3. 서버가 다운되도 확인 불가
    1. 웹 서버의 부하가 높아서 응답이 느려지거나 접속수가 꽉 차서 접속을 처리할 수 없는 상황인 지를 전혀 감지할 수가 없기 때문에 어떤 원인으로 다운되더라도 이를 검출하지 못하고 유저들에게 제공
    2. 유저들은 간혹 다운된 서버로 연결

 

출처
https://hanamon.kr/네트워크-기본-도메인과-dns-네임서버란-개념편/
https://steady-coding.tistory.com/523
https://yaelimeee.tistory.com/46?category=962256

'네트워크' 카테고리의 다른 글

TCP UDP  (0) 2022.03.17