반응형

로드밸런싱?

컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋이상의 중앙처리장치 혹은 저장장치와 같은
컴퓨터 자원들에게 작업을 나누는 것을 의미

 

로드밸런서(=스위치) 종류

  • 운영체제 로드밸런서
    - 물리적 프로세서 간에 작업을 스케줄링
  • 네트워크 로드밸런서
    - 사용 가능한 백엔드에서 네트워크 작업을 스케줄링

스위치의 분류

L2 : OSI 레이어 2에 속하는 MAC 어드레스를 참조하여 스위칭하는 장비

L3 : OSI 레이어 3에 속하는 IP주소를 참조하여 스위칭하는 장비

L4 : OSI 레이어 3~4에 속하는 IP 주소 및 TCP/UDP 포트 정보를 참조하여 스위칭하는 장비
L7 : OSI 레이어 3~7에 속하는 IP 주소, TCP/UDP 포트 정보 및 패킷 내용까지 참조하여 스위칭함

 

로드밸런서 주요 기술

  • NAT(Network Address Translation)
    - 사설 ip주소를 공인 IP주소로 변경, 주소변경의 역할
  • DSR(Dynamic Source Routing protocol)
    - 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념
  • Tunneling
    - 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념
    - 데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제

 

로드밸런싱 Failover

로드밸런서 장애 방지를 위해 이중화 구성 필요

 

  1. vip로 접속을하고 active된 로드벨런서로 연결
  2. 장애가 났을경우 standby중인 로드밸런서로 연결
  3. 이중화된 로드밸런서에서 Health Check
  4. 장애로 여분 로드밸런서가 동작 할 경우 이를 통해 서버 접근

 

네트워크 로드밸런서 종류

가장 많이 쓰이는 로드밸런서는 아래 2가지

  • L4(Transport Layer)
    - Transport Layer(IP+Port) Load Balancing
    - 예시: IP+Port > 213.12.32.123:80, 213.12.32.123:1024
    - TCP/UDP 포트 정보를 분석해 해당 패킷이
      현재 사용하는 서비스 종류(HTTP, FTP, 텔넷, SMTP, POP3, SSL등)별로 PACKET을 처리

    - 장점 : Port기반 스위칭 지원, VIP를 이용하여 여러대를 한대로 묶어 부하분산
    - 주로 Round Robin 방식 사용
  • L7(Application Layer)
    - Application Layer(사용자 Request) Load Balancing
    - 예시 : IP+Port+패킷 내용 >
    213.12.32.123:80, 213.12.32.123:1024 + GET/ img/aaa.jpg
    - HTTP, FTP, SMTP Protocol 등의 콘텐츠를 인지하여 원하는 포트로 전달하는 스위치 (콘텐츠 기반 스위칭)
    - 쿠키 기반의 연결 지속성 (클라이언트 IP가 Public IP로 치환되어 전송 -> X-Forwarded-For에 client ip기록)

 

L4 

동작 방식

L4 동작

  1. Clinet(=브라우저) 에서 주소(ex. 111.co.kr) 입력 -> PC Local DNS 서버로 DNS Query -> DNS 서버에서 111.co.kr 관리하는 Authoritative DNS 의 DNS Query, L4의 VIP주소 획득
  2. Local DNS가 획득한 VIP 주소를 전송
  3. 획득한 DNS를 기반으로 L4 VIP로 http 요청
  4. L/B장비는 최적의 서비스 서버를 내부 알고리즘(라운드로빈 등)을 통하여 선별, 요청 전송 ->
    서버 작업 결과를 L/B장비 전송
  5. 전달받은 http결과를 L/B장비를 통해 Client에 전송함으로 요청 처리 완료

 

L4 이슈 

프록시 서버 사용 시 이슈가 발생하며

예를 들면 회사 -> 외부 나갈 시 각 PC의 IP가 아니라 프록시 서버 IP를 갖고 나가기에

여러 사람이 timeout 시간 내에 접속할 경우, 지속적으로 한 서버에만 로드 집중 (외부에서 보면 동일한 사람으로 보임)

=> 해결책 : SSL 이나 타 보안 모듈 이용하여 인증된 특정 사용자에 대해쿠키, DB에 기록 후 해당 사용자에 대해서만 세션 유지 하도록 한다 (단점은 퍼포먼스 저하 및 기타 코스트가 발생)

 

단점을 해결하기 위해 하기의 L7을 사용. 

L7

동작 방식

aaa.co.kr 접속 -> 서비스 종류(포트별 구분 HTTP, FTP 등) 별로 분기하여 처리 

 

 

 

L4 vs L7

  1. 구조 차이 
    • 공통점 : 스위치로 들어온 Packet을 적절한 목적지(주로 네트워크 장비나 클라이언트, 때로는 불필요한 Packet을 Drop시키기도 함)로 전송해줌. 기본적인 기능과 역할은 동일하나 Packet을 분석해 성격과 중요도를 분류하는 Intelligence가 달라서 "적절한 목적지"를 찾아내 해당 Packet을 처리해 주는 능력에 차이가 발생함.

    • 차이점 
      • L4 : TCP/UDP 포트 정보 분석 통해 해당 패킷 사용하는 서비스 종류에 따라 패킷 처리 
      • L7 : 트래픽 컨텐츠 패턴 분석해 패킷 처리 
  2. 기능적 차이 
    * 보다 높은 수준의 Intelligence를 갖춘 스위치일수록 더 정교한 패킷의 부하분산(Load Ballancing)및 Qos기능 가능
    • L7스위치는 다음과 같은 기능을 통해 네트워크 시스템의 보안성 강화가 가능
      1) Dos/SYN Attack에 대한 방어
      2) CodeRed/Nimda등 바이러스 감염 패킷의 필터링
      3) 네트워크 자원의 독점 방지를 통한 네트워크 시스템의 보안성 강화가 가능

반응형

'Web > web dev' 카테고리의 다른 글

HTTP/3  (0) 2022.01.25
레이턴시, 대역폭  (0) 2021.12.16
LDAP , AD  (0) 2021.05.31
TCP / IP  (2) 2020.12.15
임베디드 OS 만들기 -2장 hello world 출력  (0) 2019.09.23

+ Recent posts