스위치 (Switch)

네트워크를 연결하는 일을 하는 목적을 가진 기기

자신과 연결된 모든 기기에서 들어오는 패킷을 수신하고, 패킷을 적당한 기기로 보내는 일을 합니다.

OSI 7 계층에서 어느 계층까지 다루는지를 기준으로 스위치의 카테고리를 나눕니다.

 

L4 스위치

  • OSI 4계층
  • IP + Port
  • Port 구분이 가능하므로 프로토콜(HTTP, FTP)마다 다른 서버로 보내는 것이 가능
  • 실제 IP들을 하나의 가상IP(Virtual IP, VIP)로 묶어서 처리할 수 있음
    • VIP를 통해 요청받은 작업을 여러개의 서버로 분산
    • VIP를 통해 연결된 서버가 다운되어도 자동으로 다른 서버가 해당 역할을 하도록 전환하는 failover 기능 지원

  • → 포트 기반 스위칭 지원, VIP를 이용해 로드 밸런싱

 

L4 스위치가 필요한 이유

사용자가 늘어나 서버가 계속 추가되는 상황이 있다고 생각해보면

서버마다 다른 IP 주소가 할당될 것인데 사용자들은 어떻게 접속해야 할까? 🤔

 

서버가 2대면 공지를 해서 해결할 수도 있겠지만, 서버의 수가 3대 이상으로 계속 늘어난다면?

부하 분산도 고려하지 않을 수가 없다!

 

→ 서버에게 요청을 전달할 필요없이 L4 스위치에 모든 요청을 전달하고, L4 스위치가 서버들에게 요청을 그대로 전달함

 모든 요청을 L4가 받기 위해, L4 스위치가 공인 IP를 갖게 되고, 모든 사용자들은 이 공인 IP로 요청을 보내게 된다!

 

추가로 L4 스위치는 4계층의 네트워크 계층에서 사용되며 포트 번호를 함께 사용함

포트 정보를 통해 하나의 서버에서 웹 서비스를 제공해도 포트 종류별로 다양한 웹 서비스를 제공할 수 있음!

따라서 L4 스위치에는 외부에서 접속할 IP에 Port를 함께 명시해주어야 함!

 

L7 스위치

  • 애플리케이션 영역, 즉 HTTP Request 요청 내용까지 판단
  • L4가 사용하는 IP + Port 뿐만 아니라, URI 정보, 쿠키 등을 모두 판단해 유연하게 네트워크 밸런싱을 함
    • 예1) L4 스위치에서 제공하는 기능 모두 포함, 프로토콜(Port)별로 다른 서버에 할당
    • 예2) www.naver.com/blog 와 www.naver.com/cafe 를 다른 서버가 처리하도록 설정 가능
    • 예3) URI, 쿠키, 바이러스 패턴 등을 분석해 특정 트래픽을 받지 않도록 필터링 가능
    • 예4) 패킷의 데이터 부분, payload를 분석해 DDoS 같은 공격 완화 가능
회사에서 공유기(사설 IP)를 사용하는 경우 → 한 회사의 모든 요청 IP가 같음
- L4 스위치는 IP+Port가 같기 때문에, 모든 요청을 한 서버에 할당
- L7 스위치는 IP+Port에 HTTP Request를 이용해 분산시키므로 적절하게 분산 가능

 

결론

  • L4 스위치 : 포트 기반으로 패킷 처리
  • L7 스위치 : 포트 + 페이로드(데이터) 기반으로 데이터 처리, 세션을 분리하고 자신이 철저하게 클라/서버로 동작

페이로드 기반으로 패킷을 처리하는 L7는 더 유연한 처리가 가능 (URL 정보로 패킷을 처리한다든지 등 섬세한 컨트롤 가능)

L4에 비해 분석할 정보가 많아 로드 밸런싱 작업이 어렵고 무거워져 성능 좋은 L7 장비는 가격이 매우 비싸다..

 

 

 

참고 사이트

https://aws-hyoh.tistory.com/65

https://jiwondev.tistory.com/189

https://kchanguk.tistory.com/181

OSI 7 계층 (OSI 7 Layer)

우리가 사용하는 모든 네트워크 통신은 OSI 표준에 따라 이루어집니다. 즉, 엔지니어로서 OSI 7 계층에 대한 이해 없이 인프라에 대한 이해는 어렵습니다. 그렇기 때문에 OSI 7 계층에 대해 확실히 알고 있는지 면접에서 단골 질문으로 등장하기도 합니다.

 

학부 때 네트워크 수업에서 배웠지만, 많은 양의 내용을 단순히 암기만 해서는 내것으로 만들기 어렵기 때문에 다시 차근차근 짚어보며 이해해보는 시간을 가져보겠습니다 :)

 

OSI 7 계층이란?

