『IT 엔지니어를 위한 네트워크 입문』(6장)

전희준·2026년 9월 15일

Network

목록 보기
8/10
post-thumbnail

4계층 장비 이해하기: 로드 밸런서, 방화벽과 세션 관리

기존의 네트워크 장비라고 하면 스위치와 라우터처럼 2계층과 3계층 장비를 떠올리는 경우가 많습니다.

하지만 NAT, 방화벽, 로드 밸런서 같은 장비가 등장하면서 네트워크 장비는 4계층 이상의 정보까지 이해하고 처리하는 방향으로 확장되었습니다.

4계층 장비는 단순히 IP 주소만 보는 것이 아니라 포트 번호, TCP 상태, 세션의 방향과 순서까지 이해해야 합니다.

이 때문에 4계층 이상의 장비를 흔히 세션 장비(Session Device)라고 부릅니다.

이번 글에서는 세션 장비의 특징과 대표적인 장비인 로드 밸런서와 방화벽, 그리고 운영할 때 주의해야 할 사항을 정리해보겠습니다.


1. 4계층 장비의 핵심은 세션

4계층 장비는 TCP나 UDP와 같은 전송 계층 정보를 이해하고 동작합니다.

특히 TCP 기반 통신에서는 다음과 같은 정보를 확인할 수 있습니다.

  • Source / Destination Port
  • Sequence Number
  • ACK Number
  • TCP 연결 상태
  • 통신 방향

이런 정보를 이용해 통신 상태를 추적하고 그 내용을 세션 테이블(Session Table)에 저장합니다.

Client
   ↓
[ Firewall / Load Balancer ]
   ↓
Server

세션 정보
Client IP / Port
Server IP / Port
TCP 상태
Timeout

따라서 4계층 장비를 이해할 때 가장 중요한 개념은 세션 테이블입니다.


1.1 세션 장비의 특징

세션 장비에서는 특히 다음 세 가지가 중요합니다.

세션 테이블

장비는 현재 통신 중인 연결 상태를 세션 테이블에 저장합니다.

세션 정보에는 유지 시간이 존재하기 때문에 일정 시간 동안 통신이 없으면 해당 정보가 삭제될 수 있습니다.


대칭 경로

세션 기반 장비에서는 요청과 응답이 가능하면 같은 장비를 통과해야 합니다.

Client
   ↓ 요청
Firewall A
   ↓
Server

Server
   ↓ 응답
Firewall A
   ↓
Client

이처럼 요청과 응답이 같은 장비를 통과하는 것을 대칭 경로(Symmetric Path)라고 합니다.


패킷 정보 변경

로드 밸런서와 같은 장비는 단순히 패킷을 전달하는 것이 아니라 IP 주소나 애플리케이션 정보를 변경하기도 합니다.

따라서 네트워크 중간에 세션 장비가 존재한다면 네트워크뿐 아니라 서버와 애플리케이션도 이를 고려해야 합니다.


2. 로드 밸런서

로드 밸런서는 여러 서버에 트래픽을 분산해 부하를 나누는 장비입니다.

서버 한 대의 성능을 계속 높이는 방법에는 비용과 한계가 있습니다.

그래서 서버의 성능을 높이는 Scale Up보다 여러 서버를 추가하는 Scale Out 방식을 사용하는 경우가 많습니다.

             ┌─ Server 1
Client → LB ─┼─ Server 2
             └─ Server 3

사용자는 여러 서버의 존재를 알 필요 없이 하나의 서비스 주소로 접근합니다.

로드 밸런서는 요청을 받아 여러 서버 중 하나로 전달합니다.


3. L4 Load Balancing

L4 로드 밸런싱은 TCP와 UDP 같은 4계층 정보를 이용해 트래픽을 분산합니다.

주로 다음 정보를 기준으로 동작합니다.

Source IP
Destination IP
Source Port
Destination Port
Protocol

사용자가 접근하는 주소를 VIP(Virtual IP)라고 하고 실제 서비스를 처리하는 서버의 주소를 Real IP라고 합니다.

Client
   ↓
VIP
   ↓
L4 Switch
   ↓
Real Server
 ├─ 10.0.0.10
 ├─ 10.0.0.11
 └─ 10.0.0.12

로드 밸런서는 사용자의 요청을 받아 여러 Real Server 중 하나로 전달합니다.


4. L7 Load Balancing과 ADC

L7 로드 밸런서는 단순히 IP와 Port만 확인하는 것이 아니라 애플리케이션 프로토콜의 내용까지 확인합니다.

