스위치 (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