그림. L4 DSR 처리 방식
클라이언트와 먼저 3way handshaking을 한 뒤 정상적이면 2차로 서버와 동일하게 3way handshaking을 하게 된다.
이 과정 후에 클라이언트가 http로 보낸 요청에 대해 서버가 요청을 처리하게 되면 L4로 경유하지 않고 바로 L3 스위치를 통해
클라이언트로 응답을 내려주게 되는데 이때 L4에서는 이 최초 요청에 대한 여러 세션 정보중에 Destination IP가 실제 응답을 준
서버 아이피로 세션 테이블에 정보를 저장하게 되는데, 서버 혹은 클라이언트가 FIN 패킷을 보내어 L4가 받게 되면 세션 테이블에서
해당 세션 정보를 삭제하게 된다.
만약 아파치에서 keepAlive를 켜지 않았을 경우에는 서버가 응답을 내려주고 FIN 패킷을 보내기 때문에 일반적인 PC환경에서는
클라이언트의 요청이 Round Robin방식으로 요청이 분산이 되지만 KeepAlive를 켤 경우에는 KeepAliveTimeout이 발생하지 않는한
클라이언트와 서버 모두 FIN을 보내지 않기 때문에 L4에 저장된 세션 정보의 Destination Ip를 보고 동일한 서버로 요청이 들어가게 된다.
* 주요 L4 Switch 설명
1. SLB (Server Load Balancing)
- 과거에 서비스를 했었던 방법으로 클라이언트에서 서버로 보낼때와 서버에서 리턴될때 모두 L4 Switch를 거치기 때문에 과부하가 걸리는 서비스의 경우 DNS RR방식으로 서비스를 구성하기도 한다.
2. GSLB (Global Server Load Balancing)
- 특정 도메인으로 들어온 요청을 분산시키는 방법으로 도메인 네임에 대한 쿼리 요청에 대해 응답을 변형하여 지역적으로 분산시킨다.
3. DSR (Direct Server Return)
- 현재 인프라에서 적용하여 사용하는 방법으로 SLB 방식으로 인한 L4 Switch의 과부하를 막기 위해 서버에서의 응답이 바로 클라이언트로 보내도록 한다. 위의 그림과 같이 동작하게 된다.
'Network' 카테고리의 다른 글
아이피 대역 계산 방법 (0) | 2015.11.13 |
---|