스위치, VIP, 로드밸런싱 A to Z

바퀴달린 개발자·2022년 5월 24일
0

바퀴달린 개발자

목록 보기
4/4

바퀴달린 개발자가 벌써 4주차다!
이제까지 웹서버, WAS, 웹 어플리케이션 구조를 다뤘었는데
그렇다면 결국 사용자가 제일 먼저 들어오는 DNS의 ip는 어디에서 온 ip인지 궁금해졌다.
그래서 VIP를 찾다가 스위치 개념을 알게되었고 로드밸런싱 개념까지 자세하게 살펴보려고 한다.

오늘의 목표
1. 스위치 개념알기
2. 각 OSI 7계층 레이어별 스위치의 역할 알기
3. VIP 개념 알기
4. 로드밸런싱 알기

스위치란?

  • 네트워크 회선과 서버 컴퓨터를 연결하는 네트워크 장비이다.
  • 스위치에 연결된 장비들의 IP와 MAC 주소를 모두 저장해 두고 있고 특정 장치에서 패킷이 오면 해당 패킷의 목적지를 파악하여 관련된 장치가 꽂힌 포트로 패킷을 보내준다.
  • 스위치는 어떤 주소로 스위칭 하느냐에 따라 L2, L3, L4, L4 스위치로 구분된다.

L1, L2, L3, L4, L7 스위치란?

  • OSI 7계층의 어느 계층에서 작동하냐에 따라 L + ? 스위치로 불림
  • 상위 계층의 스위치는 하위 계층의 기능을 포함하고 있다.

L1 스위치 (더미, 더미 허브)

  • 가장 하위 계층인 1계층(물리 계층)에서 작동하는 녀석
  • 허브(혹은 더미 허브)를 L1 스위치라고 한다.
  • 허브는 자신에게 꽂혀있는 모든 장비에게 데이터를 전부 전달한다.

L2 스위치 (스위칭 허브)

  • 2계층(데이터 링크 계층)에서 작동
  • 각 장비의 MAC 주소를 내부적으로 저장하고 있기 때문에, 들어온 패킷의 MAX 주소를 읽어 해당하는 장비를 찾아 전달해주는 장비를 뜻한다.
  • 브로드캐스트 패킷에 의해 성능 저하가 발생하는 단점이 있다.

L3 스위치 (라우터, 공유기)

  • 3계층(네트워크 계층)은 라우팅 기능을 하는 층
  • 라우터는 네트워크 패킷을 연결해주는 통로 역할을 하며 대역폭 확장이 주 기능이다.
  • L3 스위치는 MAC주소 + IP 주소까지 알고 있다.
  • 스위치 자체에도 IP 주소가 할당되어 있다.

라우터란?

  • 스위치가 여러 디바이스를 연결하여 네트워크를 만들 듯이, 라우터는 여러 스위치 그리고 각각의 네트워크들을 연결하여 더 큰 네트워크를 형성한다.
  • 라우팅은 서로 다른 네트워크를 연결하는 기능을 뜻한다.

L4 스위치

  • 4계층(전송 계층)은 외부에서 들어오는 모든 요청을 먼저 받아들이는 계층이다.
  • 로드 밸런싱 기능 제공
  • L4 스위치는 IP + Port 정보도 참고한다.

L7 스위치 (L5 스위치, L6 스위치)

  • L7 스위치가 L5, L6 기능까지 같이 한다.
  • 7계층(응용 계층) 역시 4계층처럼 일반적으로 스위치로 들어온 패킷을 적절한 서버로 전송해주는 로드 밸런싱을 위해 스위치를 사용하는데, L4 스위치와는 차이가 있다.
  • L4 스위치의 경우 3~4 계층에 속하는 IP 주소 및 TCP/UDP Port 정보를 보고 스위칭하지만,
    L7 스위치의 경우 3~7계층에 속하는 IP 주소 및 TCP/UDP Port 정보, 패킷 내용까지 모두 보고 스위칭해주는 장보이다.
  • 또한, L4 스위치의 경우 TCP/UDP Port를 이용하여 로드 밸런싱을 하지만, L7 스위치의 경우 7계층 HTTP의 URL, FTP 쿠키 정보 및 바이러스 패턴을 분석하여 보안에 더 유리하고 정교한 로드 밸런싱이 가능하다(Ex. VPN)
  • 그래서 L7 스위치를 보안 스위치라고 부르기도한다.

