2024.07.15 - [CS/네트워크] - L2, L3, L4, L7 스위치 feat. 스위치 #1
L2, L3, L4, L7 스위치 feat. 스위치 #1
스위치란?네트워크를 공부하다 보면 Switch라는 말을 자주 보게 된다. 스위치란 말 그대로 스위칭을 해주는 것 우리 말로는 어떠한 전환을 해주는 것이라고 보면 된다. 그리고 이전에 배운 OSI 7 계
ptcman.tistory.com
이전 글에서 스위치란 무엇이고 L2스위치와 L3 스위치(라우터)의 주요기능과 작동 원리에 대해서 살펴보았다. 이번 글에서는 OSI 7 layers 에서 4계층 Transport에서 작동되는 L4 스위치와 7계층 Application단에서 작동하는 L7 스위치에 대해서 알아보겠다.
L4 스위치
L4 스위치는 OSI 7계층 중 전송계층에서 작동하는 스위치다. TCP와 UDP 프로토콜을 작동하고 포트번호를 기반으로 트래픽을 관리 하고 라우팅한다.
L4 스위치 작동원리
패킷검사(Packet Inspection)
L4 스위치는 패킷의 헤더를 검사하여 TCP/UDP 포트번호, 소스 및 목적지 IP 주소를 확인한다.
규칙기반 라우팅 (Rule-Based Routing)
정의된 규칙에 따라 패킷을 특정 서버나 장치로 라우팅한다. 80번 포트면 http 서버로 443이면 https 서버로
L4 스위치 주요기능
로드 밸런싱 (Load Balancing)
서버 로드 밸런싱을 수행하여 네트워크 트래픽을 여러 서버로 분산한다.
세션 유지(Session Persistence)
소스 IP와 소스/목적지 포트번호를 기반으로 사용자가 동일한 서버에 지속적으로 연결될 수 있도록 한다.
트래픽 관리 (Traffic Management)
어떻게 보면 로드 밸런싱도 하나의 트래픽 관리 중 하나이다. 로드밸런싱 말고도 특정 트래픽에 우선 순위를 부여 하여 우선적으로 처리 할 수도 있다. 만일 VoIP 트래픽이 온다라고 하면 통화품질을 보장하기 위해 (포트 5060, 5061)을 우선 처리 할 수 있다.
보안 관리(Secure Management)
포트 기반으로 특정포트를 차단하여 보안을 강화 할 수 있다. SSH (22번) 포트를 막아서 외부 공격을 막을 수도 있고 특정포트에 몰리는 트래픽을 차단하여 DDos 공격을 방버 할 수 있다.
L7 스위치
L7 스위치는 OSI 7계층 중 최상단 Application 단에서 작동하는 스위치다. HTTP, HTTPS, FTP, DNS 등과 같은 Application 프로토콜을 분석하여 스위칭을 한다
작동방식
작동방식을 L4 스위치와 유사하다. 다만 L4 스위치는 패킷의 헤더 IP헤더와 TCP/UDP 헤더를 보면서 스위칭을 했지만 L7 스위치는 패킷의 Payload를 보면서 스위칭을 한다
패킷검사(Packet Inspection)
L7 스위치는 들어오는 패킷의 전체 내용을 검사한다. 요청헤더, 쿠기, URL, 바디 등
규칙 기반 라우팅 (Rule-Based Processing )
특정 조건에 따라 규칙을 설정하고 그에 따라 처리 되게 한다.
주요기능
사실 L4 스위치가 하는 거의 모든 기능을 L7에서도 할 수 있도 그리고 패킷의 페이로드 데이터를 보면서 스위칭을 하기 때문에 더욱 정교한 스위칭을 할 수 있다.
컨텐츠 기반 라우팅(Content-Based Routing)
페이로드를 볼 수 있기 때문에 데이터 즉 컨텐츠를 기반으로 하여 라우팅 할 수 있다. 예를 들어 Nginx에서 Reverse Proxy로 특정 url(예를들어 /api)를 달고 왔을 때 특정 서버로 라우팅 할 수 있다.
로드 밸런싱(Load Balancing)
서버 로드 밸런싱을 수행하여 네트워크 트래픽을 여러 서버로 분산한다.
보안(Security)
애플리케이션 계층에서 트래픽을 검사하여 악의적인 요청을 차단합니다. 예를 들어, SQL 인젝션, XSS(Cross-Site Scripting) 등의 공격을 방어할 수 있다.
가속화 및 캐싱(Acceleration and Caching)
L7 스위치는 하나의 프로세스이기 때문에 메모리를 사용할 수 있고 이것을 캐싱으로 사용 할 수 있다.
로드 밸런싱이란?
나의 서비스가 대박 나서 백서버를 scale out 했다고 보자. 그러면 client가 집중적으로 많이 들어올 때 각각의 서버로 분산을 해줘야 한다. 이러한 기술을 로드 밸런싱이라고 한다. L4 스위치와 L7 스위치 모두 로드밸런싱 기능을 제공한다
로드밸런싱 알고리즘
라운드로빈(Round Robin)
1,2,3, 1,2,3 이렇게 순차적으로 요청을 분해하는 방식이다. 그러나
최소연결
현자 가장 연결수가 적은 서버로 라우팅 한다. 실시간 트래픽 변화에 효과적이다.
가중치 기반
일 잘하는 서버에게 가중치를 부여해서 트래픽을 분배한다.
Ip 해시
클라이언트의 Ip를 해시 해서 특정 서버에 맵핑한다. 세션 지속성을 유지하는데 좋다.
L4 스위치와 L7 스위치에 대해서 알아봤다. 둘 다 하는 기능은 비슷하지만 L4는 패킷의 해더만 보고 스위칭을 하고 L7는 페이로드까지 보고 스위칭을 하기 때문에 L7스위치가 보다 많은 작업을 할 수 있다.
'CS > 네트워크' 카테고리의 다른 글
RESTful API에 대해서 (0) | 2024.07.18 |
---|---|
HTTP의 역사 (0) | 2024.07.15 |
L2, L3, L4, L7 스위치 feat. 스위치 #1 (1) | 2024.07.15 |
주소창에 google.com을 입력한다면? feat. DNS (0) | 2024.07.15 |
OSI 7계층에서의 데이터 흐름 (0) | 2024.07.11 |