SLB(Server Load Balance)의 패킷 흐름

kyu123·2025년 1월 12일
0

SLB(Server Load Balance)의 패킷 흐름

SLB의 패킷 흐름은 L4 스위치가 클라이언트 요청을 처리하는 전체 과정을 보여줍니다. 이 글에서는 각 단계와 주요 구성 요소를 자세히 설명합니다.


1. 패킷 흐름 단계

1) Find Entry

  • 역할: 클라이언트 요청 패킷이 L4 스위치에 도달하면, 먼저 엔트리(Entry)를 조회합니다.
    • Entry란?
      • 트래픽 처리 규칙으로, 클라이언트와 연결된 세션 정보를 저장하며, Session Persistence(세션 유지)를 위해 사용됩니다.
    • Entry 조회 과정:
      1. 요청 패킷의 소스 IP, 목적지 IP, 프로토콜, 포트를 기준으로 기존에 생성된 Entry를 찾습니다.
      2. 기존 Entry가 없으면 새로 생성합니다(Make Entry).

2) LB Service (Priority 40)

  • VIP & VPort 확인:

    • 요청 패킷의 목적지 IP(VIP, Virtual IP)와 포트(VPort)를 확인합니다.
    • VIP와 VPort는 클라이언트가 접근할 수 있는 가상 서버를 의미합니다.
  • ACT Real Server로 연결:

    • Health Check 결과를 기준으로, Active(활성화) 상태의 Real Server로 트래픽을 전달합니다.
    • LB Method:
      • 부하 분산 알고리즘에 따라 Real Server를 선택합니다(예: Round Robin, Least Connection 등).

3) LB Service (Priority 50)

  • 대체 LB Service로 이동:

    • Priority 40의 Real Server가 Inactive(비활성화) 상태일 경우, Priority 50의 LB Service로 이동합니다.
    • 즉, 장애 발생 시 대체 서비스로 트래픽을 분산하는 구조입니다.
    • 우선순위(Priority):
      • Priority 값이 낮을수록 높은 우선순위를 가집니다.
      • Priority 40 → Priority 50으로 넘어감.
  • LB Method 적용:

    • Priority 50의 LB Service에서도 Health Check를 통해 Active 상태의 Real Server를 확인하고, 트래픽을 전달합니다.

4) Make Entry

  • Session & Persistence 처리:
    • 요청 패킷이 특정 Real Server로 전달된 이후, 클라이언트 세션 정보를 기반으로 Entry를 생성합니다.
    • Entry는 Session Persistence(클라이언트가 동일한 서버에 연결되도록 보장)를 위해 사용됩니다.

5) Routing

  • 트래픽 라우팅:
    • 트래픽이 최종적으로 선택된 Real Server로 전달되며, 서버의 응답이 클라이언트에게 반환됩니다.
    • Entry에 따라 트래픽은 지속적으로 같은 Real Server로 라우팅됩니다.

2. 주요 구성 요소 설명

1) LB Service

  • L4 스위치의 핵심 모듈로, 클라이언트 요청을 부하 분산하여 Real Server로 전달합니다.
  • 구성 요소:
    1. VIP & VPort: 클라이언트 요청의 목적지 IP와 포트를 의미.
    2. ACT Real Server: Health Check를 통해 활성화된 Real Server.
    3. LB Method: 부하 분산 알고리즘 (Round Robin, Weighted Least Connection 등).

2) Priority

  • LB Service는 Priority 값에 따라 트래픽 처리 우선순위를 결정합니다.
  • 작동 방식:
    • Priority 값이 낮을수록 높은 우선순위를 가집니다.
    • 우선순위가 높은 LB Service가 장애 상태(INACT)일 경우, 우선순위가 낮은 LB Service로 트래픽이 전달됩니다.

3) Entry

  • L4 스위치가 클라이언트 요청을 처리하기 위해 생성하는 세션 정보.
  • 역할:
    • 클라이언트와 서버 간의 트래픽 처리 규칙을 저장.
    • 동일한 클라이언트 요청이 항상 같은 Real Server로 라우팅되도록 보장(Session Persistence).
    • 세션이 만료되면 Entry가 삭제됩니다.

4) Health Check

  • Real Server의 상태를 확인하여 Active 또는 Inactive로 구분.
  • Active 상태:
    • 정상적인 서버로 트래픽 전달.
  • Inactive 상태:
    • 서버 장애로 인해 트래픽 전달 불가.
    • 다른 LB Service로 트래픽 전환.

3. 전체 동작 흐름 요약

  1. Entry 조회:
    • 기존 세션이 있는지 확인.
  2. LB Service 처리 (Priority 40):
    • 요청 패킷이 VIP와 VPort를 통해 LB Service로 전달.
    • Health Check 결과에 따라 Active Real Server로 트래픽 분배.
  3. LB Service 전환 (Priority 50):
    • Priority 40의 Real Server가 비활성화(INACT) 상태일 경우, 대체 LB Service로 트래픽 전달.
  4. Entry 생성 및 세션 유지:
    • 트래픽 전달 후, 세션 정보 기반으로 Entry 생성.
  5. Routing:
    • 트래픽이 최종적으로 선택된 Real Server로 전달.

4. 추가적으로 알아야 할 사항

  1. LB Method:

    • Round Robin, Least Connection, Source IP Hash 등 다양한 부하 분산 알고리즘이 사용됩니다.
  2. Health Check:

    • Health Check 실패 시, 서버를 INACTIVE 상태로 설정하여 트래픽이 전달되지 않도록 합니다.
  3. Persistence:

    • 클라이언트 세션이 유지되도록 보장하며, 동일한 요청은 항상 같은 Real Server로 전달됩니다.

추가로 궁금한 점이나 특정 세부 사항에 대해 더 알고 싶으시면 댓글로 남겨주세요! 😊

profile
네트워크 공부 기록

0개의 댓글