개발자공부일기

L2 스위치, L3 스위치, L4 스위치, L7 스위치 본문

CS지식/OSI 7계층

L2 스위치, L3 스위치, L4 스위치, L7 스위치

JavaCPP 2025. 11. 10. 00:36

 

네트워크에서 “스위치”라고 부르지만, 실제로는 처리할 수 있는 계층(Layer)에 따라 능력이 크게 달라진다.

L2는 단순하고 빠르며, L7은 할 수 있는 게 많지만 복잡하고 비싸다. 핵심은 “무엇을 보고, 어디까지 판단하느냐”

L2스위치(데이터링크 계층)

무엇을 본다

  • 이더넷 헤더의 출발지/목적지 MAC

무엇을 한다

  • MAC 학습: 들어오는 프레임의 출발지 MAC과 유입 포트를 MAC 테이블에 저장
  • 포워딩: 목적지 MAC이 테이블에 있으면 해당 포트로만 전송, 없으면 플러딩
    플러딩:스위치에서 특정 목적지 주소에 대한 정보를 찾지 못했을 때, 허브처럼 패킷을 입력 포트를 제외한 모든 포트로 보내는 현상입니다
  • 브로드캐스트 도메인 관리: VLAN으로 논리 분리 가능 => 브로드캐스트 범위를 분리하여 불필요한 확산을 줄일 수 있음

L2스위치는 PC들이 연결되면 NIC(Netwrok Interface Card)에 할당되어 있는 MAC주소들을 수집하여 각 포트별로 연결된 PC들을 구분합니다. 이를 이용하여 L2스위치에 연결된 서로 다른 PC들이 통신을 한다면 L2스위치는 두 PC가 연결되어 있는 인터페이스로만 패킷을 전달합니다.

 

 

 

예를 들어, 위와 같은 L2 스위치의 각 포트에 A, B, C, D의 시스템이 연결되어 있다면 L2스위치는 위와 그림에서처럼 MAC주소와 포트정보로 구성된 MAC테이블을 관리합니다. 그리고 A가 C에게 패킷을 보내기 위해서 C의 MAC주소를 목적지로 하는 패킷을 보내면 L2스위치는 C가 연결된 E2 인터페이스로만 패킷을 보냄으로써 C가 패킷을 수신하게 됩니다.

 

L2가 관리하는 MAC테이블은 시간에 따라 항목이 만료되며, 과거에 패킷이 지나갔더라도 만료되어 미지 MAC이면 플러딩이 발생 할 수 있습니다.

 

이 과정에서 E1, E3에 연결된 B, D 시스템은 A가 C에게 보낸 패킷을 구경도 할 수 없습니다. 이유는 스위치가 그쪽으로 패킷을 아예 보내지도 않기 때문입니다.

 

그리고 A가 C에게 보낸 패킷에는 L2에 해당하는 MAC주소 말고도 L3에 해당하는 IP주소도 있습니다. 하지만 L2는 L2의 헤더에 해당하는 MAC주소정보만 참고하고 나머지는 모두 관심없는 L3이상의 데이터이기 때문에 IP주소조차 확인하지 않습니다.그래서 L2스위치는 IP정보를 이용하여 접근제어는 못하지만 MAC주소로 접근제어는 가능하겠죠. 

 

L3스위치 (네트워크 계층)

무엇을 본다

  • L2 정보 + IP 헤더(출발지/목적지 IP, TTL 등)

무엇을 한다

  • 라우팅 의사결정: 라우팅 테이블을 조회해 최적 경로로 다음 홉/출구 인터페이스를 선택
  • 인터-VLAN 라우팅: VLAN마다 SVI(가상 인터페이스)를 두고 서로 다른 서브넷 간 통신을 중개
                                  단말이 다른 서브넷으로 갈 때 이 SVI를 게이트웨이로 사용
  • IP 기반 제어: 접근 제어 목록(Access Control List, ACL)으로 서브넷/호스트 단위 허용·차단, 우선순위 부여
  • 인캡슐레이션 갱신: 다음 홉으로 넘길 때 목적지 MAC을 새로 결정해 L2 헤더를 다시 씌움(ARP로 다음 홉 MAC 획득)

L3스위치는 L2와 L3의 정보를 모두 확인하기 때문에, L2보다 스마트하다고 할 수 있죠. L2가 할 수 있는 기능은 당연하고, L3에 해당하는 IP정보를 확인하여 패킷처리가 가능합니다. IP정보를 기반으로 패킷 필터링도 가능하겠죠. L3는 보통 네트워크와 네트워크간에 패킷을 전송하는 라우터에 해당됩니다.

 

같은 네트워크가 아니라면 라우터를 통해 패킷이 목적지까지 라우팅되어야 원하는 목적지까지 패킷이 전달됩니다. 위 그림과 같이 라우터는 L3에 해당하는 IP정보를 처리하여 라우팅을 합니다.

 

 

