IT recording...

[Network] 5. DNS Round Robin 본문

Network

[Network] 5. DNS Round Robin

I-one 2022. 5. 16. 00:09

[그림과 함께 편하게 보려면 여기로]

https://adorable-aspen-d23.notion.site/Network-5-DNS-Round-Robin-ea0e42b6715446cb9612fd15efc860fd

 

[Network] 5. DNS Round Robin

1. DNS(Domain Name System)

adorable-aspen-d23.notion.site

1. DNS(Domain Name System)

1. DNS란

  • 도메인에 해당하는 IP주소를 찾아 사용자에게 제공하는 서버

2. DNS 동작원리

  1. 사용자가 www.naver.com 을 브라우저에 입력한다
  1. Local DNS에게 질의하여 캐시된 것이 없으면 Root DNS서버에 전달한다.
  2. Local DNS서버는 Root DNS 서버에게 com 도메인을 관리하는 TLD(최상위 도메인) 서버 정보를 전달받는다.
  3. com DNS로 질의한다.
  4. naver.com DNS 정보를 전달받는다.
  5. www.naver.com로 질의한다.
  6. IP 정보를 전달받는다.
  7. Local DNS는 www.naver.com에 대한 IP주소를 캐싱하고, IP 주소 정보를 전달한다.
  • Recursive Query

2. DNS 부하 분산

근데, www.abc.com에 1.1.1.1 IP 주소가 매핑되어 있었는데, 대박터져서 갑자기 사용자가 늘어난다면???

1. DNS Round-Robin

  • 시분할 방식을 이용한다. (선점형)
    • DNS서버에서 하나의 도메인명에 여러 개의 IP주소를 등록시켜두고 클라이언트로부터 요청이 있으면 등록되어 있는 IP주소를 순서대로 반환하는 방식
(base) jionee@yujiwon-ui-MacBookAir ~ % **nslookup www.google.com**
Server:		192.168.10.254
Address:	192.168.10.254#53

Non-authoritative answer:
Name:	www.google.com
Address: 142.250.76.132

//=======

(base) jionee@yujiwon-ui-MacBookAir ~ % **nslookup www.naver.com**
Server:		192.168.10.254
Address:	192.168.10.254#53

Non-authoritative answer:
www.naver.com	canonical name = www.naver.com.nheos.com.
Name:	www.naver.com.nheos.com
Address: 223.130.200.104
Name:	www.naver.com.nheos.com
Address: 223.130.200.107
  • 장점
    • 로드 밸런서가 필요없다. (자동적으로 시간에 따라서 스케쥴링이 변환되기 때문)
  • 단점
    • 서버의 수 만큼 공인 IP주소가 필요하다.
      • 부하 분산을 위해 서버의 대수를 늘리기 위해서는 그만큼의 공인 IP주소가 필요하다.
    • 균등하게 분산되지 않는다.
      • 모바일의 경우 프록시 서버를 항상 경유한다. 프록시 서버는 IP 변환 결과가 일정 시간동안 캐싱되므로, 같은 프록시 서버를 경유하는 접속은 항상 같은 서버로 접속된다.
    • Health check를 하지 않아 서버가 다운되어도 확인이 불가능하다.
      • DNS서버는 웹 서버의 부하나 접속 수 등의 상황을 전혀 고려하지 못한다.
      • 따라서 다운된 서버에 연결을 해줄 수도 있는 불상사가 발생한다.
      • ⇒ 무중단 서비스에서 라운드로빈 DNS사용은 금지

→ 라운드 로빈은 부하분산을 위한 방법이지, 다중화 방법은 아니므로 다른 SW와 조합해서 관리할 필요가 있다.

2. GSLB(Global Server Load Balancing)

  • 로드밸런싱 + Health Check
    • 등록된 호스트에 주기적으로 health check를 수행한다.
    • 네트워크의 거리 혹은 지역에 따라 주기적으로 성능을 측정하고 결과를 저장한다.
      • 이후 DNS쿼리시 지리적, 네트워크적 거리가 가까운 서버를 반환
  • 로그인 세션 등 세션의 유지가 필요한 경우, 접속 중이던 클라이언트가 DNS에 의해 다른 서버 IP를 할당받아 다른 서버에 접속되면 기존 세션이 끊길 수 있다.
    • 웹 서버끼리 세션을 공유할 수 있도록 세션 클러스터링 설정을 한다.
    • 로드 밸런서에서 IP나 쿠키를 사용하여 동일한 서버로 접속되도록 stickness 설정을 한다.
      • L7 스위치

