IT recording...
[Network] 5. DNS Round Robin 본문
[그림과 함께 편하게 보려면 여기로]
https://adorable-aspen-d23.notion.site/Network-5-DNS-Round-Robin-ea0e42b6715446cb9612fd15efc860fd
1. DNS(Domain Name System)
1. DNS란
- 도메인에 해당하는 IP주소를 찾아 사용자에게 제공하는 서버
2. DNS 동작원리
- 사용자가 www.naver.com 을 브라우저에 입력한다
- Local DNS에게 질의하여 캐시된 것이 없으면 Root DNS서버에 전달한다.
- Local DNS서버는 Root DNS 서버에게 com 도메인을 관리하는 TLD(최상위 도메인) 서버 정보를 전달받는다.
- com DNS로 질의한다.
- naver.com DNS 정보를 전달받는다.
- www.naver.com로 질의한다.
- IP 정보를 전달받는다.
- Local DNS는 www.naver.com에 대한 IP주소를 캐싱하고, IP 주소 정보를 전달한다.
- Recursive Query
- Root → com → xxx.com
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사용은 금지
- 서버의 수 만큼 공인 IP주소가 필요하다.
→ 라운드 로빈은 부하분산을 위한 방법이지, 다중화 방법은 아니므로 다른 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 동작원리
- 사용자가 www.naver.com 을 브라우저에 입력한다
- Local DNS에게 질의하여 캐시된 것이 없으면 Root DNS서버에 전달한다.
- Local DNS서버는 Root DNS 서버에게 com 도메인을 관리하는 TLD(최상위 도메인) 서버 정보를 전달받는다.
- com DNS로 질의한다.
- naver.com DNS 정보를 전달받는다.
- www.naver.com로 질의한다.
- IP 정보를 전달받는다.
- Local DNS는 www.naver.com에 대한 IP주소를 캐싱하고, IP 주소 정보를 전달한다.
- Recursive Query
- Root → com → xxx.com
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사용은 금지
- 서버의 수 만큼 공인 IP주소가 필요하다.
→ 라운드 로빈은 부하분산을 위한 방법이지, 다중화 방법은 아니므로 다른 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 동작원리
- 사용자가 www.naver.com 을 브라우저에 입력한다
- Local DNS에게 질의하여 캐시된 것이 없으면 Root DNS서버에 전달한다.
- Local DNS서버는 Root DNS 서버에게 com 도메인을 관리하는 TLD(최상위 도메인) 서버 정보를 전달받는다.
- com DNS로 질의한다.
- naver.com DNS 정보를 전달받는다.
- www.naver.com로 질의한다.
- IP 정보를 전달받는다.
- Local DNS는 www.naver.com에 대한 IP주소를 캐싱하고, IP 주소 정보를 전달한다.
- Recursive Query
- Root → com → xxx.com
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사용은 금지
- 서버의 수 만큼 공인 IP주소가 필요하다.
→ 라운드 로빈은 부하분산을 위한 방법이지, 다중화 방법은 아니므로 다른 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 |