네트워크 (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: 라우팅 프로토콜을 통해 라우터끼리 경로 정보를 주고받으며 회선 장애 시 우회 경로를 자동 계산.
- 우선순위:
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 라이센스를 따릅니다.