MPLS(Multi-Protocol Label Switching)는 짧은 고정 길이 레이블을 이용해 패킷을 고속으로 전달하는 네트워크 기술이다. IP 라우팅과 ATM 회선 교환의 장점을 결합했다.
MPLS 헤더 구조
이더넷 헤더 | MPLS 레이블 스택 | IP 헤더 | 페이로드
MPLS 레이블 (32비트):
┌─────────────────────┬────┬─┬──────┐
│ Label (20bit) │ TC │S│ TTL │
│ 0 ~ 1,048,575 │ 3b │1│ 8b │
└─────────────────────┴────┴─┴──────┘
S=1: 레이블 스택 바닥 표시
TC: Traffic Class (QoS)
MPLS 동작 흐름
CE ─── PE1 ─────── P ─────── PE2 ─── CE
(ingress) (core) (egress)
1. CE가 IP 패킷 전송
2. PE1(LER): IP 검사 → 레이블 Push → MPLS 전달
3. P(LSR): 레이블 기반 Swap → 고속 포워딩
4. PE2(LER): 레이블 Pop → IP 패킷 복원 → CE 전달
MPLS 활용
| 서비스 | 설명 |
|---|
| MPLS VPN (L3) | BGP/MPLS 기반 IP VPN |
| VPLS (L2) | 이더넷 VPN (L2 회로 에뮬레이션) |
| Traffic Engineering | 명시적 경로 지정, 대역폭 예약 |
| QoS | TC 필드로 트래픽 우선순위 |
LDP 레이블 배포
bash
# Cisco IOS MPLS LDP 설정
Router(config)# mpls ip
Router(config)# mpls label protocol ldp
Router(config-if)# mpls ip
# RSVP-TE (Traffic Engineering)
Router(config)# mpls traffic-eng tunnels
Router(config-if)# mpls traffic-eng tunnels
Router(config-if)# ip rsvp bandwidth 100000
# TE 터널 설정
Router(config)# interface Tunnel0
Router(config-if)# ip unnumbered Loopback0
Router(config-if)# tunnel destination 10.10.10.3
Router(config-if)# tunnel mode mpls traffic-eng
Router(config-if)# tunnel mpls traffic-eng bandwidth 50000
PHP (Penultimate Hop Popping)
마지막 P 노드가 레이블을 미리 제거해 PE의 두 번 룩업을 방지한다. implicit-null 레이블(값=3)로 신호를 보낸다.
관련 문서