Doctor Pepper

[세션 계층] 4계층 장비 본문

네트워크/응용 계층

[세션 계층] 4계층 장비

Doctor Pepper 2024. 11. 12. 19:03
728x90

 

 

 기존 네트워크 장비는 2계층 스위치3계층 라우터처럼 전송 계층 이하에서 작동하는 장비를 지칭했다. 하지만 IP 주소의 부족으로 NAT 기술이 도입되고, 보안을 위한 방화벽프록시 서버 같은 4계층 이상의 장비들이 등장하면서 네트워크 장비의 역할이 확대되었다. 이러한 장비들은 4계층의 포트 번호, 시퀀스 번호, ACK 번호를 이해할 필요가 있으며, 기존 2, 3계층 장비가 고려하지 않았던 통신 방향성이나 순서와 같은 통신 관리가 요구된다. 이러한 정보를 효과적으로 관리하기 위해 세션 테이블(Session Table)을 사용하며, 4계층 이상에서 작동하는 네트워크 장비는 세션 테이블을 기반으로 통신 흐름을 제어하고 관리한다.

 

1. 4계층 장비

 4계층 장비는 TCP와 같은 4계층 프로토콜의 헤더 정보를 이해하고 이를 바탕으로 동작한다. 4계층 프로토콜에 대한 깊은 이해 없이 2, 3계층 장비처럼 설계하고 운영하면 여러 가지 문제가 발생할 수 있다. 기존의 네트워크 장비4계층 장비의 차이를 이해하는 것이 중요하며, 그 중에서도 세션 테이블과 그 안에 저장되는 세션 정보가 가장 중요한 요소이다. 그래서 4계층 이상에서 동작하는 장비세션 장비라고도 불린다. 예를 들어, 로드 밸런서방화벽이 여기에 해당한다.

 

세션 장비는 다양한 특징을 고려해야 합니다. 그 중 가장 중요한 요소는 다음과 같다:

  1. 세션 테이블: 세션 장비는 세션 테이블을 기반으로 운영되며, 세션 정보를 저장하고 확인하는 작업을 철저히 이해해야 한다. 특히 세션 정보의 라이프타임을 관리하는 것이 중요한데, 이는 세션 테이블에서 정보를 얼마나 오래 유지할지를 결정한다.
  2. 대칭(Symmetric) 경로 요구: InboundOutbound 경로가 일치해야 한다. 즉, 세션 장비는 네트워크 요청의 양방향 경로가 동일해야 하는 특성을 고려해야 한다.
  3. 정보 변경 (로드 밸런서의 경우): IP 주소가 변경될 수 있으며, 확장된 L7 로드 밸런서(ADC)는 애플리케이션 프로토콜 정보도 변경한다.

 이러한 요소들은 서비스에 중요한 영향을 미친다. 네트워크 통신 중간 위치에서 세션 기반으로 동작하는 장비방화벽, NAT, 로드 밸런서와 같은 장비들이 있다면, 네트워크 인프라뿐만 아니라 시스템 설계애플리케이션 개발에서도 세션 장비에 대한 고려가 필수적이다.

 

2. 로드 밸런서

 서버나 장비의 부하를 분산하는 장비를 로드 밸런서라고 한다. 로드 밸런서는 트래픽을 분배하는 기능을 수행하며, 4계층 이상에서 동작하면서 IP 주소, 4계층 정보, 애플리케이션 정보를 확인하고 수정할 수 있다. 가장 일반적으로 사용되는 분야는 웹 서버의 부하 분산이다. 예를 들어, 사용자 1,000명의 요청을 동시에 처리할 수 있는 서버보다 5,000명의 요청을 처리할 수 있는 서버는 5배 보다 더 비싸지만, 내부 부품을 이중화하거나 용량이 더 큰 부품을 사용하면 가격이 급격히 증가한다. 이 때문에 작은 장비 여러 대를 묶어 사용하는 방식이 선호된다. 이를 스케일 아웃이라고 부른다.

 

 스케일 아웃 방식에서는 여러 작은 시스템을 운영하더라도 사용자는 서버 배치와 관계없이 하나의 서비스로 인식해야 한다. 로드 밸런서는 서비스에 사용되는 대표 IP 주소서비스 IP로 설정하고, 시스템이 확장되면 로드 밸런서는 각 시스템의 실제 IP로 요청을 전달한다. 이러한 로드 밸런서는 , 애플리케이션뿐만 아니라 방화벽 로드 밸런싱(FWLB), VPN 로드 밸런싱(VPNLB) 등 다양한 서비스에 활용될 수 있다.

 

