포스트

네트워크 (5) - 스위치, 라우터

네트워크 (5) - 스위치, 라우터

Switch, Router, L4/L7 장비

네트워크 패킷이 출발지에서 목적지까지 정확하고 효율적으로 전달되기 위해서는 계층별 네트워크 장비의 역할이 필수적이다.

2계층의 스위치부터 3계층 라우터, 4계층 이상의 로드밸런서 및 방화벽까지 각 장비의 동작 방식과 특징을 다룬다.


1. Switch (2계층 장비)

1) 기본 동작 및 역할

  • 네트워크의 중재자: 패킷을 받아서 필요한 포트로만 전달하여 네트워크 통신 효율성을 극대화한다.
  • MAC Address Table: 스위치는 출발지 MAC 주소를 학습(Address Learning)하여 포트와 매핑한 테이블을 유지한다.

주요 동작 과정:

  • Flooding: 부팅 초기나 목적지 MAC 주소를 모를 때, 들어온 포트를 제외한 모든 포트로 프레임을 전송한다.
  • Address Learning: 프레임의 출발지 MAC 주소를 보고 테이블을 생성 및 갱신한다.
  • Forwarding/Filtering: 목적지 MAC 주소가 테이블에 존재하면 해당 포트로만 전송(Forwarding)하고, 나머지 포트로는 보내지 않는다(Filtering).

  • ARP와의 관계: 실제 데이터 전송 전 ARP 브로드캐스트가 먼저 수행되어 MAC 주소를 학습하므로, 일반적인 유니캐스트 통신 시 플러딩이 일어나는 경우는 드물다.

2) VLAN (Virtual Local Area Network)

개요:

  • 물리적 배치와 상관없이 네트워크를 논리적으로 분할하는 기술이다. 브로드캐스트 도메인을 격리하여 성능 저하 및 보안 문제를 해결한다. VLAN 간 통신에는 3계층 장비가 필요하다.

종류:

  • 포트 기반 VLAN: 특정 포트에 VLAN을 고정 할당 방식 (데이터센터 등).
  • MAC 주소 기반 VLAN (Dynamic VLAN): 접속하는 단말의 MAC 주소에 따라 포트 VLAN이 가변적으로 변경되는 방식 (스마트 오피스 등).

포트 모드:

  • Access (Untagged) Port: 단일 VLAN에 속한 단말/서버와 연결되는 일반 포트.
  • Trunk (Tagged) Port: 하나의 포트로 여러 VLAN 프레임을 전송하는 포트. 이더넷 프레임에 VLAN ID 태그를 추가하여 식별한다.

3) Loop 방지와 STP (Spanning Tree Protocol)

Loop 발생 문제:

  • Broadcast Storm: 브로드캐스트 패킷이 스위치 간을 무한히 순환하며 대역폭을 점유하는 현상 (2계층 헤더에는 3계층의 TTL 같은 수명 메커니즘이 없음).
  • MAC Address Flapping: 동일한 MAC 주소가 여러 포트에서 번갈아 학습되어 테이블이 흔들리는 문제.

STP 동작 방식:

  • BPDU (Bridge Protocol Data Unit) 메시지를 교환하여 루트 스위치(Root Switch)를 선출하고 최적 경로를 계산한다.
  • 루프가 발생하는 경로의 포트를 차단(Blocking)하여 물리적 이중화 구조에서도 논리적 단일 경로를 유지한다.
  • 상태 변화 과정: Blocking $\rightarrow$ Listening $\rightarrow$ Learning $\rightarrow$ Forwarding (약 50초 소요).

STP 변형 및 대안:

  • RSTP (Rapid STP): BPDU 구조 개선을 통해 수렴 시간을 2~3초로 단축.
  • MST (Multiple STP): 여러 VLAN을 그룹으로 묶어 그룹별 스패닝 트리를 구성함으로써 자원 효율성 향상.
  • Port Fast: PC나 서버 등 단말이 연결된 포트에 설정하여 BPDU 대기 없이 즉시 포워딩 상태로 전환.

2. Router / L3 Switch (3계층 장비)

