본문 바로가기
Network/L4 Switch

[L4] L4 스위치 학습하기 - 1

by 오송나라 2025. 2. 4.
728x90
L4 스위치의 기술 시작으로 해야만 하는 상황이 와버렸습니다.
네트워크 엔지니어라면 L4는 할 수 있다면 좋은 엔지니어가 될 것이라고 생각이 듭니다.
물론 서버엔지니어 또는 개발자도 알아두면 좋은 현업에서 사용하는 기능입니다.

L4 스위치는 무엇인가?

  • 4계층(전송 계층)은 외부에서 들어오는 모든 요청을 먼저 받는 계층이다.
  • L4는 그런 무수한 요청을 먼저 받아서 내부에 있는 서버에게 적절하게 분산을 시켜준다.
  • L4는 주요 역할이 여러 대의 서버를 한대처럼 묶는 부하 분산(로드밸런싱) 기능을 제공한다.
  • 또한 TCP, UDP, HTTP와 같은 프로토콜들의 헤더를 분석하여 그 정보를 바탕하여 부하 분산을 하며 더하여 Soure IP 또는 Destination IP를 NAT하여 보낼 수 있다.

클라이언트와 서버가 "3-way handshake"를 진행하고 논리적 연결이 되었음을 알리는 Connection을 만들어내면, 중간자 역할인 L4 Switch도 Connection을 만들어 리스트를 관리합니다. (이 과정에서 3-way handshake 또한 L4 Switch를 통해 실행된다.) 논리적 연결을 통해 데이터를 주고받던 서버 또는 클라이언트가 4-way handshake를 실시해 Connection을 제거하면 4-way handshake의 중간자인 L4 Switch도 Connection을 제거한다.

 

L4 Switch의 Connection은 Connection Time Out 값을 가지는데 이것은 일정 시간동안 사용되지 않은 Connection을 삭제하며, 클라이언트와 서버에 필요시에 Connection을 새롭게 연결하도록 "Reset" Flag가 담긴 패킷을 전송할 수 있도록 한다.

L4 스위치는 왜 필요한가?

왜 L4 스위치는 필요한 것일까? 예를 들어 서버가 한대만 있고 해당 서버는 웹 서비스를 제공하고 있습니다. 그리고 공인 IP인 "123.111.11.2'를 가지고 있고 사용자들은 이 IP로 접속을 한다. 접속 사용자가 많아지면서 서버를 증설해야하는 상황이 왔습니다.

 

서버를 한대 추가하였고 "123.111.11.3"의 공인 IP를 할당하였습니다. 그럼 외부에서 웹 서비스에 접속하기 위해 "123.111.11.2" 또는 "123.111.11.3"으로 접속을 해야합니다. 기존 사용자들은 기존에 "123.111.11.2"로 접속을 하였고, 편하게 계속 해당 IP로 접속을 할 것입니다. 그럼 "123.111.11.3" 이라는 서버가 추가되었다고 접속이 가능하다고 모두에게 알려야 하는 상황일까요? 만약에 서버가 무수히 많다면 어떻게 해야할까요?

아무리 접속 IP가 추가되었다고 하여도, 분명 사용자는 원하는 IP로 접속을 할 것이고, 부하가 나누어지는 것 처럼 보이지만 일정하게 고르게 분산되는 것은 장담을 할 수가 없는 상황입니다. 그래서 필요한 것이 "Load Balancing"입니다. 일일이 서버에 요청을 전달할 필요 없이 L4 스위치에 모든 요청을 전달하여 L4 스위치가 서버들에게 요청을 그대로 전달하는 것입니다. 

L4 Switch를 추가하고 구성이 달라졌습니다. 보면 기존에 서버는 공인아이피를 가지고 있었지만, 현재는 그러하지 않는 내부 사설 아이피를 가지고 있습니다.

모든 요청을 L4로 받기 위해 L4 스위치만 공인 IP인 "123.111.11.1"을 가지게 되고 모든 사용자들은 해당 공인 IP로 요청을 보내게 됩니다.