로드 밸런서는 동작하는 계층에 따라 4계층7계층으로 구분된다.

L4 로드 밸런싱 일반적으로 로드 밸런서가 동작하는 방식임
TCP, UDP 정보(특히 포트 넘버)를 기반으로 로드 밸런싱을 수행함
최근 로드 밸런서는 L4, L7의 기능을 모두 지원하므로 L4 로드 밸런싱만 제공하는 정용장비는 찾기 힘들지만 장비에서 L7 지원 여부와 상관없이 4계층에 대한 정보로만 분산 처리하는 경우를 L4 로드 밸런싱이라고 함.
L7 로드 밸런싱 HTTP, FTP, SMTP와 같은 애플리케이션 프로토콜 정보를 기반으로 로드 밸런싱을 수행함
HTTP 헤더 정보나 URI와 같은 정보를 기반으로 프로토콜을 이해한 후 부하를 분산할 수 있음
일반적으로 이런 장비를 ADC(Application Delivery Controller)라고 부르며 프록시(Proxy) 역할을 수행함
스퀴드(Squid)나 Nginx에서 수행하는 리버스 프록시(Reverse Proxy)와 유사한 기능을 갖고 있음

 

 

 - L4 스위치

L4 스위치4계층에서 동작하며 로드 밸런서 기능이 있는 스위치입니다. 내부적으로는 4계층 로드 밸런서로 작동하지만, 외형은 여러 포트를 가진 스위치 형태로 되어 있다. 서버형 또는 소프트웨어형 로드 밸런서도 있지만, 다양한 네트워크 구성이 가능한 스위치형 로드 밸런서가 가장 널리 사용되고 있다. L4 스위치부하 분산, 성능 최적화, 리다이렉션 기능을 제공한다.

 

 L4 스위치가 동작하려면 가상 서버(Virtual Server), 가상 IP(Virtual IP), 리얼 서버(Real Server)리얼 IP(Real IP) 설정이 필요하다. 가상 서버는 사용자가 보는 서비스이며, 가상 IP는 사용자 접근을 위한 서비스 IP 주소이다. 반면, 리얼 서버는 실제 서비스 수행 서버이고, 리얼 IP는 해당 서버의 실제 IP이다. L4 스위치는 가상 IP를 리얼 IP로 변환해 요청을 전달하는 역할을 수행한다.

 

사용자는 L4 스위치의 가상 IP로 서비스를 요청하며, L4 스위치는 이 가상 IP를 리얼 IP로 변경해 서버로 전달한다. 이 과정에서 부하를 어떻게 분산할지 결정할 수 있다.

 

- ADC(Application Delivery Controller)

ADC애플리케이션 계층에서 동작하는 로드 밸런서로, 4계층에서 작동하는 L4 스위치와 달리 애플리케이션 프로토콜의 헤더와 내용을 이해하며 작동한다. 이를 통해 다양한 부하 분산, 정보 수정, 정보 필터링 기능을 수행할 수 있다. ADC는 이러한 세부 기능을 위해 프록시 형태로 작동하며, 대부분의 ADC는 L4 스위치의 기능을 포함하고 있다. ADC4계층부터 애플리케이션 계층까지 로드 밸런싱 기능을 제공하고, 장애극복(Failover), 리다이렉션(Redirection) 기능도 수행한다.

 

또한 애플리케이션 프로토콜 최적화를 위해 다양한 기능을 제공한다. 캐싱(Caching), 압축(Compression), 콘텐츠 변환 및 재작성, 인코딩 변환 등이 가능하며, 애플리케이션 프로토콜 최적화 기능도 제공한다.

 

추가적으로 보안 강화를 위해 WAF(Web Application Firewall) 기능이나 HTML, XML 검증 및 변환과 같은 기능을 플러그인 형태로 추가할 수 있다.

 

