본문 바로가기
카테고리 없음

로드 밸런서/방화벽: 4계층 장비(세션 장비)

by 몰라몰라개복치 2024. 4. 4.

IT 엔지니어를 위한 네트워크 입문 6장

 

6.1 4계층 장비의 특징


4계층 장비는 테이블을 기반으로 운영. 4계층에 속하는 장비들을 세션장비라 칭하며 로드밸런서, 방화벽 같은 장비가 속함.

 

세션 장비에서 최우선적으로 고려할 요소

  • 세션 테이블
  • Symmetric(대칭) 경로 요구
  • 정보 변경(로드 밸런서의 경우)

 

6.1 4계층 장비의 특징

로드 밸런서는 서버나 장비의 부하를 분산하기 위해 사용하는 장비. 로드 밸런서는 트래픽을 분배해주는 기능과 IP 주소나 4계층 정보, 어플리케이션 정보를 확인,수정하는 기능을 가지고 있으며 로드 밸런서는 주로 웹 서버 부하 분산에 사용.


6.2 로드 밸런서

 

5천 명의 요청을 처리하는 서버의 가격은 천 명의 요청을 처리하는 서버의 5배 이상의 가격을 가짐. 즉 5천명의 요청을 처리하는 서버보다 천 명의 요청을 처리하는 서버 5대를 운영하는 것이 경제적.
=> 해당 시스템 확장 방식을 스케일 아웃이라고 칭함

 

 

로드 밸런서를 사용하면 작은 시스템을 여러 대 운영하더라도 사용자에게는 하나의 서비스로 보임. 아래 그림과 같이 로드밸런서는 대표 IP(서비스 IP)를 통해 사용자의 요청을 받으며, 받은 요청을 각 시스템의 실제 IP로 변경해 해당 시스템으로 다시 요청을 전달.

 

 

L4 로드 밸런싱

일반적인 로드 밸런서가 동작하는 방식. TCP, UDP 정보(특히 포트 넘버)를 기반으로 로드 밸런싱을 수행. 장비에서 L7 지원 여부와 상관없이 4계층에 대한 정보로만 분산 처리하는 경우.

 

L7 로드 밸런싱

HTTP, FTP, SMTP와 같은 애플리케이션 프로토콜 정보를 기반으로 로드 밸런싱을 수행. HTTP 헤더 정보나 URI와 같은 정보를 기반으로 프로토콜을 이해한 후 부하를 분산 가능. 일반적으로 이런 장비를 ADC(Application Delivery Controller)라고 부르며 프록시(Proxy)역할을 수행.

 

L4 스위치

4계층에서 동작하면서 로드 밸런서 기능이 있는 스위치. 내부 동작 방식은 4계층 로드 밸런서이지만 외형은 스위치처럼 여러 개의 포트 보유. 서버형 로드 밸런서나 소프트웨어 형태의 로드 밸런서도 있지만 다양한 네트워크 구성이 가능한 스위치형 로드 밸런서가 가장 대중화되어 있으며 부하 분산, 성능 최적화, 리다이렉션 기능 제공

  • L4 스위치가 동작하려면 가상 서버(Virtual Server), 가상 IP(Virtual IP), 리얼 서버(Real Server)와 리얼 IP(Real IP)를 설정 필요
  • L4 스위치는 가상 IP를 리얼 IP로 변경해주는 역할 수행

 

ADC

  • 애플리케이션 계층에서 동작하는 로드 밸런서. 계층에서 동작하는 L4 스위치와 달리 애플리케이션 프로토콜의 헤더와 내용을 이해하고 동작하므로 다양한 부하 분산, 정보 수정, 정보 필터링이 가능.
  • 4계층에서 애플리케이션 계층까지 로드 밸런싱 기능을 제공하고 페일오버(Failover, 장애극복 기능), 리다이렉션(Redirection) 기능도 함께 수행.  이 외에도 애플리케이션 프로토콜을 이해하고 최적화하는 다양한 기능을 제공.
  • 캐싱(Caching), 압축(Compression), 콘텐츠 변환 및 재작성, 인코딩 변환 등이 가능하고 애플리케이션 프로토콜 최적화 기능 또한 제공.

 

