L4 스위치

L4 스위치란 OSI 7계층인 Transport Layer의 장치이며 들어온 데이터를 로드밸런싱 해주는 장비이다.
* 여기서 로드밸런싱이란?
: 로드밸런싱은 우리말로 부하 분산을 의미하는데, 부하가 균등하게 되도록 분산하여 할당하는 것이다.
[주요 역할]
- 외부에서 들어오는 모든 요청은 서버가 아닌 L4 스위치를 거쳐 서버에 적절히 분배한다.
- 부하 분산뿐만 아니라 TCP, UDP, HTTP와 같은 프로토콜 헤더를 분석하여 부하분산을 실시한다.
- Source IP / Destination IP를 NAT (Network Address Translation)하여 보낼 수 있다.
방화벽

방화벽(FireWall)은 미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템이다. 방화벽은 일반적으로 신뢰할 수 있는 내부 네트워크, 신뢰할 수 없는 외부 네트워크 간의 장벽을 구성한다.
서로 다른 네트워크를 지나는 데이터를 허용하거나 거부하거나 검열 및 수정하는 하드웨어나 소프트웨어 장치이다.
[주요 기능]
- 접근 제어 : 외부에서 내부 네트워크에 접속하는 패킷 필터링 이용 통제
- 사용자 인증 : 트래픽에 대한 사용자의 신분을 증명하는 기술
- 감사 및 로그 : 트래픽에 대한 접속 정보 기록, 네트워크 사용에 대한 통계 제공
- Proxy 기능 : 클라이언트 요청을 받아 보안 정책에 따라 서비스를 수행하는 서버
- 주소 변환(NAT) : 발신지 호스트의 IP 주소나 목적지 호스트의 IP주소를 전송 단계에서 변경하여 전달하는 기능
부하분산

