DNS와 DNS round robin

Deah (김준희)·2023년 9월 3일
0

Computer Science

목록 보기
1/5
post-thumbnail

DNS (Domain Name System)

image

DNS란 'Domain Name System'의 약자로 'Domain Name Server' 혹은 'Domain Name Service'라고 칭하기도 합니다.
DNS는 호스트의 도메인 이름을 호스트의 네트워크 주소(IP)로 바꾸거나 그 반대로 네트워크 주소를 도메인 이름으로 변환시키는 작업을 의미합니다.



DNS가 필요한 이유와 IP 주소

IP(Internet Protocol)는 인터넷이 통하는 네트워크에서 어떠한 정보를 수신하고 송신하는 통신에 대한 규약을 의미합니다. 그리고 이러한 IP 통신에 필요한 고유 주소를 우리는 ‘IP 주소(IP Adress)’ 라고 부릅니다. 즉 IP 주소는 인터넷에 연결되어 있는 장치들에게 부여되는 고유한 주소를 의미하며, 이 주소는 장치들이 서로 통신하기 위해 필요한 고유 번호입니다. IP 주소에는 두 가지 종류가 있는데 우리가 흔히 볼 수 있는 대부분의 IP 주소는 32비트 숫자로 정의하는 IPv4 방식으로 만들어졌습니다.

  • IPv4 (Internet Protocol Version 4) - 32비트로 구성되어 현재는 할당 종료
  • IPv6 (Internet Protocol Version 6) - 128비트로 구성되어 IP 주소가 부족하지 않음

http://223.130.200.104/

https://www.naver.com/


위에 두 가지 주소가 있습니다. 한 가지는 12자리 숫자로 이루어진 IP 주소이고, 다른 한 가지는 IP 주소를 문자로 표현한 도메인 이름입니다. 무엇이 더 기억하기 쉬울까요? 불특정한 숫자의 조합보다는 어떠한 의미가 있는 문자열로 만들어진 도메인 이름이 사람이 기억하기에 훨씬 편리합니다. 이 과정에서 필요한 것이 바로 DNS이고, DNS 서버에는 도메인 이름과 IP 주소를 한 쌍으로 기억하는 데이터베이스를 가지고 있습니다.


Domain Name Space

image

도메인 네임 스페이스는 분산 시스템인 DNS가 가지는 계층적 구조입니다.

Root DNS 서버를 두고 그 아래로 하위 구조들이 연결된 계층 구조로 이루어져 있습니다.

  • Local DNS (기지국 DNS)
  • Root DNS (최상위 DNS)
  • Top-Level DNS (최상위 도메인 DNS)
    • 일반 최상위 도메인 (gTLD)
    • 국가 최상위 도메인 (ccTLD)
  • Second-Level DNS (2차 도메인 네임서버 DNS)
  • Third-Level / Sub Domain DNS (최하위 네임서버 DNS)

DNS 동작 방식

image

1. 주소창에 도메인 주소(www.naver.com)를 입력하여 Local DNS(기지국 DNS)에 도메인 주소를 전달한다.

  • Local DNS에 해당하는 IP 주소가 있다면 바로 반환 (http://223.130.200.104/)
  • Local DNS에 해당하는 IP 주소가 없다면 아래 방식 진행
  1. Local DNS는 Root DNS에 해당하는 도메인 주소(www.naver.com)의 IP 주소를 요청한다.
  2. Root DNS는 최상위 도메인에 대한 정보만 가지고 있기 때문에 해당 정보를 Local DNS에 전달한다.
  3. Local DNS는 최상위 도메인 서버(.com)에 도메인 주소(www.naver.com)의 IP 주소를 요청한다.
  4. 최상위 도메인 서버(.com)은 Local DNS에 해당하는 IP 주소를 가진 네임 서버의 정보를 전달한다.
  5. Local DNS는 네임 서버(naver.com)에 도메인 주소(www.naver.com)의 IP 주소를 요청한다.
  6. 네임 서버(naver.com)가 IP 주소를 전달한다.
  7. 해당 IP 주소가 Client에게 도착한다.
  8. (이미지에는 없지만) 이후 브라우저가 IP 주소로 HTTP 요청을 보내어 화면에 렌더링 하는 작업이 진행된다.

DNS Query(DNS 쿼리)란? Local DNS가 다른 DNS 서버들과 서로 통신하는 과정


Load Balancing, Round Robin

  • Load Balancing (로드 밸런싱)
    - load 부하
    - balancing 균형
    많은 사용자가 이용하는 서비스는 자연스럽게 서버에 들어오는 요청이 많아집니다. 이 때 서버는 엄청난 대규모 트래픽을 처리하게 되는데, 트래픽을 관리하는 방법은 일반적으로 2가지가 있습니다. ‘서버 성능 향상’과 ‘트래픽 분산’이 그 방법입니다. 그 중 로드 밸런싱은 ‘트래픽 분산’과 관련되어 있습니다. 여러개의 서버를 통해 클라이언트와 서버 사이의 트래픽을 분산시켜 주는 것을 ‘로드 밸런싱’ 이라고 부릅니다.
  • Round Robin (라운드 로빈)
    라운드 로빈은 컴퓨터 공학에서 사용되는 대표적인 알고리즘으로, 프로세스가 도착한 순서대로 돌아가면서 각각의 서버로 트래픽을 분산 처리하는 방식입니다.

DNS round robin

별도의 소프트웨어나 하드웨어 없이 DNS 서버를 구성하는 방식 중 하나로, 사용자(Client)가 요청한 도메인에 대한 IP 주소를 찾는 DNS Query를 진행할 때 round robin 방식으로 운영되는 것을 의미합니다.

웹 서비스를 담당하는 웹 서버는 자신의 고유한 IP 주소를 가지고 있는데, 사용자가 도메인 주소를 입력하게 되면 DNS가 해당하는 도메인 주소가 가지고 있는 여러개의 IP 리스트 중 랜덤으로 여러개 또는 한 가지의 IP 주소를 사용자에게 제공함으로서 다수의 사용자가 이용하는 서비스에서 자연스럽게 트래픽을 분산시켜 서버의 과부하를 막아주는 효과를 가지게 됩니다.


DNS round robin 장점

  • 별도의 중간 장비(road balancer)의 필요성이 없어진다.
  • 따라서 비용적인 부담이 줄어들고, 간편하게 사용 가능하다.

DNS round robin 단점

  • 웹 서버의 수만큼 공인 IP 주소가 필요하다.
    • 부하의 분산을 위해 많은 IP 주소가 필요합니다.
  • 부하의 분산이 고르지 않다.
    • 한 명의 클라이언트가 여러 차례 요청을 보낼 경우 분산이 잘 처리되지만, 여러 명의 클라이언트 요청이 있을 경우 균등하게 부하가 분산된다는 보장이 없습니다.
  • 장애 발생 시 원인 감지 불가능
    • 로드 밸런서가 존재하지 않기 때문에 별도의 Health Check가 불가능합니다.
  • 장애 발생 시에도 부하 분산 진행
    • 장애 발생 원인 감지가 불가하기 때문에 특정 IP 주소가 다운되더라도 사용자에게 제공될 수 있습니다.
profile
기록 중독 개발자의 기록하는 습관

0개의 댓글