L4 스위치 vs ADC

L4 스위치는 4계층에서 동작하면서 TCP, UDP 정보를 기반으로 부하를 분산. 부하 분산뿐만 아니라 TCP 계층에서의 최적화와 보안 기능도 함께 제공 가능. TCP 레벨의 간단한 DoS(Denial of Service) 공격을 방어하거나 서버 부하를 줄이기 위해 TCP 세션 재사용과 같이 보안과 성능을 높여주는 기능도 함께 제공

 

  • ADC는 애플리케이션 프로토콜을 이해하고 애플리케이션 내용에 대한 분산, 리다이렉션, 최적화를 제공해 L4 스위치보다 더 다양한 기능을 사용
  • ADC는 성능 최적화를 위해 서버에서 수행하는 작업 중 부하가 많이 걸리는 작업을 별도로 수행 ex) 캐싱
  • ADC는 하드웨어 가속이나 소프트웨어 최적화를 통해 이런 부하가 걸리는 작업을 최적화하는 기능

 

6.3 방화벽

  • 네트워크 중간에 위치해 해당 장비를 통과하는 트래픽을 사전에 주어진 정책 조건에 맞추어 허용(Permit)하거나 차단(Deny)하는 장비
  • 네트워크에서 보안을 제공하는 장비를 넓은 의미에서 모두 방화벽의 일종으로 불러왔지만 일반적으로 네트워크 3, 4계층에서 동작하고 세션을 인지, 관리하는 SPI(Stateful Packet Inspection) 엔진을 기반으로 동작하는 장비
  • NAT(Network Address Translation) 동작 방식과 유사하게 세션 정보를 장비 내부에 저장. 패킷이 외부로 나갈 때 세션 정보를 저장하고 패킷이 들어오거나 나갈 때 저장했던 세션 정보를 먼저 참조해 들어오는 패킷이 외부에서 처음 시작된 것인지, 내부 사용자가 외부로 요청한 응답인지 확인.

 

이 세션 테이블을 이용해 패킷의 인과 관계를 파악할 수 있어 정책을 간단히 유지 가능

방화벽은 메모리에 남는 상태와 세션 정보를 이용해 패킷을 상세히 로깅하고 관찰

 

 

 

6.4 4계층 장비를 통과할 때의 유의점 (세션 관리)

  • 세션 테이블 유지, 세션 정보 동기화
  • 비대칭 경로 문제

세션 테이블 유지, 세션 정보 동기화

1. 3방향 핸드셰이크를 통해 정상적으로 세션 설정

① 방화벽에서 세션 설정 과정을 확인하고 세션 테이블 기록

2. ②, ③ 세션 테이블을 참조해 방화벽에서 패킷 통과

3. 일정 시간 동안 통신 없음

4. ④ 세션 타임으로 세션 테이블 만료

5. 세션 만료 후 애플리케이션 통신 시작

6. ⑤ 세션이 만료되어 방화벽에서 패킷 드롭

 

=>  세션 장비와 애플리케이션(또는 시스템)에서 각각 적용할 수 있는 설정 존재

  •  세션 만료 시간 증가
  • 세션 시간을 둔 채로 중간 패킷을 수용할 수 있도록 방화벽 설정(세션 장비 중 방화벽에 해당)
  • 애플리케이션에서 주기적인 패킷 발생 기능 추가

 

 

비대칭 경로 문제

인바운드 패킷과 아웃바운드 패킷이 같은 장비를 통과하는 것을 대칭 경로(Symmetric Path)라고 하고 다른 장비를 통과하는 것을 비대칭 경로(Asymmetric Path)라고 함

 

비대칭 경로에서 방화벽을 처리할 수 있는 방법

  • 세션 테이블을 동기화
  •  세션 장비에서 다양한 방법으로 이를 보정