- L4 스위치 vs ADC

 L4 스위치4계층에서 동작하며 TCPUDP 정보를 기반으로 부하를 분산한다. 이 장비는 부하 분산 외에도 TCP 계층에서의 최적화보안 기능을 함께 제공한다. 예를 들어, 간단한 DoS (Denial of Service) 공격 방어, TCP 세션 재사용 등을 통해 보안과 성능을 향상시킬 수 있다.

 

ADC애플리케이션 프로토콜을 이해하고 애플리케이션 내용에 따른 부하 분산, 리다이렉션, 최적화를 제공하여 L4 스위치보다 더 다양한 기능을 수행할 수 있다.

 

 또한, ADC는 성능 최적화를 위해 서버에서 부하가 큰 작업을 대신 수행한다. 그 중 하나가 이미지나 정적 콘텐츠 캐싱(Caching) 기능으로, 이를 통해 웹 서버의 부하를 줄일 수 있다. ADC하드웨어 가속소프트웨어 최적화를 통해 이러한 고부하 작업을 효율적으로 처리하는 기능을 제공한다.

 

 최근 SSL 프로토콜 사용이 증가하면서, 웹 서버에 SSL 암복호화 부하가 늘고 있다. 과거에는 일부 페이지에서만 SSL을 사용했으나, 보안 강화를 위해 이제 전체 웹사이트에서 SSL을 적용하는 추세이다. ADCSSL 엔드포인트 역할을 수행하여, 클라이언트와 ADC 간 통신을 SSL로 처리하고, ADC와 웹 서버 간은 일반 HTTP로 통신한다. 이를 통해 여러 웹 서버의 SSL 통신을 하나의 ADC에서 처리할 수 있으며, 대부분의 ADC는 전용 SSL 가속 카드를 내장하여 이 기능을 지원한다.

 

 

 스케일 업 방식은 확장을 미리 고려하여 시스템을 구축하는 방식으로, 초기 비용이 크게 증가하는 단점이 있다. 서비스에 적합한 시스템을 구매했더라도 확장이 필요해지면 기존 시스템을 버리고 더 큰 시스템을 새로 구매해야 하는 상황이 발생할 수 있으며, 이로 인해 기존 시스템 비용이 낭비되는 문제가 발생한다.

 

또한, 스케일 업 방식은 필요한 용량을 추가할수록 비용이 기하급수적으로 증가하는 경향이 있다. 예를 들어, 저가형 CPU보다 성능이 2배 우수한 CPU를 추가하려면 단순히 저가형 CPU 2개의 비용이 아니라 4배에서 많게는 10배 이상의 비용이 필요할 수 있다.

 

이러한 문제들로 인해 가능하다면 스케일 아웃 방식을 선택하여 시스템 용량을 확장하는 것이 더 효율적이다.

 

 스케일 업하나의 시스템 용량을 확장하는 방식인 반면, 스케일 아웃은 동일한 용량의 시스템을 여러 대 배치하여 확장하는 방법이다. 예를 들어, 사용자 1,000명의 요청을 처리하는 시스템이 한 대 있다면, 5,000명의 요청을 처리하기 위해 5대의 시스템을 병렬로 운영하는 방식이 스케일 아웃이다.

 

스케일 아웃을 구현하려면 새로운 시스템 설계, 분산을 위한 별도의 프로세스 운영, 그리고 로드 밸런서와 같은 부하 분산 장비가 필요하다.

 

또한, 확장의 반대 상황으로, 운영 중인 서비스의 사용자가 줄어들어 시스템 축소가 필요해질 때도 두 가지 방법을 선택할 수 있다.

 

 스케일 다운은 기존 시스템보다 작은 용량의 시스템으로 서비스를 옮기는 방법이며, 이는 스케일 업의 반대 개념이다. 반면, 스케일 아웃의 반대 개념은 스케일 인으로, 여러 개의 서비스를 합쳐 하나의 시스템에서 운영하는 방법이다. 예를 들어, 기존에 웹 프론트엔드 서버, API 서버, 백엔드 API 서버, 데이터베이스로 운영되던 4개의 시스템을 프론트엔드API 서버를 통합하고, 백엔드 API 서버데이터베이스를 통합하여 2대의 시스템으로 축소할 수 있다. 이를 스케일 인이라고 한다.

 

