개발관련 도서/IT엔지니어를 위한 네트워크 입문

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

prden 2022. 3. 21. 10:47

4 계층의 특징인 포트번호, 시퀀스 번호, ACK번호에 대해 이해해야 하고, 2,3 계층 장비에서는 고려하지 않았던 통신의 방향성이나 순서와 같은 통신 전반에 대한 관리가 필요하며 이런 정보를 세션 테이블이라는 공간에 담아 관리한다. 

 

1. 4계층 장비의 특징

4계층4 계층 장비는 TCP와 같은 4 계층 헤더에 있는 정보를 이해하고 이 정보들을 기반으로 동작한다. 그래서 4 계층 이상에서 동작하는 로드 밸런서, 방화벽과 같은 장비를 '세션 장비'라고 부른다.

 

 가. 세션 테이블 : 세션 장비는 세션 테이블을 기반으로 운영된다. 

 나. Symmetric(대칭) 경로 요구 : Inbound와 Outbound 경로가 일치해야 한다. 

 다. 정보변경(로드 밸런서의 경우) : IP 주소가 변경되며 확장된 L7 로드 밸런서(ADC)는 애플리케이션 프로토콜 정보도 변경된다. 

 

2. 로드 밸런서

서버나 장비의 부하를 분산하기 위해 사용하는 장비를 흔히 로드 밸런서라고 부른다. 트래픽을 분배해주는 기능 때문인데 4 계층 이상에서 동작하면서 IP 주소나 4 계층 정보, 애플리케 이선 정보를 확인, 수정하는 기능이 있다. 

 

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

 

나. L7. 로드 밸런싱 : HTTP, FTP, SMTP와 같은 애플리케이션 프로토콜 정보를 기반으로 로드 밸런싱을 수행해야 한다. HTTP 헤더 정보나 URI와 같은 정보를 기반으로 프로토콜을 이해한 후 부하를 분산할 수 있다. 일반적으로 이런 장비를 ADC(Application Delivery Controller)라고 부르며 프락시 역할을 수행한다. 스퀴드나 Nginx에서 수행하는 리버스 프락시와 유사한 기능을 가지고 있다. 

 

-> AWS에서 NLB(Network Load Balancer)가 L4로드 밸런싱 ALB(Application Load Balancer)가 L7로드 밸런싱 전용 컴포넌트다. 

 

다. L4스위치 : L4 스위치는 4 계층에서 동작하면서 로드 밸런서 기능이 있는  스위치이다. 서버형 로드밸런서, 소프트웨어 형태의 로드 밸런서, 스위치형 로드 밸런서가 있다. L4 스위치는 부하분산, 성능 최적화, 리다이렉션 기능을 제공한다. 

L4 스위치가 동작하려면 가상서버, 가상 IP, 리얼 서버, 리얼 IP를 설정해야 한다. 

가상 서버는 사용자가 바라보는 실제 서비스이고 가상 IP는 사용자가 접근해야하는 서비스 IP주소이다. 리얼 서버는 실제 서비스를 수행하는 서버이고 리얼 IP는 실제 서버의 IP이다.  여기서 L4 스위치는 가상 IP를 리얼 IP로 변경해주는 역할을 한다.

 

라. ADC(Application Delivery Controller) :

애플리케이션 계층에서 동작하는 로드 밸런서로, 4계층에서 동작하는 L4 스위치와 달리 애플리케이션 프로토콜의 헤더와 내용을 이해하고 동작하므로 다양한 부하 분산, 정보 수정, 정보 필터링이 가능하다. ADC는 이런 상세한 동작을 위해 프락시로 동작한다. 

 

마. L4스위치 VS ADC 

L4 스위치는 4 계층에서 동작하면서 TCP, UDP 정보를 기반으로 부하를 분산한다. 부하 분산뿐만 아니라 TCP계층에서의 최적화와 보안 기능도 제공할 수 있다.