Network

DNS와 DNS round robin 방식

woo0doo 2023. 1. 27. 01:58

DNS(Domain Name System)

 

  • DNS는 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었다.
  • 특정 컴퓨터(또는 네트워크로 연결된 임의의 장치)의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호(IP 주소)로 변환해 준다. 도메인 네임 시스템은 흔히 "전화번호부"에 비유된다.
  • 인터넷 도메인 주소 체계로서 TCP/IP의 응용에서, www.google.com 이라는 도메인 이름을 DNS 서버에게 제공하면, 24.55.67.22 라는 IP 주소로 변환하고 라우팅 정보를 제공하는 분산형 데이터베이스 시스템이다.

 

 


DNS 과정

1. DNS Query

  • DNS 서버에서 도메인 이름에 해당하는 IP 주소를 요청하여 받아온다.
  • 이때, DNS 서버에 접속하는 사용자에 대해 Round Robin을 이용해 IP를 할당하게 된다.

2. IP communication

  • IP 주소를 받아오면 사용자는 리퀘스트 메시지를 보내 네트워크 통신을 시작한다.

 

DNS Round Robin

  • DNS를 이용하여 부하 분산을 이용한다.
  • DNS 서버에서 하나의 도메인 명에 여러 개의 IP 주소를 등록시켜두고 클라이언트로부터 요청이 있으면 등록되어 있는 IP 주소를 순서대로 반환하는 방식이다
  • 반환되는 IP 주소가 바뀌므로 클라이언트의 행선지도 바뀌어 결과적으로 커넥션이 분배된다.

 

 

시분할 시스템을 위해 설계된 선점형 스케쥴링의 하나로서, 프로세스들 사이에 우선순위를 두지 않고, 순서대로 시간단위로 CPU를 할당하는 방식의 CPU 스케쥴링 알고리즘이다.

 

각 프로세스에 일정시간을 할당하고, 할당된 시간이 지나면 그 프로세스는 잠시 보류한 뒤 다른 프로세스에게 기회를 주고, 또 그 다음 프로세스에게 하는 식으로, 돌아가며 기회를 부여하는 운영방식이라 풀어 말할 수 있다.

 

즉 DNS 서버에 대한 Round Robin 형식으로 구성할 경우 로드밸런서가 필요가 없다. 이 말은 즉슨 부하에 대한 걱정을 할 필요가 없다는 것이다.(자동으로 시간에 따라서 스케쥴링이 변환되기 때문에)

 

※로드밸런서 - 서버에 가해지는 트래픽을 여러대의 서버에게 균등하게 분산시켜주는 역할을 함

 


Round Robin의 문제점

1. 서버의 수 만큼 공인 IP 주소가 필요

2. 균등하게 분산되지 않다.

  • 스마트폰 접속의 경우, 프록시 서버를 경유하는데, 프록시 서버에서는 변환 결과가 일정시간 동안 캐싱된다. 같은 프록시 서버를 경유하는 접속은 항상 같은 서버로 접속

3. 서버가 다운돼도 확인이 불가하다.

  • DNS 서버는 웹 서버의 부하나 접속 수 등의 상황에 따라 질의결과를 제어할 수 없음
  • 전혀 감지가 안되기 때문에 어떤 원인으로 다운되어도 검출하지 못하고 유저에게 제공

DNS 라운드 로빈은 부하분산을 위한 방법일 뿐, 다중화 방법이 아니므로 다른 S/W와 조합해서 관리해야 한다.

 


이를 극복하기 위한 방법

- Weighted round robin (WRR)

각각의 웹 서버에 가중치를 가미해서 분산 비율을 변경

=> 가중치가 큰 서버일수록 빈번하게 선택되므로 처리능력이 높은 서버를 가중치가 높게 설정한다.

 

 

또 다른 방법으로는 로드 밸런서의 도입을 통해 다음과 같은 구성도 가능하다.

 

- Least connection

접속 클라이언트 수가 가장 적은 서버를 선택

=> 로드밸런서에서 실시간으로 connection 수를 관리하거나 각 서버에서 주기적으로 알려주는 것이 필요.

 

 

 


출처

https://velog.io/@eu_nzi/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-DNS-round-robin%EC%9D%98-%EB%B0%A9%EC%8B%9D

https://github.com/Seogeurim/CS-study/blob/main/contents/network/materials/yoongoing_networkflow.pdf

'Network' 카테고리의 다른 글

HTTP 상태코드란 + RGB, redirect  (1) 2023.03.01
웹 통신의 큰 흐름  (2) 2023.01.29
HTTP와 HTTPS 란? + SSL 동작 과정  (20) 2023.01.22
HTTP 요청 방식 - GET, POST  (29) 2023.01.18
TCP / UDP 차이점  (0) 2023.01.16