OSI 모형(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 이 모델은 프로토콜을 기능별로 나눈 것이다. 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다.

'프로토콜 스택' 혹은 '스택'은 이러한 계층들로 구성되는 프로토콜 시스템이 구현된 시스템을 가리키는데, 프로토콜 스택은 하드웨어나 소프트웨어 혹은 둘의 혼합으로 구현될 수 있다. 일반적으로 하위 계층들은 하드웨어로, 상위 계층들은 소프트웨어로 구현된다.
- 위키백과

간단하게 정리하면, 네트워크에서 통신이 일어나는 과정을 7단계로 나누어 놓은 것입니다.

 

 

OSI 7 계층을 나눈 이유는?

통신이 일어나는 과정을 단계별로 파악하기 위해서 입니다.

 

단계별로 나누어져 있기 때문에 흐름을 한눈에 알아보기 쉽고,

어떤 이상이 생겼을 때 다른 단계의 장비 및 소프트웨어를 건드리지 않고 해당 단계만 고치면 되는 장점이 있습니다.

 

예를 들어 보면,

회사에서 한 소프트웨어에 대한 네트워크 연결 문제가 발생했을 때,
원인을 파악하기 위해서 어떻게 해야할까?

모든 PC에 문제가 있는 것이라면
라우터 문제(3계층 네트워크)이거나 광랜 제공 업체의 회선 문제(1계층 물리)

특정 PC만 문제가 있다면
연결이 끊긴 소프트웨어에 문제가 있다면(7계층 애플리케이션)
소프트웨어에 문제가 없고, 스위치에 문제가 있으면(2계층 데이터링크)

문제 파악 후 다른 계층에 있는 장비나 소프트웨어를 건드리지 않는다.

 

OSI 7 계층

 

1계층 - 물리 계층(Physical Layer)

  • 통신 케이블로 데이터를 전송
  • 통신 단위 : Bit
  • 단순히 데이터를 전기적인 신호로 변환해 전달하며 송수신하는 데이터가 무엇인지, 어떤 에러가 있는지는 전혀 신경 쓰지 않음
  • 대표 장비 : 통신 케이블, 리피터, 허브 등
  • → 케이블, 리피터, 허브를 통해 데이터 전송

 

2계층 - 데이터링크 계층(DataLink Layer)

  • 물리 계층을 통해 송수신되는 데이터의 오류 제어 및 흐름 제어 -> 안전한 정보의 전달을 수행하는 역할
  • 통신에서의 오류도 찾고, 재전송도 함
  • MAC 주소로 통신 -> 프레임에 주소를 부여하는 것
  • 통신 단위 : Frame
  • 대표 장비 : 브릿지, L2 스위치 등
  •  프레임에 주소 부여(MAC), 에러검출/재전송/흐름제어

 

3계층 - 네트워크 계층(Network Layer)

  • 가장 중요한 기능은 라우팅! 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능
  • 경로를 선택하고, 주소를 정하고 경로에 따라 패킷 전달을 함
  • 라우팅, 흐름 제어, 세그멘테이션, 오류 제어, 인터네트워크 등 수행
  • 대표 장비 : 라우터
  • 프로토콜 및 기술 : IPv4, IPv6, ARP, ICMP, IGMP, Routing Protocol(RIP, OSPF 등)
  • 주소 부여(IP), 경로설정(Route)

 

4계층 - 전송 계층(Transport Layer)

  • 포트 번호를 이용해 서비스를 구분하고 데이터 전송을 담당하여 통신을 활성화함
  • 데이터가 왔다면 4계층에서 해당 데이터를 하나로 합쳐서 5계층으로 던져줌
  • stateful, connection oriented → 전송 계층의 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들은 재전송함
  • 종단간 통신을 다루는 최하위 계층으로 종단간 신뢰성 있고 효율적인 데이터 전송
  • 통신 단위 : Segement
  • 대표 장비 : L4 스위치 등
  • 프로토콜 및 기술 : TCP, UDP
  •  패킷 생성(Assembly/Sequencing/Error Detection/Request repeat/Flow Control) 및 전송

 

5계층 - 세션 계층(Session Layer)

  • 응용 프로그램간 세션 수립/유지/종료
  • 세션 : 두 사용자 간의 작업 시작부터 끝까지의 실시간 논리적인 연결
  • 프로토콜 및 기술 : 소켓, NetBIOS, 네임드 파이프
  • 통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룸

 

6계층 - 표현 계층(Presentation Layer)

  • 데이터의 표현(확장자 연결, 압축, 암호화, 변환)
  • 프로토콜 및 기술 : SSL, redirector, MIME
  • 사용자의 명령어를 완성 및 결과 표현, 포장/압축/암호화

 

7계층 - 응용 계층(Application Layer)

  • 사용자에게 인터페이스 제공, 원본 데이터 생성
  • 프로토콜 및 기술 : HTTP, HTTPs, POP3, FTP, SSH, Telnet, DHCP, DNS, SNMP 등
  • 네트워크 소프트웨어 UI, 사용자의 I/O

 

 

 

참고 사이트

+ Recent posts