Vip (Virtual IP, 가상 아이피)

  • L4 스위치(로드밸런싱이라는 서비스를 제공해주는 장비)에 할당된다.
  • 웹서버를 이용하려는 사용자가 접속해 들어오면, 먼저 DNS에 물어봐서 그 웹서버의 IP를 알아내야 한다. 그런데, DNS에는 '고정된 정보'가 들어 있다. 그래서 DNS는 웹서버에 접속하려면 스위치한테 가봐라고 하면서 알려준다. 그러면 스위치가 알아서 5대의 서버 중 알맞은 서버로 연결해준다.

VIP 활용 사례

1) 방화벽(Firewall, fw) 이중화시 VIP 구성 사례

방화벽이 이중화 되어 있다면 라우터는 자신이 받은 패킷을 다음 어느 방화벽에 전달해야할지 모른다.
이러한 경우를 대비해 VIP를 할당해 FW 중 master 장비에서 VIP를 가져가도록 설정한다.

또한 PC A와 B가 있을 때 자신이 바라보아야 할 Gateway가 어디인지 모른다.
마찬가지로 내부쪽에도 VIP를 살당하여 pc들이 바라보아야할 vip를 설정한다.

만약 Master 장비에 장애가 났다면?
방화벽은 vip를 누가 소유하는지 판별하기 위해 vrrp라는 프로토콜을 사용하는데 이러한 프로토콜로 인해 Master장비로 부터 응답을 받지 못하면 slave fw가 Vip를 소유하게 된다.
따라서 상단의 라우터나 하단의 pc에서도 vip가 Fw slave 쪽으로 옮겨 감에 따라 FW slave 쪽으로 패킷을 전달한다.

2) L4에서의 SLB(Server Load Banlacing)

만약 웹서버가 2대일 경우 웹서버의 부하분산을 위해 L4가 도입되는 경우가 있다.
실제 client에서는 어떤 ip를 치고 들어와야하는지 모른다.
따라서 L4에서 vip를 설정하여 vip를 보고 들어오는 패킷을 자연스럽게 등록되어 있는 웹서버로 부하분산 해누다.

로드 밸런싱이란?

  • 컴퓨터 자원들에게 부하를 나누는 것

기본 기능

Health Check (상태 확인)

  • 서버들에 대한 주기적인 Health Check를 통해 서버들의 장애 여부를 판단하여, 정상 동작중인 서버로만 트래픽을 보낸다.
  • L3 체크 : ICMP를 이용하여 서버의 IP주소가 통신 가능한 상태인지 확인
  • L4 체크 : TCP의 특성을 바탕으로 각 포트 상태를 체크 (ex. 3 way handshaking)
  • L7 체크 : 실제 웹페이지에 통신을 시도하여 파악

NAT (Network Address Translation)

  • 내부 네트워크에서 사용하는 사설 IP 주소와 로드밸런서 외부의 공인 IP 주소 간의 변환 역할
  • SNAT (Source (Network Address Translation): 내부에서 외부로 트래픽이 나갈 때 내부 사설 IP 주소 -> 외부 공인 IP 주소로 변환
  • DNAT (Destination Network Address Translation) : 외부에서 내부로 트래픽이 들어오는 경우 외부 공인 IP 주소 -> 내부 사설 IP 주소로 변환

이 외에도 Tunneling, DSR의 기능도 있음

  • 찾아보기..

L4 로드 밸런서 vs L7 로드 밸런서

https://co-no.tistory.com/22 참고

참고
https://co-no.tistory.com/22
https://siahn95.tistory.com/entry/Network%EC%9E%A5%EB%B9%84-L1-L2-L3-L4-L5-L6-L7-%EC%8A%A4%EC%9C%84%EC%B9%98%EB%9E%80
https://run-it.tistory.com/44

0개의 댓글