회사에서 시스템 아키텍처를 파악하면서 용어에 대한 무지로 인한 서비스 흐름 파악이 힘듦을 느껴 정리한다.
스위치
- 스위치는 리피터처럼 전기적 신호를 증복하며 브리지의 내장 회로와 지능을 가진다.
- 스위치는 개별 컴퓨터 또는 다른 허브 및 스위치를 연결하는 다중 포트 장비이다.
- 스위치 환경에서 특정 포트를 모니터링 하고자 한다면 모니터링 포트 또는 네트워크 트래픽을 모니터링 할 수 있는 탭 장비를 통해 패킷을 복제(미러링)해서 트래픽 분석 장비로 전달해야 한다.
L2 스위치 (데이터링크 계층. Mac Address 기반의 스위칭)
- 가장 흔히 볼 수 있는 스위칭 방식이다. 다른 스위칭 방식에 비해 저렴하다.
- MAC Address를 읽어 스위칭하고, 이것을 어떤 포트로 보낼 것인지 스위칭하는 장비이다.
- 모든 포트에 연결된 호스트의 MAC 주소를 학습하며, 스위칭 테이블을 생성/갱신한다. (스위치는 이 테이블을 기초로 프레임을 전달)
L3 스위치 (네트워크 계층. 라우팅 스위치. IP Address 기반의 스위칭)
- L3 스위치는 IP 또는 IPX 주소를 읽어서 스위칭을 한다. IP Address 기반의 트래픽 조절 기능을 담당한다.
- 네트워크상에 흘러가는 패킷이 들어오면 L3 스위치는 IP 주소를 보고 적절한 포트로 패킷을 전송한다. (192.168.1.1라는 IP는 어느 방향으로 가고 192.168.1.111는 IP는 어느 방향으로 가게하는 라우팅을 할 수 있다.)
- 하드웨어를 사용한 라우터의 한 형태다. 그래서 라우팅 스위치라고 불리기도 한다.
- 크로스바 스위치와 같은 ASIC 스위칭 기술을 이용한다.
L4 스위치 (전송 계층)
- L4~L7 스위치는 포트 번호 또는 패킷 내용을 분석 및 판단하여 패킷의 경로 설정, 변환, 필터링 동작을 수행할 수 있는 장비이다.
- L4 스위치는 TCP/UDP 프로토콜에서 스위칭을 수행하므로 TCP와 UDP의 포트를 보고 적절한 서버로 패킷을 전송한다.
- 주로 네트워크 암호화나 애플리케이션 프로토콜에 대한 패킷 필터링에 사용한다.
- L4 스위치는 포트번호를 기준으로 패킷을 전송한다. 많이 알려진 디폴트 포트번호는 웹은 80, ftp는 20/21번, 텔넷은 23번이다.
- L4 스위치는 로드밸런싱(SLB : Server Load Balancing) 기능이 지원된다. L4 장비의 VIP (Virtual IP)를 통해, 요청받은 작업을 여러개의 서버로 분산 시킬 수 있다.
- 로드밸런서 기능은 부하분산기능, 상태확인기능, 세션유지기능이 있다.
- 전송 계층 포트번호를 통해 응용 계층 서비스를 구분하고 L4스위치가 관리하고 있는 서버의 부하에 따라 세그먼트를 적절히 배분한다.
- http://ip주소:패킷(TCP/80) > 1번 서버로 연결.
- https://ip주소:패킷(TCP/443) > 2번 서버로 연결.
- ftp://ip주소:패킷(TCP/20,21) > 3번 서버로 연결.
- Failover 기능을 지원한다. 서버가 VIP를 통해 서비스를 하다가, 어떤 이유로 서비스가 중단되면 자동으로 다른 서버가 같은 역할을 수행한다.
L4 스위치의 문제점
- VolP나 P2P와 같은 어플리케이션에 대해 다양한 형태의 패킷 내용을 살펴보기 어렵다.
- 사용자의 IP가 수시로 변경되는 경우 해당 사용자에 대한 연속적인 서비스를 제공하기 어렵다.
L7 스위치
- 어플리케이션 영역이다. OSI 참조모델의 세션 계층과 응용 계층의 데이터 영역까지 분석하여 응용 세션의 제어 수행이 가능하다.
- L4가 갖고 있는 문제점들을 해결하기 위해 패킷의 IP, 포트 정보 뿐만 아니라 패킷의 URL 정보, 쿠키, 플레이로드 정보등을 종합적으로 검사하여 사용자별로 연속적이고 차별하된 서비스를 제공할 수 있다.
- 일반적으로 L4 스위치가 0 ~ 1023번까지의 포트만을 인식하는데 L7 스위치는 그 이외의 포트번호에 대해서도 인식이 가능하다.
L4 와 L7 스위치의 차이점
- 구조적 차이점
- L4 스위치는 TCP/UDP 포트 정보를 분석해서 해당 패킷이 현재 사용하는 서비스(HTTP, FTP, TELNET, SMTP, POP3, SSL ...)별로 패킷을 처리한다.
- L7 스위치는 트래픽의 내용 패턴을 분석해 패킷을 처리한다.
- 기능적 차이점
- 높은 수준의 스위치일수록 더 정교한 패킷의 Load Balancing 및 QoS 기능 구현이 가능하다.
Port
- TCP/IP 네트웍에서 포트 번호는, 들어오는 트래픽을 컴퓨터 내에서 실행되고 있는 적절한 프로그램에 분배시키기 위해 할당되는 숫자를 말한다.
- 이것은 물리적인 플러그나 소켓이 아니며, 다만 논리적인 할당일 뿐이다. 프로그래밍에서 포트는 논리적인 접속장소이다.
- 프로세스가 사용하는 포트 번호는 특별히 제한이 있는 것은 아니다. 하지만, 보통 1~1024까지는 시스템이 주로 사용하기 때문에 1025 ~ 65535번 사이의 포트를 사용하는 것이 좋다
패킷
- 패킷은 패키지와 덩어리를 뜻하는 버킷의 합성어이다. 통신망을 통해 전송하기 쉽도록 자른 데이터의 전송 단위.
- 헤더, 데이터, 테일러로 구성되어 있다.
- 헤더 : 수신처의 인터넷 주소와 순서
- 테일러 : 에러정보
- 일반적으로 2계층으로 내려가기 전까지는 3~4계층의 데이터 단위를 패킷이라고 정의하고 1~2 계층의 데이터 단위는 프레임이라고 지칭한다.
스위칭 방법에 따른 스위치 분류
- 스위칭 기술은 전송로직, 스위칭 방법에 따라 구분한다.
- store-and-forward : 스위치나 브리지가 일단 들어오는 프레임을 전부 받아들인 다음에 처리를 시작하는 방식이다. 에러가 발생하면 브리지나 스위치는 이 프레임을 버리고 재전송을 요구하기 때문에 에러 복구능력이 뛰어나다.
- cut-through : 프레임이 들어오면 앞에 들어오는 목적지 주소만을 본 다음에 바로 목적지로 전송하기 때문에 처음 48비트만 확인한다. 빠른 처리속도를 갖지만 프레임에서 에러를 찾기 어렵기 때문에 에러 복구 능력이 낮다.
- fragment-free : store-and-forward 와 cut-through 방식의 장점을 결합한 방식이다. cut-through 방식처럼 프레임을 다 기다리진 않지만 512비트를 본다.
Reference
https://klero.tistory.com/entry/L2-L3-L4-L7-스위치-구분-및-기본적인-설명 [Klero]
https://memoweb.tistory.com/entry/포트의-개념과-본질-port [Information from Web]
https://m.blog.naver.com/PostView.nhn?blogId=jin750226&logNo=120191771400&proxyReferer=https%3A%2F%2Fwww.google.com%2F.
'CS > Network' 카테고리의 다른 글
[Network] HTTP Method (0) | 2020.03.30 |
---|---|
[Network] OSI 7계층 (0) | 2020.02.23 |
[Network] web socket 통신과 http 통신 (0) | 2019.09.20 |