Chapter 20. Redirection and Load Balancing
(해석 또는 이해가 잘못된 부분이 있다면 댓글로 편하게 알려주세요.)
✏️ 요약
HTTP Redirection

- 장점
- 리디렉트 하는 서버가 클라이언트의 IP 주소를 알고 있다 -> 더 많은 정보를 보유한 채로 destination을 선택할 수 있다
- 단점
- 어느 서버로 리디렉트할지 결정하는 과정에서 많은 프로세싱 파워 소모
- 요청을 두 번 보내야 하므로 사용자 지연 증가
- 리디렉트 하는 서버에 장애가 발생하면 사이트 전체가 마비된다
DNS Redirection

- DNS는 하나의 도메인에 여러 개의 IP를 바인딩할 수 있다
- DNS가 반환하는 IP는 Round Robin 방식이나 부하가 적은 서버를 선택하는 등 다양한 방식으로 결정될 수 있다
DNS round robin

- 여러 개의 웹 서버 팜 가운데 하나에 순차적으로 로드 밸런싱하는 방식
- 대부분의 DNS 클라이언트는 첫 번째 주소를 사용 -> DNS 서버가
nslookup이 완료될 때마다 IP 주소를 로테이션 하여 부하를 분산한다
The impact of DNS caching
- DNS lookup의 결과가 응용 프로그램이나 OS, 하위의 DNS 서버에 저장되고 재사용될 수 있다 -> 동일한 주소를 반복적으로 사용하는 문제 발생
- 대부분의 운영체제가 DNS lookup을 자동으로 수행하고 결과를 저장하므로 IP 주소의 로테이션이 원활하게 이루어지지 않을 수 있다
- 하나의 클라이언트가 계속해서 동일한 IP로 접속하게 되지만 여러 클라이언트에 대해서는 여전히 로드 밸런싱의 효과가 있다
Other DNS-based redirection algorithms
Load-balancing algorithms : 웹 서버의 부하를 추적해서 가장 부하가 적은 서버로 리디렉트 하는 기술
Proximity-routing algorithms : 사용자를 가장 가까운 웹 서버로 리디렉트 하는 기술
Fault-masking algorithms : 네트워크 상태를 모니터링하고 중간에 결함이 발생하지 않도록 요청을 라우팅하는 기술
Anycast Addressing
- 동일한 IP를 가진 웹 서버가 여러 위치에 분산되어 있을 때 최단 경로로 라우팅하기 위한 기술
- 각각의 웹 서버가 인근의 backbone 라우터에게 자신이 라우터라고 전파 -> backbone 라우터가 특정 anycast 주소에 대한 패킷을 받으면 가장 가까운 라우터로 이동시킨다
- 요구사항
- 서버가 라우터 프로토콜을 이해하고 사용할 수 있어야 한다
- 라우터가 IP 주소 충돌 문제를 해결할 수 있어야 한다
IP MAC Forwarding

- Layer 4-aware Switch : IP, 포트번호에 대한 정보를 갖고 라우팅
IP Address Forwarding
- 들어오는 패킷의 TCP/IP 주소를 확인하고 Destination IP 주소에 따라 라우팅한다
- Destination의 MAC Address가 아닌 IP 주소에 기반하는 것이 특징 -> 여러 hop을 거친 곳에 destination이 위치하더라도 포워딩이 가능하다
Full NAT : 스위치가 서버로 요청을 넘길 때 클라이언트 IP를 스위치의 IP로 교체하는 방식
- 장점 : 네트워크 구성이 복잡해도 반드시 스위치로 돌아올 수 있다
- 단점 : 서버가 진짜 클라이언트의 IP 주소를 알 수 없다
Half NAT : 스위치가 서버로 요청을 넘길 때 클라이언트 IP를 그대로 유지하는 방식
- 장점 : 서버가 진짜 클라이언트의 IP 주소를 알 수 있다
- 단점 : 서버와 클라이언트 사이의 모든 네트워크 경로를 통제해야 한다