3. 다중화 구성 방식(Synchronous Time-Division Multiplexing)

  • AP 서버에 VIP(Virtual IP)를 부여해서 다중화를 구성한다.
  • 각 AP 서버를 Health Check후 이상이 감지되면 VIP를 정상 AP 서버로 인계하는 방식을 사용한다.
  • 즉 DNS Server Table 에 실시간으로 AP 서버의 상태를 확인할 수 있는 칼럼 및 함수를 추가하여 요청될 경우 서버 상태를 확인하여 우회루트를 제공하거나 에러를 전송하는 방식을 말합니다.

4. 가중치 편성 방식(Weighted Round Robin)

  • 각각의 웹 서버에 가중치를 두어 분산 비율을 변경한다.
    • 가중치가 큰 서버일수록 빈번하게 선택되므로 처리 능력이 짱짱인 서버는 가중치를 높게 설정하여 처리하게 한다.

5. 최소 연결 방식(Least Connection)

  • 접속 클라이언트 수가 가장 적은 서버를 선택해야 한다.
  • 단점
    • 로드밸런서에서 실시간으로 Connection 상황(트래픽)을 관리해야 한다.

참고

https://judo0179.tistory.com/127

https://velog.io/@eu_nzi/네트워크-DNS-round-robin의-방식

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

1. DNS(Domain Name System)

1. DNS란

  • 도메인에 해당하는 IP주소를 찾아 사용자에게 제공하는 서버

2. DNS 동작원리

  1. 사용자가 www.naver.com 을 브라우저에 입력한다
  1. Local DNS에게 질의하여 캐시된 것이 없으면 Root DNS서버에 전달한다.
  2. Local DNS서버는 Root DNS 서버에게 com 도메인을 관리하는 TLD(최상위 도메인) 서버 정보를 전달받는다.
  3. com DNS로 질의한다.
  4. naver.com DNS 정보를 전달받는다.
  5. www.naver.com로 질의한다.
  6. IP 정보를 전달받는다.
  7. Local DNS는 www.naver.com에 대한 IP주소를 캐싱하고, IP 주소 정보를 전달한다.
  • Recursive Query

2. DNS 부하 분산

근데, www.abc.com에 1.1.1.1 IP 주소가 매핑되어 있었는데, 대박터져서 갑자기 사용자가 늘어난다면???

1. DNS Round-Robin

  • 시분할 방식을 이용한다. (선점형)
    • DNS서버에서 하나의 도메인명에 여러 개의 IP주소를 등록시켜두고 클라이언트로부터 요청이 있으면 등록되어 있는 IP주소를 순서대로 반환하는 방식
(base) jionee@yujiwon-ui-MacBookAir ~ % **nslookup www.google.com**
Server:		192.168.10.254
Address:	192.168.10.254#53

Non-authoritative answer:
Name:	www.google.com
Address: 142.250.76.132

//=======

(base) jionee@yujiwon-ui-MacBookAir ~ % **nslookup www.naver.com**
Server:		192.168.10.254
Address:	192.168.10.254#53

Non-authoritative answer:
www.naver.com	canonical name = www.naver.com.nheos.com.
Name:	www.naver.com.nheos.com
Address: 223.130.200.104
Name:	www.naver.com.nheos.com
Address: 223.130.200.107
  • 장점
    • 로드 밸런서가 필요없다. (자동적으로 시간에 따라서 스케쥴링이 변환되기 때문)
  • 단점
    • 서버의 수 만큼 공인 IP주소가 필요하다.
      • 부하 분산을 위해 서버의 대수를 늘리기 위해서는 그만큼의 공인 IP주소가 필요하다.
    • 균등하게 분산되지 않는다.
      • 모바일의 경우 프록시 서버를 항상 경유한다. 프록시 서버는 IP 변환 결과가 일정 시간동안 캐싱되므로, 같은 프록시 서버를 경유하는 접속은 항상 같은 서버로 접속된다.
    • Health check를 하지 않아 서버가 다운되어도 확인이 불가능하다.
      • DNS서버는 웹 서버의 부하나 접속 수 등의 상황을 전혀 고려하지 못한다.
      • 따라서 다운된 서버에 연결을 해줄 수도 있는 불상사가 발생한다.
      • ⇒ 무중단 서비스에서 라운드로빈 DNS사용은 금지