컴퓨터 네트워크 기술으의 일중으로 둘 혹은 셋 이상의 중앙처리장치 혹은 저장 장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다. 분산 처리는 부하 분산 Network Switch 혹은 소프트웨어가 담당한다. 이런 서버 부하 분산을 담당하는 Network Switch를 L4/L7 Switch(Layer 4) 라고 부르며, Cloud 에서는 Load Balancer 라고 부른다.
- Network Address Translation(NAT) : Private IP를 Public IP로 바꿈
- Tunneling : 데이터를 캡슐화하여 연결된 노드만 캡슐을 해제할 수 있게 만듦
- Dynamic Source Routing protocol(DSR) : 요청에 대한 응답을 할 때 로드밸런서가 아닌 클라이언트의 IP로 응답
Health Check
로드밸런서의 기본 기능 중 하나로 Health Check가 있다.기본적으로 보통의 로드밸러서는 서버에 대한 주기적인 Health Check를 통해 서버들의 장애 여부를 판단할 수 있다.이로 인해 로드밸런서가 있을 때 서버 몇 대에 이상이 생기더라도 다른 정상 동작중인 서버로 트래픽을 보내주는 Fail-over가 가능하며, TCP/UDP 분석이 가능하기 때문에 Firewall의 역할도 수행할 수 있다.
[ ICMP Health Check ]
ICMP를 이용하여 서버의 상태를 검사하는 3계층 헬스 체크 기능이다.
ICMP의 특성을 이용하여 서버의 IP Address 활성화를 확인하여 점검한다. 이 기능은 서버의 IP Address에 ICMP를 이용하여
ICMP Echo Request 메시지를 전송한 후, ICMP Echo Reply 메시지 수신 여부에 따라 서비스 서버의 서비스 기능 유무를 판단한다.
[ TCP Health Check ]
TCP 헬스체크는 TCP에서 제공되는 서비스 포트를 이용하여 서버의 상태를 검사하는 4계층 헬스 체크 기능이다.서비스를 위한 포트의 상태를 TCP의 초기화에서 사용되는 3WAY Handshake를 이용하여 서버의 서비스 포트로 TCP_SYN을 전송하고 그에 따른 SYN_ACK로 응답 유무에 따라 서비스 서버의 서비스 가능 유무를 판단한다. 예를 들어, HTTP 웹 서버의 경우 80 포트를 사용하므로 TCP 80 포트에 대한 체크를 통해 서버가 살아있는 상태인지 확인한다.
[ HTTP 상태코드 Health Check ]
연결 자원이 로드밸런서로 응답할 것으로 예상되는 상태 코드를 설정할 수 있다.
사용자가 설정한 HTTP 상태 코드대로 연결 자원이 응답한 경우 헬스 체크에 성공한 것으로 처리된다.
HTTP 상태 코드는 아래의 예시와 같이 입력할 수 있다.
- 단일 상태 코드 입력 예시 : 200, 201
- 다수의 상태 코드 입력 예시 : 201, 202, 401, 402
- 범위 지정 예시 : 200-500
부하 분산 알고리즘
서버에게 부하를 고르게 분산하는 방법은 다양하다.
서버의 능력을 고려하여 분배해야하기 때문에 능력 및 상황에 맞춰 아래의 알고리즘을 적용한다.
1) 라운드 로빈 방식
- 로드 밸런서가 다수의 서버에게 순서대로 요청을 할당한다.
- 가장 단순한 방법으로 서버군에 차례로 요청을 할당하여 분산한다.
- 클라이언트의 요청을 순서대로 분배하기 때문에 여러 대의 서버가 동일한 스펙을 갖고 있고, 서버와의 연결(세션)이 오래 지속되지 않는 경우에 활용하기 적합하다.
2) 최소 접속 방식
- 로드밸런서가 서버에게 요청을 전달한 뒤, 사용자와 서버가 정상적인 연결을 맺으면 사용자와 서버는 Connection을 생성한다.
- Connection이 가장 적은 서버, 즉 부하가 가장 덜한 서버에게 요청을 전달한다.
- 로드밸런서 또한 중간자로서 Connection정보를 갖는다.
3) IP 해시 방식
- 클라이언트의 IP 주소를 특정 서버로 매핑하여 요청을 처리하는 방식
- 사용자의 IP를 해싱해(Hashing, 임의의 길이를 지닌 데이터를 고정된 길이의 데이터로 매핑하는 것, 또는 그러한 함수) 로드를 분배하기 때문에 사용자가 항상 동일한 서버로 연결되는 것을 보장함.
로드밸런서 구성 방식 (ONE ARM, INLINE)
[ One - ARM 구조 ]
LB(로드밸런서)가 스위치 옆에 있는 형태를 말한다.
한 쪽 팡르 벌린 형태와 유사하여 원 암이라 불린다. 원암 구조에서는 모든 트래픽이 LB를 경유하지 않아도 된다는 장점이 있다.
단점은 인라인 구조보다 설정이 더 까다롭다는 것이다. 원암은 부하분산이 필요한 트래픽만 로드 밸런서를 경유하고 그렇지 않는 트래픽은 로드밸런서를 경유하지 않고 통신할 수 있다.
[ IN LINE 구조 ]
LB(로드밸런서)가 스위치에서 서버까지 일직선상 경로에 있는 형태를 말한다.
네트워크 구성이 직관적이라는 장점이 있지만, LB를 거칠 필요가 없는 모든 트래픽들이 로드밸런서를
경유하기 때문에 LB에 부하가 많이 갈 수 있다.
로드밸런서 동작 모드
[ Transparent 모드 ]
기존의 네트워크 대역을 그대로 사용하는 투명한 구조를 사용한다 하여 트랜스패런트라 붙여졌다.
인라인, 원암 모두 사용가능하지만 원암 구성에서는 LB에서 SNAT을 필요로 한다.
L4로 전달된 목적지 IP주소를 리얼서버 IP 주소로 변조하고 MAC 주소를 변조해서 목적지를 찾아가는 방식이다.
요청시 LB로 전달된 도착지 IP와 MAC 주소를 리얼 서버의 IP와 MAC 주소로 변조하여 동작하며
응답시에는 목적지 MAC 주소는 이미 게이트웨이 주소를 가지고 있어 따로 변조하지 않는다.
*Source NAT : 패킷의 소스주소를 변경하는 것을 말하며 외부로 나가는 패킷의 Source IP를 G/W의 Public IP로 바꾼다. DNAT과 반대되는 개념이며, DNAT의 대표적인 것이 LoadBalancer 다.
[ Routed 모드 ]
로드 밸런서 기준으로 사용자 방향과 서버 방향이 서로 다른 네트워크로 분리된 구성이다.
LB가 라우팅 역할을 수행하며, 보안 강화 목적으로 네트워크를 사설로 분리하여 구축할 때 사용된다.
작동 방식은 트랜스 패런트 모드와 동일하지만 출발지의 MAC주소도 변경되는것이 특징입니다.
[ Direct Server Return 모드 ]
로드 밸런서를 통해 서버로 요청이 들어온 후, 로드밸런서를 통하지 않고 서버가 사용자에게 직접 응답하는 것이 특징이다.
DSR모드는 로드 밸런서를 경유하지 않음으로 원암 구조에서만 사용된다.
참고
| https://m.post.naver.com/viewer/postView.nhn?volumeNo=27046347&memberNo=2521903
| https://jesc1249.tistory.com/6
'Network' 카테고리의 다른 글
8) 네트워크 기술 (0) | 2022.09.15 |
---|---|
6) 라우터 (2) | 2022.09.12 |
5) 스위치 (0) | 2022.09.09 |
4) 네트워크 통신 (0) | 2022.09.07 |
3-2) 네트워크 구성요소 (0) | 2022.09.05 |