왜?
아키텍쳐 설계 도면에 L2, L4, L7 등 스위치가 등장했다.
왜 서로 다른 OSI 계층에 해당하는 스위치를 써서, 서버에 분배하는것일까?
허브, 스위치, 라우터란?
허브는 패킷 요청이 들어오면 연결된 모든 기기로 브로드캐스팅된다.(뿌림)
스위치는 패킷의 목적지 주소로 지정된 기기로 이어지는 포트로만 패킷이 전달된다.
라우터는 네트워크 트래픽 포워딩, 라우팅 기능제공하며, 보통 다른 네트워크들 사이에 존재하여, 각 네트워크를 연결하는데 사용한다.
L1, L2, L3, L4, L7
각 OSI 7 계층을 말한다.
L1
가장 원시적인 계층으로 랜선에 꽃힌 포트에 동일한 정보를 보낸다 (=허브)
L2
MAC정보를 보고 스위칭 합니다. 포트별로 BandWidth가 부여된다.
L3
IP정보를 보고 스위칭 합니다. (라우팅 기능 추가됨)
L4 스위치
IP+Port(Session or Connection)을 보고 스위칭합니다. (로드밸런싱 주로 사용한다)
모든 처리가 TCP/UDP 포트 정보 기반으로 함 (서비스 단위로 로드밸런싱, 스위칭)
- real ip 를 vip 로 묶어서 로드밸런싱 / Fail over
- TCP/UDP 포트정보를 확인해, 해당 패킷이 사용하는 서비스 종류별로 처리한다.
(http, telnet, ftp 등 포트 기반 패킷처리) - TCP/UDP 포트를 이용하여 로드밸런싱
- TCP/UDP 포트 정보를 참조해 스위칭
L7 스위치
실제 APP 데이터를 보고 스위칭한다.(웹방화벽, 보안 스위치)
- TCPU/UDP 포트 정보와 함께, 패킷의 내용까지 참조해서 스위칭한다.
- 포트 + 페이로드(실제 데이터, 컨텐츠)를 분석함.
- http 의 url 이나 쿠키 정보, 바이러스 패턴을 분석해 보안에 더 유리한 로드밸런싱이 가능하다.
(트래픽 필터링이 가능) - 페이로드 분석을 통해서 DDos 방어, 패킷 필터링 등이 가능하다.
- URL 별 / FTP 파일 제목 등의 정보로도 로 스위칭이 가능!
- HTTP Header 값에 따라 특정 String 을 기준으로도 로드밸런싱이 가능하다.
결론
L4는 포트 기반으로 패킷을 처리
L7는 포트+페이로드(데이터)를 기반으로 패킷을 처리
페이로드 기반으로 패킷을 처리하는 L7는 더 유연한 처리가 가능하다.
(URL 정보로 패킷을 처리한다든지 등의 더 섬세한 컨트롤 가능)