L4스위치 (전송 계층)

무엇을 본다

  • L2/L3 정보 + TCP/UDP 포트(프로토콜 포함). 즉 5-튜플(출발지 IP·포트/목적지 IP·포트/프로토콜)

무엇을 한다

  • 로드밸런싱: VIP(가상 IP)를 외부에 노출하고, 내부의 실제 서버 풀로 분산(라운드로빈/최소연결/해시 등 알고리즘)
  • 포트포워딩·NAT: 특정 포트 요청을 내부 서버로 전달(SNAT/DNAT)
  • Qos:네트워크 상에서 데이터 전송의 우선순위를 정하거나 속도, 지연, 손실률 등을 보장
  • 헬스체크: TCP 핸드셰이크 또는 간단 HTTP 응답 여부로 비정상 노드를 자동 제외
  • 기본 방화벽: 5-튜플 조건으로 허용/차단, 연결 개수/속도 제한 등

L4스위치는 L2, L3는 물론 L4에 해당하는 Port정보를 확인하여 패킷처리가 가능합니다. Port정보를 이용해 로드밸런싱이나 포트포워딩, QoS 등의 기능을 처리합니다. 보안기능으로 보면 소스IP/소스Port/목적지IP/목적지Port를 기반으로 패킷을 허용 또는 차단하는 기본적인 방화벽기능도 가능합니다.

 

아래 그림은, L4 스위치에 가상IP(Virtual IP)를 할당하고 포트에 따라 L4스위치 뒤에 실제로 배치된 웹 또는 메일서버(SMTP)로 연결하기도 하고 부하를 고려하여 로드밸런싱도 하는 예를 설명하고 있습니다.

 

 

L7스위치 (애플리케이션 계층)

무엇을 본다

  • L4까지의 정보 + 애플리케이션 레벨(HTTP/HTTPS 등)의 호스트, URL 경로, 헤더, 쿠키, 메서드, 바디 일부

무엇을 한다

  • 콘텐츠 기반 라우팅: 도메인·경로·헤더·쿠키·메서드별로 백엔드를 다르게 분배(멀티 테넌시, 버전 분리, 지역 분기)
  • TLS 종료: HTTPS를 해제해 내용을 본 뒤 정책을 적용, 필요 시 내부로 다시 암호화
  • 고급 기능: 프록시/캐싱, WAF(패턴 매칭/시그니처/행위 기반), 레이트리밋, A/B·카나리·블루그린 배포 지원
  • 관찰/가시성: 요청/응답 헤더 기반 로깅, 트레이싱 헤더 전파, 지연/오류율 기반 자동 우회

L7 스위치는 예상하시는 것과 같이 패킷의 모든 계층의 정보를 커버할 수 있으니 하고 싶은 것은 다 할수 있겠죠. L4스위치가 하는 것은 물론이고, 웹프록시 같은 L7프로토콜을 처리하는 것도 가능하고, 캐싱도 가능합니다. 패킷을 검사하여 침입탐지도 가능합니다. 하지만 기능을 많이 추가할수록 스위치의 성능이 떨어집니다.

 

구분 L4 스위치  L7 스위치
구조적 • Layer 4 계층 분석
• TCP/UDP 포트 정보를 분석하여 서비스 종류(HTTP, FTP, TELNET 등)별 패킷 처리
• 추가: 5-튜플(출·목 IP/포트, 프로토콜) 기반 인지
• Layer 5~7계층 분석
• 응용계층의 트래픽 내용(e-mail의 문자열, HTTP URL, FTP 파일 및 제목 등)을 분석하여 패킷 처리
• 추가: 헤더/쿠키/메서드 등 애플리케이션 필드 인지
기능적 • 네트워크 트래픽 단순 분산
• 로드밸런싱
• 추가: 포트포워딩/NAT, 기본 ACL(5-튜플), 소스 IP 해시 기반 스티키
• 고수준의 정교한 네트워크 트래픽 분산 로드밸런싱
• 보안 기능, 캐싱 기능 지원
• 추가: 도메인/경로/헤더·쿠키 기반 라우팅, TLS 종료 가능, WAF/레이트리밋/쿠키 기반 스티키

 

  • L4는 빠르고 단순(저지연), 대신 URL/헤더는 못 봄.
  • L7은 정책이 유연하고 보안 기능이 많지만 처리 비용이 더 큼.

 

'CS지식 > OSI 7계층' 카테고리의 다른 글

OSI 응용 계층  (0) 2024.12.26
OSI전송 계층  (0) 2024.12.18
OSI 네트워크 계층  (0) 2024.12.17
OSI 데이터링크계층  (0) 2024.12.09
OSI물리계층  (0) 2024.12.06