모든 요청을 L4 스위치가 받기 때문에 서버들은 공인 IP가 필요없는 상황이 된거죠.

서버들은 L4 스위치를 통해서만 통신하게 되어서 L4 스위치와 서버는 사설 IP를 통하여 통신을 하게 됩니다.

 

추가적으로 보면, L4 스위치를 추가하니 서버가 사설 IP를 가지게 되어서 외부에서 서버의 IP를 알 수 없으니 서버에 직접 연결할 방법이 사려졌습니다.

이것은 외부에서 서버에 악의적인 트래픽 공격(DDoS) 등을 하고싶어도 서버의 IP를 보르기 때문에 직접 공격이 불가능해 보안적으로도 효율성이 있다고 보여집니다.

728x90

L4 스위치의 구성요소는?

뭔가 IP 뒤에 80이라는 숫자가 붙었죠? 80이라는 숫자는 Port 입니다.

TCP는 IP의 정보뿐만 아니라 Port를 이용하여 연결합니다. 한쪽 단말(Endpoint)에 도착한 데이터가 어느 입구(Port)로 들어가야 하는지 알아야 연결을 시도할 수 있기 때문이지요. 위의 TCP Header를 보시면 Source Port와 Destination Port를 확인할 수 있습니다. 예를 들어, 양쪽 단말(Endpoint) 이 HTTP로 이루어진 문서를 주고받고자 할 경우 데이터 통신을 하려면 Endpoint의 3306 Port도 아니고, 21 Port도 아닌 80 Port로 연결해야 합니다.

출처:https://chanchan-father.tistory.com/1131

 

왜 L4 스위치인지 알 수 있겠군요.

OSI 7 Layer 중 Layer 4의 정보인 Port를 사용하게 됩니다.

 

서버는 하나의 서비스가 아닌 다양한 서비스를 제공하기 위하여 사용을 합니다.

하나의 서버에서도 다양한 웹 서비스를 제공하기 위해 80, 8080, 8888 등으로 포트를 다르게 하여 종류별로 다양한 웹서비스를 제공할 수있습니다.

 

만약에 Port Number를 모르는 상태로 IP 정보만을 가지고 접속한다면 어떠한 Port로 접속을 해야할지 당연히 모를것 입니다.

그래서 L4 스위치에는 외부에서 접속하는 IP 뿐 아니라 Port도 명시를 해주어야 합니다.

그림에서 보는 것 처럼 외부 사용자들이 접속 시에 사용하는 IP인 "123.111.11.1"과 Port인 "80"을 가지고 있는 L4 스위치의 구성 요소를 Virtual Server라고 합니다.

또한 Virtual Server가 가지고 있는 IP를 VIP(Virtual Server IP)라고 부릅니다.

L4 스위치는 다수의 Virtual Server를 생성할 수 있습니다.

 

이 Virtual Server에 온 요청을 서버들의 집합에 전달을 하는데 이 집합을 Pool이라고 합니다.

특정 Virutal Server에 전달된 요청은 그 Virtual Server에 Connection 된 Pool로만 전달이 됩니다.

 

Pool에서 소속원으로 IP와 Port로 구성된 서버는 Pool Member라고 부릅니다.

Pool 내에는 다수의 Pool Member로 구성이 됩니다.

Pool Member는 단순하게 IP가 아니고 IP와 Port로 이루어진 서버이고, IP가 같더라도 Port가 다르다면 다른 Pool Member로 보면 됩니다.

 

 

 

 

 


<자료출처>

[Network] L4 스위치 공부 1탄

 

[Network] L4 스위치 공부 1탄

개인적으로 네트워크 공부를 위해 정리한 내용들입니다. 함께 공부하자는 취지로 내용을 공유합니다. 1. L4 스위치란? L4 스위치는 로드밸런싱(서버 부하 분산)을 처리하는 장비입니다. 외부에서

chanchan-father.tistory.com

 

728x90