Computer Science/Network

네트워크 인프라 5. 전송 계층 장비

2mukee 2023. 3. 1. 17:15
320x100
320x100

전송 계층 장비의 탄생

: IP의 부족으로 인해 NAT와 방화벽, 프록시와 같은 장비들이 등장

: 포트번호, 시퀀스 번호, ACK 번호에 대한 개념도 등장

: 3계층에서 고려하지 않았던 통신의 방향성이나 순서와 같은 통신 전반에 대한 이해가 필요

: 이러한 정보를 세션 테이블에 저장하여 관리

: TCP와 같은 4계층 헤더에 있는 정보를 이해가 필요하며, 세션 테이블과 세션 정보에 대한 개념을 이해해야함

 

- 세션 장비

: 로드밸런서, 방화벽

 

 

 

 

세션 테이블

: 세션 정보를 저장하는 테이블

: 세션 정보에는 통신의 목적지, 라이프타임, 프로토콜 등의 정보가 저장됨

 

 

 

 

로드 밸런서

: 서버 및 장비의 부하를 분산하기 위해 사용하며 트래픽을 분배하는 역할 수행

: 전송 계층에서 전송 프로토콜 정보, 애플리케이션 정보를 확인하고 수정

: 웹 애플리케이션 및 FWLB (FireWall Load Balancing, 방화벽 부하 분산), VPNLB (VPN Load Balancing, VPN 부하분산) 등에 사용

 

- 구조

: 로드 밸런서가 서비스에 사용되는 대표 IP 주소를 서비스 IP로 갖고 로드 밸런서가 하위의 시스템의 실제 IP로 요청이 가도록 패킷을 변경하여 보냄

 

- L4 로드 밸런싱

: 일반적인 로드 밸런서가 동작하는 방식. TCP, UDP 정보 및 포트번호를 기반으로 부하를 분산

: 최근 로드 밸런서는 L4와 L7의 기능을 모두 지원하므로, 4계층 정보로만 분산 처리하는 경우를 일컬음

 

- L7 로드 밸런싱

: HTTP, FTP, SMTP와 같은 애플리케이션 프로토콜 정보를 기반으로 로드 밸런싱을 수행

: HTTP 헤더 정보나 URI와 같은 정보를 기반으로 프로토콜을 이해한 후 부하를 분산

: ADC (Application Delivery Controller)라고 부르며 프록시 역할을 수행

: Squid, Nginx에서 수행하는 리버스 프록시와 유사한 기능

 

 

 

 

 

로드 밸런서 관련 개념

- 스케일 업

: 기존 시스템에 CPU, 메모리, 디스크와 같은 내부 컴포넌트의 용량을 업그레이드

 

- 스케줄 아웃

: 같은 사양의 시스템을 여러 대 배치하여 병렬로 운영하는 방법

: 새로 시스템을 설계하거나 분산을 위한 별도의 프로세스 운영

: 부하를 분산해주는 별도의 외부 시스템 필요

 

- 스케일 다운

: 시스템의 사양을 낮춤

 

- 스케일 인

: 여러 개 의 서비스를 하나의 시스템에서 운영 

 

 

 

 

 

 

L4 스위치 (스위치형 로드 밸런서)

: 전송 계층에서 동작하면서 로드 밸런서 기능을 가진 스위치

: 내부 동작은 L4 로드 밸런서 이지만, 외적으로는 스위치와 같이 여러 포트를 가짐

: 서버형 로드 밸런서나 소프트웨어형 로드 밸런서 보다 더 대중화된 로드 밸런서

 

- 기능

: 부하 분산, 성능 최적화, 리다이렉션

: TCP 세션 재사용

: TCP 레벨의 간단한 DoS 공격 방어

 

- 구조

: 가상 서버 (사용자가 사용할 실제 서비스)

: 가상 IP (사용자가 접근해야하는 서비스의 IP 주소)

: 리얼 서버 (실제 서비스를 수행하는 서버)

: 리얼 IP (실제 서버의 IP 주소)

: L4 스위치 (가상 IP를 리얼 IP로 변경)

 

 

 

 

 

ADC (Application Delivery Controller)

: 애플리케이션 계층에서 동작하는 로드 밸런서

: 애플리케이션 프로토콜의 헤더와 내용을 기반으로 동작

: 다양한 부하 분산, 정보 수정 및 필터링 기능을 제공

: 상세한 동작을 위해 프록시로 동작하며 대부분의 ADC는 L4 스위치의 기능을 포함

 

- 기능

: Fail Over (장애 극복)

: Redirection (전송 방향 전환)

: Caching

: Compression

: 콘텐츠 변환 및 재작성

: 인코딩 변환

: 애플리케이션 프로토콜 최적화

: WAF (Web Application Firewall)

: HTML 및 XML 검증 및 변환

: 최적화 (정적 콘텐츠 캐싱, 하드웨어 가속, 소프트웨어 최적화)

 

- SSL 연계

: SSL의 엔드 포인트로 동작하여 클라이언트에서 ADC 까지의 구간을 암호화

: ADC와 웹 서버 사이를 일반 HTTP로 통신