→ 라운드 로빈은 부하분산을 위한 방법이지, 다중화 방법은 아니므로 다른 SW와 조합해서 관리할 필요가 있다.

2. GSLB(Global Server Load Balancing)

  • 로드밸런싱 + Health Check
    • 등록된 호스트에 주기적으로 health check를 수행한다.
    • 네트워크의 거리 혹은 지역에 따라 주기적으로 성능을 측정하고 결과를 저장한다.
      • 이후 DNS쿼리시 지리적, 네트워크적 거리가 가까운 서버를 반환
  • 로그인 세션 등 세션의 유지가 필요한 경우, 접속 중이던 클라이언트가 DNS에 의해 다른 서버 IP를 할당받아 다른 서버에 접속되면 기존 세션이 끊길 수 있다.
    • 웹 서버끼리 세션을 공유할 수 있도록 세션 클러스터링 설정을 한다.
    • 로드 밸런서에서 IP나 쿠키를 사용하여 동일한 서버로 접속되도록 stickness 설정을 한다.
      • L7 스위치

3. 다중화 구성 방식(Synchronous Time-Division Multiplexing)

  • AP 서버에 VIP(Virtual IP)를 부여해서 다중화를 구성한다.
  • 각 AP 서버를 Health Check후 이상이 감지되면 VIP를 정상 AP 서버로 인계하는 방식을 사용한다.
  • 즉 DNS Server Table 에 실시간으로 AP 서버의 상태를 확인할 수 있는 칼럼 및 함수를 추가하여 요청될 경우 서버 상태를 확인하여 우회루트를 제공하거나 에러를 전송하는 방식을 말합니다.

4. 가중치 편성 방식(Weighted Round Robin)

  • 각각의 웹 서버에 가중치를 두어 분산 비율을 변경한다.
    • 가중치가 큰 서버일수록 빈번하게 선택되므로 처리 능력이 짱짱인 서버는 가중치를 높게 설정하여 처리하게 한다.

5. 최소 연결 방식(Least Connection)

  • 접속 클라이언트 수가 가장 적은 서버를 선택해야 한다.
  • 단점
    • 로드밸런서에서 실시간으로 Connection 상황(트래픽)을 관리해야 한다.

참고

https://judo0179.tistory.com/127

https://velog.io/@eu_nzi/네트워크-DNS-round-robin의-방식

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

1. DNS(Domain Name System)

1. DNS란

  • 도메인에 해당하는 IP주소를 찾아 사용자에게 제공하는 서버

2. DNS 동작원리

  1. 사용자가 www.naver.com 을 브라우저에 입력한다
  1. Local DNS에게 질의하여 캐시된 것이 없으면 Root DNS서버에 전달한다.
  2. Local DNS서버는 Root DNS 서버에게 com 도메인을 관리하는 TLD(최상위 도메인) 서버 정보를 전달받는다.
  3. com DNS로 질의한다.
  4. naver.com DNS 정보를 전달받는다.
  5. www.naver.com로 질의한다.
  6. IP 정보를 전달받는다.
  7. Local DNS는 www.naver.com에 대한 IP주소를 캐싱하고, IP 주소 정보를 전달한다.
  • Recursive Query

2. DNS 부하 분산

근데, www.abc.com에 1.1.1.1 IP 주소가 매핑되어 있었는데, 대박터져서 갑자기 사용자가 늘어난다면???

1. DNS Round-Robin

  • 시분할 방식을 이용한다. (선점형)
    • DNS서버에서 하나의 도메인명에 여러 개의 IP주소를 등록시켜두고 클라이언트로부터 요청이 있으면 등록되어 있는 IP주소를 순서대로 반환하는 방식
(base) jionee@yujiwon-ui-MacBookAir ~ % **nslookup www.google.com**
Server:		192.168.10.254
Address:	192.168.10.254#53