시스템 확장 방법스케일 업스케일 아웃의 장단점은 다음과 같다.

  스케일 업(Scale-Up) 스케일 다운(Scale-Down)
설명 하드웨어 성능 자체를 업그레이드하거나 더 높은 성능의 시스템으로 마이그레이션하는 방법 여러 대의 서버로 로드를 분산하는 방법
서비스 자체를 구분해 나누거나 같은 서비스를 분산해 처리하는 방법
장점 부품을 쉽게 추가할 수 있으면 시스템 설계 변경 없이 서비스 사용량을 쉽게 늘릴 수 있음(주로 기존 대형 유닉스 시스템에서 사용함) 스케일 업 방식보다 더 적은 비용으로 시스템 확장이 가능함
여러 대의 시스템에 로드를 적절히 분산해 하나의 시스템에 장애가 발생하더라도 서비스에 미치는 영향이 없도록 결함허용(Fault Tolerance)을 구현할 수 있음
단점 부품 추가가 어려움(x86), 시스템이 커질수록 비용이 기하급수적으로 증가함 스케일 아웃을 위해 별도의 복잡한 아키텍처를 이해하고 운영해야만 함
프로세스나 네트워크 장비가 추가로 필요할 수 있음

 

3. 방화벽

 방화벽은 네트워크 중간에 위치하여 트래픽을 사전에 정의된 정책에 따라 허용(Permit)하거나 차단(Deny)하는 장비이다. 넓은 의미에서 네트워크 보안을 제공하는 모든 장비를 방화벽의 일종으로 볼 수 있지만, 일반적으로 네트워크 3, 4계층에서 동작하고 세션을 인지하고 관리하는 SPI(Stateful Packet Inspection) 엔진을 사용하는 장비를 방화벽이라 부른다.

 

 방화벽은 NAT(Network Address Translation) 방식처럼 세션 정보를 내부에 저장한다. 외부로 나가는 패킷에 대해 세션 정보를 저장하고, 패킷이 들어오거나 나갈 때 저장된 세션 정보를 참조하여 외부에서 시작된 것인지, 내부 사용자가 외부로 요청한 응답인지를 판단한다.

 

 이렇게 세션 테이블을 이용하여 패킷의 인과 관계를 파악할 수 있어 정책 관리가 간단해진다. 반면, 세션 테이블이 없어 세션의 방향성을 파악할 수 없는 경우, 정책 관리를 위해 복잡한 설정이 필요하다. 상태 정보가 없는 경우에는 각 방향에 대해 최소 두 개의 양방향 정책을 설정해야 하며, 인터넷과 같은 불특정 다수와의 통신에서는 정책의 복잡도가 더욱 증가한다.

 

 특히, 인터넷 방화벽의 기본 정책인터넷으로 나가는 모든 패킷을 허용하고 내부로 들어오는 모든 패킷을 차단하는 것이다. 상태와 세션 정보가 없으면 패킷이 내부에서 시작된 것인지, 외부에서 시작된 것인지를 구별하기 어려워 정책 관리가 매우 복잡해진다.

 

 또한, 방화벽은 메모리에 저장된 상태와 세션 정보를 통해 패킷을 상세하게 로깅하고 관찰할 수 있다.

 

 

 L4 스위치ADC 같은 부하 분산 장비네트워크 인프라의 성능확장성을 보장하는 중요한 요소이다. 특히, 스케일 아웃 방식의 유연성비용 효율성을 통해 시스템 확장축소에 효과적으로 대응할 수 있다. 이러한 네트워크 장비들은 오늘날의 복잡한 서비스 요구사항을 충족하기 위해 진화하고 있으며, 보안, 성능 최적화, 부하 분산 등 다양한 기능을 통해 안정적이고 효율적인 네트워크 운영을 가능하게 한다. 앞으로도 네트워크 장비는 더욱 발전하여 변화하는 기술 환경 속에서 핵심적인 역할을 수행할 것이다.

728x90