: 여러 대의 웹 서버에 대한 SSL 통신을 한 대의 ADC에서 수용 (SSL 가속 카드 필요)

 

 

 

 

 

방화벽

: 네트워크 중간에 위치해 장비를 통과하는 트래픽을 사전에 주어진 정책 조건에 맞추어 허용하거나 차단하는 장비

: 네트워크 3,4 계층에서 동작하고 세션을 인지, 관리하는 SPI (Stateful Packet Inspection) 엔진을 기반으로 동작하는 장비

 

- 동작

: NAT와 유사하게 패킷이 들어오거나 나갈때 세션 정보를 저장

: 저장된 세션 정보를  참조하여 외부에서 처음 시작된 패킷인지, 내부 사용자가 외부로 요청한 패킷인지 판단

: 상태 및 세션 정보를 저장하여 패킷을 상세히 로깅 및 모니터링을 수행

 

 

 

 

 

 

세션 관리

: 세션 테이블 정보를 이용해 패킷을 변경하거나 애플리케이션 성능을 최적화 하고 보안을 강화하기 위해 패킷을 포워드 하거나 드롭 할 수 있는데, 애플리케이션과 세션 장비 간 세션 정보를 동일하게 유지해야함

: 애플리케이션 설계 시 세션 장비를 고려한 기능 추가 필요

: 특히, 애플리케이션의 세션 시간과 서비스 방향성을 고려하여 비대칭 경로 피하도록 설계 해야함

 

- 세션 유지 시간 설정

: 애플리케이션의 세션 유지 시간 보다 방화벽 세션 유지시간이 길어야함

 

- 세션 장비에서 세션 타임아웃 시 양 단말에 세션 종료 통보

: 세션 장비에서 출발지와 목적지를 양 단말로 설정하고 TCP의 RST 플래그를 1로 세팅하여 장비에 전송

: 양단말에서는 해당 세션이 비정상적으로 종료된 것으로 판단해 해당 세션을 끊어냄 

 

- 애플리케이션에서 주기적인 패킷 발생 기능 추가

: 중간에 통신이 없더라도 애플리케이션에서 일정 시간 마다 양 단말끼리 세션 상태 정보를 체크하는 더미 패킷을 보내 방화벽에서 세션 타임아웃이 발생하지 않고 유지할 수 있음

: 최근 대부분의 플랫폼에서 내장된 기능

 

 

 

 

 

비대칭 경로 문제

: 인바운드 패킷과 아웃바운드 패킷이 다른 장비를 통과하는 것을 비대칭 경로라고 함

: 네트워크 경로 이중화를 위해 세션 장비를 두 대 이상 설치한 경우 패킷이 들어올 때와 나갈때 경로가 일치하지 않아 서비스에 문제가 발생할 수 있음

: 비대칭 경로가 생기지 않도록 네트워크 경로를 디자인 해야함

 

- 방화벽 간 세션 테이블 동기화

: 두 경로 상의 두 장비가 하나의 장비 처럼 동작하도록 세션 테이블을 주기적으로 동기화

: 패킷 경로를 변경하지 않고 동작할 수 있지만, 동기화 시간 보다 패킷 응답 시간이 빠르면 정상적으로 동작하지 않게됨

: 응답 시간이 비교적 긴 인터넷 게이트 웨이로 방화벽이 사용될 때 유용한 방법

 

- 세션 장비에서 보정

: 인바운드 패킷이  통과하지 않았는데 아웃바운드 패킷이 장비로 들어온 경우, 인바운드 패킷이 통과한 다른 세션 장비 쪽으로 패킷을 보내 경로를 보정

: 강제로 대칭 경로를 만드는 방법으로, 방화벽간 통신용 링크가 필요하고 MAC 주소를 변경하는 MAC ReWriting이나 MAC 주소를 한 번 더 encapsulation 하는 터널링 기법으로 경로를 보정

 

 

 

 

 

하나의 통신에 두 개 이상의 세션이 사용되는 상황

: FTP와 같이 데이터 프로토콜과 제어 프로토콜이 다른 경우

 

- FTP Active 모드

: 컨트롤 프로토콜과 데이터 프로토콜의 방향이 반대인 경우 (FTP 서버에서 요청을 받고 데이터 세션을 연결)

: 세션 장비가 있는 경우 동작 방식에 맞춰 반대 방향에 대해서도 개방 필요

: 특히 NAT 환경인 경우 ALG (Application Layer Gateway) 기능을 통해 세션 장비와 NAT를 자동으로 동작 시키도록 해야함

 

 

- FTP Passive 모드

: 컨트롤 프로토콜과 데이터 프로토콜의 방향이 같은 경우 (클라이언트에서 데이터 세션을 연결)

: 특별한 작업이 필요하지 않음 

 

 

 

 

 

 

Reference

 

IT 엔지니어를 위한 네트워크 입문 | 고재성 - 교보문고

IT 엔지니어를 위한 네트워크 입문 | 클라우드/데브옵스 시대에 알아야 할 인프라 지식 서버실이 있고, 서버 관리자가 따로 있었던 시대를 지나 클라우드 서비스가 보편화되었다. 클라우드 서비

product.kyobobook.co.kr

 

300x250
728x90