Non-authoritative answer:
Name:	www.google.com
Address: 142.250.76.132

//=======

(base) jionee@yujiwon-ui-MacBookAir ~ % **nslookup www.naver.com**
Server:		192.168.10.254
Address:	192.168.10.254#53

Non-authoritative answer:
www.naver.com	canonical name = www.naver.com.nheos.com.
Name:	www.naver.com.nheos.com
Address: 223.130.200.104
Name:	www.naver.com.nheos.com
Address: 223.130.200.107
  • 장점
    • 로드 밸런서가 필요없다. (자동적으로 시간에 따라서 스케쥴링이 변환되기 때문)
  • 단점
    • 서버의 수 만큼 공인 IP주소가 필요하다.
      • 부하 분산을 위해 서버의 대수를 늘리기 위해서는 그만큼의 공인 IP주소가 필요하다.
    • 균등하게 분산되지 않는다.
      • 모바일의 경우 프록시 서버를 항상 경유한다. 프록시 서버는 IP 변환 결과가 일정 시간동안 캐싱되므로, 같은 프록시 서버를 경유하는 접속은 항상 같은 서버로 접속된다.
    • Health check를 하지 않아 서버가 다운되어도 확인이 불가능하다.
      • DNS서버는 웹 서버의 부하나 접속 수 등의 상황을 전혀 고려하지 못한다.
      • 따라서 다운된 서버에 연결을 해줄 수도 있는 불상사가 발생한다.
      • ⇒ 무중단 서비스에서 라운드로빈 DNS사용은 금지

→ 라운드 로빈은 부하분산을 위한 방법이지, 다중화 방법은 아니므로 다른 SW와 조합해서 관리할 필요가 있다.

2. GSLB(Global Server Load Balancing)

  • 로드밸런싱 + Health Check
    • 등록된 호스트에 주기적으로 health check를 수행한다.
    • 네트워크의 거리 혹은 지역에 따라 주기적으로 성능을 측정하고 결과를 저장한다.
      • 이후 DNS쿼리시 지리적, 네트워크적 거리가 가까운 서버를 반환
  • 로그인 세션 등 세션의 유지가 필요한 경우, 접속 중이던 클라이언트가 DNS에 의해 다른 서버 IP를 할당받아 다른 서버에 접속되면 기존 세션이 끊길 수 있다.
    • 웹 서버끼리 세션을 공유할 수 있도록 세션 클러스터링 설정을 한다.
    • 로드 밸런서에서 IP나 쿠키를 사용하여 동일한 서버로 접속되도록 stickness 설정을 한다.
      • L7 스위치

3. 다중화 구성 방식(Synchronous Time-Division Multiplexing)

  • AP 서버에 VIP(Virtual IP)를 부여해서 다중화를 구성한다.
  • 각 AP 서버를 Health Check후 이상이 감지되면 VIP를 정상 AP 서버로 인계하는 방식을 사용한다.
  • 즉 DNS Server Table 에 실시간으로 AP 서버의 상태를 확인할 수 있는 칼럼 및 함수를 추가하여 요청될 경우 서버 상태를 확인하여 우회루트를 제공하거나 에러를 전송하는 방식을 말합니다.

4. 가중치 편성 방식(Weighted Round Robin)

  • 각각의 웹 서버에 가중치를 두어 분산 비율을 변경한다.
    • 가중치가 큰 서버일수록 빈번하게 선택되므로 처리 능력이 짱짱인 서버는 가중치를 높게 설정하여 처리하게 한다.

5. 최소 연결 방식(Least Connection)

  • 접속 클라이언트 수가 가장 적은 서버를 선택해야 한다.
  • 단점
    • 로드밸런서에서 실시간으로 Connection 상황(트래픽)을 관리해야 한다.

참고

https://judo0179.tistory.com/127

https://velog.io/@eu_nzi/네트워크-DNS-round-robin의-방식

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

'Network' 카테고리의 다른 글

[Network] 6. 대칭키/공개키  (0) 2022.05.16
[Network] 4. HTTP  (0) 2022.05.16
[Network] 3. TCP, UDP  (0) 2022.05.16
[Network] 2. OSI 7계층  (0) 2022.05.16
[Network] 1. 인터넷  (0) 2022.05.16
Comments