대표적으로 다음과 같은 정보를 활용할 수 있습니다.

  • HTTP Header
  • URI
  • 요청 콘텐츠
  • 애플리케이션 프로토콜 정보

예를 들어 URI에 따라 서로 다른 서버로 요청을 전달할 수도 있습니다.

/image/*
   ↓
Image Server

/api/*
   ↓
API Server

이처럼 애플리케이션 계층까지 이해하는 장비를 ADC(Application Delivery Controller)라고 부릅니다.

ADC는 로드 밸런싱뿐 아니라 여러 기능을 수행할 수 있습니다.

  • 콘텐츠 캐싱
  • 압축
  • 콘텐츠 변환
  • HTTP 최적화
  • SSL 처리
  • 애플리케이션 보안 기능

4.1 L4와 L7의 차이

구분L4 Load BalancerL7 Load Balancer
기준TCP/UDPHTTP 등 애플리케이션
주요 정보IP, PortHeader, URI, 콘텐츠
처리 계층4계층7계층
특징단순하고 빠른 분산세밀한 트래픽 제어
대표 장비L4 SwitchADC

L4는 어디로 보낼지를 IP와 Port를 기반으로 판단하고, L7은 어떤 요청인지까지 이해한 뒤 서버를 선택할 수 있다는 차이가 있습니다.


5. 방화벽

방화벽은 네트워크를 통과하는 트래픽을 정책에 따라 허용하거나 차단하는 보안 장비입니다.

일반적인 방화벽은 단순히 IP와 Port만 확인하는 것이 아니라 세션 상태를 함께 확인합니다.

Internal Network
       ↓
    Firewall
       ↓
    Internet

방화벽 역시 세션 테이블을 유지합니다.

예를 들어 내부 사용자가 먼저 인터넷 서버로 요청했다고 가정해보겠습니다.

Internal → Internet

방화벽은 해당 통신 정보를 세션 테이블에 저장합니다.

이후 인터넷 서버에서 응답이 들어오면 기존 세션을 확인합니다.

Internet → Internal

기존 요청에 대한 응답이라고 판단하면 패킷을 통과시킵니다.


5.1 Stateful Firewall

이처럼 연결 상태를 저장하고 확인하는 방식을 Stateful Inspection이라고 합니다.

Client → Server
          ↓
     Session 생성

Server → Client
          ↓
     기존 Session 확인
          ↓
        허용

세션 정보를 이용하면 방화벽은 단순히 패킷 하나만 보는 것이 아니라 통신의 앞뒤 관계를 이해할 수 있습니다.

덕분에 정책을 보다 단순하게 구성할 수 있습니다.


6. 세션 타임아웃

세션 테이블은 메모리를 사용하기 때문에 모든 세션을 무한정 저장할 수 없습니다.

따라서 일정 시간 동안 통신이 없으면 세션을 삭제합니다.

이를 Session Timeout이라고 합니다.

문제는 애플리케이션과 방화벽의 세션 유지 시간이 서로 다를 때 발생합니다.

Client ───────── Server
        Session 유지

        Firewall
        Session 삭제

Client와 Server는 연결이 유지되고 있다고 생각하지만 중간 방화벽에서는 세션이 이미 삭제된 상태일 수 있습니다.

이 상태에서 다시 패킷이 전송되면 방화벽은 해당 패킷을 기존 세션의 정상적인 패킷으로 인식하지 못하고 차단할 수 있습니다.


6.1 세션 타임아웃 문제 흐름

1. TCP Session 생성
       ↓
2. 정상 통신
       ↓
3. 오랫동안 통신 없음
       ↓
4. Firewall Session Timeout
       ↓
5. Application 다시 통신
       ↓
6. Firewall Drop

7. 세션 타임아웃 문제 해결

세션 타임아웃 문제를 해결하는 방법은 크게 네트워크 장비와 애플리케이션 관점으로 나누어 볼 수 있습니다.


세션 장비 측

필요하다면 특정 서비스의 Session Timeout 값을 증가시킬 수 있습니다.

Application Timeout
<
Firewall Timeout

방화벽에서 세션을 삭제할 때 TCP RST 패킷을 양쪽 단말에 보내 기존 연결을 명확히 종료시키는 방법도 사용할 수 있습니다.


애플리케이션 측

보다 일반적인 방법은 Keepalive와 같이 주기적으로 패킷을 발생시키는 것입니다.

Client
   │
   ├── Keepalive
   ├── Keepalive
   ├── Keepalive
   ↓
Server

일정 시간마다 트래픽이 발생하면 방화벽에서도 세션이 계속 갱신되므로 Session Timeout으로 인한 문제를 줄일 수 있습니다.


8. 비대칭 경로 문제

네트워크는 장애에 대비하기 위해 장비와 회선을 이중화하는 경우가 많습니다.

하지만 이 과정에서 요청과 응답이 서로 다른 방화벽을 통과하면 문제가 생길 수 있습니다.

대칭 경로

Client
  ↓
Firewall A
  ↓
Server
  ↓
Firewall A
  ↓
Client

비대칭 경로

Client
  ↓
Firewall A
  ↓
Server
  ↓
Firewall B
  ↓
Client

Firewall A에는 요청 세션 정보가 있지만 Firewall B에는 해당 세션이 없습니다.

따라서 Firewall B에서는 응답 패킷을 정상적인 통신으로 인식하지 못할 수 있습니다.


8.1 비대칭 경로 해결

가장 좋은 방법은 처음부터 대칭 경로가 유지되도록 네트워크를 설계하는 것입니다.

부득이하게 비대칭 경로를 사용해야 한다면 다음과 같은 방법을 사용할 수 있습니다.

  • 방화벽 간 세션 정보 동기화
  • 패킷을 기존 세션이 존재하는 방화벽으로 전달
  • 장비의 비대칭 라우팅 처리 기능 사용

다만 이런 기능을 사용할수록 장비의 처리 과정이 복잡해질 수 있으므로 처음부터 경로를 잘 설계하는 것이 중요합니다.


9. 하나의 서비스가 여러 세션을 사용하는 경우

대부분의 현대 애플리케이션은 하나의 연결 안에서 통신하지만 일부 프로토콜은 여러 세션을 사용합니다.

대표적인 예가 FTP입니다.

FTP는 다음 두 종류의 통신을 사용합니다.

Control Session
+
Data Session

즉 명령을 전달하는 연결과 실제 데이터를 전달하는 연결이 분리되어 있습니다.

이 경우 방화벽이나 NAT 같은 세션 장비에서는 두 연결이 하나의 서비스와 관련되어 있다는 사실을 이해해야 합니다.


9.1 FTP Active Mode

Active Mode에서는 제어 연결은 클라이언트가 서버로 시작하지만 데이터 연결은 반대 방향으로 만들어질 수 있습니다.

Control
Client → Server

Data
Server → Client

따라서 방화벽 환경에서는 데이터 연결을 위해 추가적인 처리가 필요할 수 있습니다.


9.2 FTP Passive Mode

Passive Mode에서는 데이터 연결도 클라이언트가 서버 방향으로 시작합니다.

Control
Client → Server

Data
Client → Server

방화벽이나 NAT 환경에서는 Active Mode보다 처리하기 쉬운 구조입니다.

다만 서버가 데이터 통신에 사용할 포트를 별도로 열어주어야 합니다.


10. 전체 구조 정리

4계층 이상의 장비를 이해할 때 핵심은 결국 세션입니다.

             Session Device
                   │
       ┌───────────┼───────────┐
       ↓           ↓           ↓
 Load Balancer   Firewall      NAT
       │           │
       └──── Session Table ────┘
                   │
             TCP / UDP 상태
                   │
         Timeout / Direction
                   │
            Packet 처리

2계층과 3계층 장비가 주로 주소와 경로를 기준으로 동작한다면, 4계층 이상의 장비는 통신의 상태와 방향까지 함께 관리한다는 차이가 있습니다.


마무리

이번 장에서 기억해야 할 핵심은 다음과 같습니다.

  • 4계층 이상의 장비는 TCP/UDP와 세션 상태를 이해하고 동작합니다.
  • 방화벽과 로드 밸런서는 대표적인 세션 장비입니다.
  • 세션 장비는 내부에 Session Table을 유지합니다.
  • L4 Load Balancer는 IP와 Port를 중심으로 트래픽을 분산합니다.
  • L7 Load Balancer는 HTTP Header, URI와 같은 애플리케이션 정보까지 이용합니다.
  • 방화벽은 세션 상태를 확인해 요청과 응답의 관계를 판단할 수 있습니다.
  • 애플리케이션의 세션 유지 시간과 장비의 Session Timeout이 다르면 통신 장애가 발생할 수 있습니다.
  • 요청과 응답이 서로 다른 세션 장비를 통과하는 비대칭 경로는 주의해야 합니다.
  • FTP처럼 여러 개의 세션을 사용하는 프로토콜은 세션 장비에서 추가적인 고려가 필요합니다.

가장 핵심적인 차이를 한 문장으로 정리하면 다음과 같습니다.

스위치와 라우터가 주소와 경로를 본다면, 방화벽과 로드 밸런서는 통신의 상태인 세션까지 본다.

0개의 댓글