반응형

1) 한줄 요약
MPLS는 IP 라우팅 대신(또는 위에) 짧은 고정 길이 라벨을 사용해 패킷을 빠르고 유연하게 전달하는 기술로, 트래픽 엔지니어링(TE), VPN, 빠른 포워딩을 위해 널리 사용됩니다.
2) 왜 MPLS를 쓰나? (장점)
- 빠른 포워딩: 라벨 기반으로 간단한 테이블 조회만으로 포워딩. 복잡한 IP 룩업 대신 라벨 인덱스 사용.
- 트래픽 엔지니어링: 경로를 미리 지정(RSVP-TE 등)해 대역폭/지연을 제어 가능.
- L3/L2 VPN 제공: MPLS L3VPN을 통해 분리된 고객망을 보장하면서 백본 공유.
- QoS와 우선순위 제어 용이: 라벨 스택과 EXP 필드를 통해 우선순위/마킹 적용.
- 운영의 유연성: 네트워크 내에서 라우팅과 제어를 분리하고, 여러 프로토콜(IPv4/IPv6/Ethernet 등)을 투명하게 전달.
3) 기본 개념 / 용어
- Label: 고정 크기(보통 20비트) 값. 패킷 앞에 붙은 식별자(실제는 MPLS 헤더).
- Label Stack: 다중 라벨을 쌓을 수 있음(최상위 라벨은 맨 앞).
- LSR (Label Switching Router): 라벨을 교체(swap)하거나 푸시(push)/팝(pop)하는 라우터.
- LER (Label Edge Router): MPLS 도입/종료 지점(입구/출구). 라우팅 → 라벨 푸시, 라벨 팝 → 라우팅.
- LSP (Label Switched Path): 라벨 기반의 경로(소스에서 목적지까지). 일종의 “가상 회선”.
- LIB (Label Information Base): 라벨 바인딩 저장소(컨트롤플레인 관점).
- LFIB (Label Forwarding Information Base): 데이터 플레인에서 실제 포워딩에 사용되는 라벨 테이블.
- LDP (Label Distribution Protocol): 라벨을 이웃과 교환하는 일반적인 프로토콜.
- RSVP-TE: 트래픽 엔지니어링 목적의 라벨 경로 설정 프로토콜(자원 예약 포함).
- PHP (Penultimate Hop Popping): 마지막에서 두 번째 라우터가 라벨을 제거해 최종 LER의 작업 부담 감소.
4) 동작 방식(데이터 플레인 관점) — 단계별 흐름
- 입구 LER: 들어오는 IP 패킷을 확인해 목적지/정책에 따라 라벨을 푸시(push).
- 중간 LSR: 패킷의 상위 라벨을 보고 LFIB에서 스왑(swap)(다른 라벨로 교체) 또는 팝(pop)(제거)하거나 그대로 전달.
- 출구 LER: 목적지에 도달하면 라벨을 모두 제거하고(PHP로 이미 제거될 수도 있음) IP 라우팅으로 전달.
간단한 ASCII 흐름:
IP 패킷 -> [입구 LER: push L1] -> [LSR1: swap L1->L2] -> [LSR2: swap L2->L3] -> [출구 LER: pop L3 -> IP 전달]
5) 라벨 연산 3가지 (Push/Swap/Pop)
- Push: 라벨을 새로 추가(주로 LER에서 발생).
- Swap: 현재 라벨을 다른 라벨로 바꿔 다음 홉 결정(LSR에서 주로).
- Pop: 라벨을 제거(출구 또는 penultimate hop에서).
이 연산만으로 고속 포워딩 가능.
6) 제어 플레인: 라벨을 어떻게 나눌까?
- LDP (Label Distribution Protocol): 가장 보편적. 자동으로 라벨 바인딩을 교환.
- RSVP-TE (Resource Reservation Protocol with Traffic Engineering): LSP를 수동/예약형으로 설정, 대역폭, 우선순위, 경로 고정 가능.
- BGP 기반 라벨 분배 (e.g., BGP/MPLS VPN): 라우팅과 라벨을 BGP로 교환하여 멀티-사설망(L3VPN)을 구성.
7) MPLS와 VPN
- MPLS L3VPN (RFC 4364/2547bis): 고객별 VRF(Virtual Routing and Forwarding)를 LER에서 관리. MP-BGP를 통해 고객 라우트와 라벨 교환.
- MPLS L2VPN: Ethernet 교환, VPLS 같은 기술로 L2 프레임을 백본에서 이음.
8) 트래픽 엔지니어링 (MPLS-TE)
- 트래픽을 단순 라우팅(IGP) 대신 정해진 LSP로 강제할 수 있음.
- 루프 방지, 대역폭 보장, 지연 최적화 등 목적에 사용.
- RSVP-TE로 경로를 예약하고, 경로 실패 시 빠른 대체(예: Fast Reroute) 가능.
9) QoS와 MPLS
- MPLS 헤더의 Exp(3비트) 필드를 사용해 QoS 우선순위 지정 가능.
- DiffServ와 결합해 클래스별 처리가 쉬워짐.
10) Penultimate Hop Popping (PHP)
- 최종 LER 바로 이전(=penultimate) LSR가 라벨을 제거해 출구 LER의 라벨 팝 비용을 줄임.
- 일반적인 최적화로 구현되어 있음.
11) 보안/운영 고려사항
- 라우팅/라벨 분배의 무결성: LDP/RSVP 세션 보호(X.509, TCP MD5 등 권장).
- 백본 분리: 고객망 격리 필요 시 VPN+VRF로 보장.
- 디버깅: 라벨 스택, LFIB, LIB 확인 필요 — 라벨 불일치 시 트래픽 블랙홀 발생 가능.
- 스케일: 수천/수만 개의 LSP 또는 VRF는 장비 자원(메모리/CPU)에 영향.
12) MPLS vs 전통 IP 라우팅 비교 (요약)
- IP 라우팅: 목적지 주소 기반 최적 경로(라우팅 테이블), 탄력적이지만 경로 제어가 제한적.
- MPLS: 라벨 기반, 경로 제어(정해진 LSP), 빠른 포워딩, TE와 VPN 제공.
둘은 상호 배타적이지 않으며, 많은 네트워크에서 IP 라우팅 위에 MPLS를 올려 사용합니다.
13) 실무 예시: LSP가 설정되는 흐름 (개념적)
- 네트워크 운영자가 RSVP-TE로 LSP를 생성: A -> B -> C -> D (대역폭 50Mbps 예약).
- 각 LSR은 라우터 간에 RSVP PATH/RESV 메시지 교환.
- 입구 LER(A)는 해당 트래픽을 캡슐화(push 라벨)해 LSP로 전송.
- 중간 LSR은 swap으로 다음 홉 라벨로 바꾸며 전달.
- 출구 LER(D)는 라벨 제거 후 최종 전달.
14) 실제 장비에서 확인해야 할 명령(예시, 벤더 중립적)
- 라우팅 테이블 확인 (RIB)
- 라벨 정보(LIB) 확인
- 라벨 포워딩(LFIB) 확인
- LDP/RSVP 세션 상태 확인
- 라벨 스택 캡처(패킷 캡처 도구로 확인)
(구체적인 명령어는 Cisco/Juniper 등 벤더별로 다릅니다 — 필요하시면 장비명을 말해주시면 예시 명령어와 출력 예제를 바로 드릴게요.)
15) 한눈에 보는 구성요소 정리
- 데이터 플레인: LFIB — 실제 라벨로 포워딩
- 컨트롤 플레인: LDP / RSVP-TE / BGP — 라벨/경로 설정
- 엣지 장비: LER — IP↔MPLS 변환 담당
- 코어 장비: LSR — 라벨 기반 교환 담당
16) 결론 / 언제 MPLS를 고려해야 할까?
- 대규모 백본에서 트래픽 엔지니어링, 서비스(예: L3VPN), 고성능 포워딩이 필요하면 MPLS는 매우 유용합니다.
- 단순한 소규모 네트워크나 클라우드 전용 환경에서는 복잡도 대비 필요성이 떨어질 수 있습니다.
반응형
댓글