1) 개요 및 동작

  • 경로 지정(Routing): 목적지 IP 주소와 자신의 라우팅 테이블을 비교하여 최적의 경로(Next Hop)로 패킷을 포워딩한다. 목적지 경로가 테이블에 없으면 패킷을 버린다(Drop).
  • L2 헤더 재작성: 패킷을 다음 구간으로 포워딩할 때 기존 2계층 헤더를 제거하고 새로운 L2 헤더를 생성한다.
  • TTL (Time To Live): 3계층 IP 헤더에 존재하며 라우터를 거칠 때마다 1씩 감소한다. 0이 되면 패킷을 폐기하여 무한 루프를 방지한다.

2) 라우팅 테이블과 경로 탐색

  • Hop-by-Hop 라우팅: 전체 경로를 다 알지 못해도 인접한 라우터(Next Hop)까지만 정교하게 전달하는 방식.
  • Longest Prefix Match: 목적지 IP 주소와 라우팅 테이블의 서브넷 마스크를 비교할 때, 가장 길게(상세하게) 일치하는 경로 정보를 선택한다.
  • 스위칭 캐시: 패킷마다 매번 라우팅 테이블을 검색하는 자원 낭비를 줄이기 위해, 최근 포워딩 정보를 캐싱하여 처리 속도를 높인다.

3) 경로 정보 수집 및 우선순위

수집 방법:

  • Directly Connected: 라우터 인터페이스에 IP를 설정할 때 자동 생성되는 경로.
  • Static Routing: 관리자가 목적지와 Next Hop을 직접 지정.
  • Dynamic Routing: 라우팅 프로토콜을 통해 라우터끼리 경로 정보를 주고받으며 회선 장애 시 우회 경로를 자동 계산.

  • 우선순위:
\[\text{Directly Connected} > \text{Static Routing} > \text{Dynamic Routing}\]

3. 4계층 장비 (Load Balancer & Firewall)

1) 특징 및 세션 관리

  • 세션 장비: IP, Port, TCP Flag, Sequence Number 등 4계층 헤더 정보를 기반으로 통신 방향과 순서를 Session Table에서 관리한다.
  • Symmetric(대칭) 경로 요구: Inbound 트래픽과 Outbound 트래픽이 동일한 세션 장비를 통과해야 정상적인 세션 추적이 가능하다. (비대칭 경로 발생 시 세션 미인지로 패킷이 차단될 수 있음)

2) Load Balancer (로드밸런서)

  • 스케일 아웃(Scale-Out): 고성능 장비 1대로 교체하는 스케일 업(Scale-Up) 대신, 저렴한 서버 여러 대를 병렬로 배치하여 부하를 분산하는 방식.

L4 vs L7:

  • L4 Load Balancer: IP와 TCP/UDP 포트 번호 기반 분산.
  • L7 Load Balancer (ADC): HTTP 헤더, URI, 쿠키 등 애플리케이션 프로토콜 내용까지 분석하여 분산 (Reverse Proxy 동작, SSL Offloading, Caching 기능 제공).

  • Health Check: Real Server의 상태를 주기적으로 점검하여 정상 서버로만 트래픽을 전달한다.
  • ICMP(Ping), TCP Port 확인, TCP Half Open, HTTP 응답 상태 코드, 컨텐츠 직접 확인 방식 등이 사용된다.

부하 분산 알고리즘:

  • Round Robin: 순차적 분산.
  • Least Connection: 현재 세션 수가 가장 적은 서버로 분산.
  • Hash: 클라이언트 IP/포트를 해싱하여 특정 서버로 지속 연결(Session Affinity) 유도.

3) Firewall (방화벽)

  • SPI (Stateful Packet Inspection): 패킷의 헤더 정보뿐만 아니라 세션 상태를 기억하여, 내부에서 시작된 요청에 대한 응답 패킷인지 외부에서 새로 유입되는 무단 접근인지 구분하여 허용/차단한다.
  • 세션 타임아웃 문제: 세션 장비의 타임아웃 값이 애플리케이션의 세션 유지 시간보다 짧으면 중간에서 세션이 끊겨 통신 장애가 발생할 수 있다.
  • 해결책: 세션 만료 시간 조정, 중간 패킷 허용 옵션, 타임아웃 시 RST/FIN 통보, 애플리케이션 단의 Keep-alive 패킷 생성 등.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.