MPLS(다중프로토콜 레이블 스위칭)란? 기초 개념 정리

통신사·기업 전용회선에서 오래 쓰인 MPLS를 RFC 3031의 용어와 32비트 레이블 구조를 따라 정리합니다.

한눈에 보기

MPLS는 패킷에 짧은 레이블을 붙이고, 네트워크 안쪽 장비가 그 레이블 값만으로 다음 전달 동작을 찾게 하는 전달 방식입니다. 인터넷 표준 문서 RFC 3031은 이를 "MPLS 아키텍처"로 정리했고(2001년 1월), 레이블은 "짧고 길이가 고정된, 로컬에서만 의미를 갖는 식별자"이며 FEC를 식별하는 데 쓰인다고 설명합니다. 가정용 인터넷과는 거리가 있고 통신사 백본과 기업 지사 연결 서비스에서 주로 만나는 기술입니다. 이 글에서는 등장 배경, 레이블 헤더의 비트 구조, 장비의 역할, VPN과 트래픽 엔지니어링, 그리고 SD-WAN과의 관계를 차례로 살펴봅니다.

어디서 나왔나: IP 스위칭에서 IETF 표준까지

위키백과의 MPLS 문서에 따르면 1996년 Ipsilon Networks가 ATM 위에서만 동작하는 IP 스위칭 기술을 제안했지만 시장을 장악하지 못했습니다. 시스코의 태그 스위칭(Tag Switching)은 ATM에 한정되지 않는 비슷한 계열의 제안이었고, 이름이 레이블 스위칭으로 바뀌어 IETF에 넘겨졌습니다. IETF는 1997년에 MPLS 작업 그룹을 만들어 여러 업체의 기능을 하나로 모았고, 첫 MPLS RFC가 RFC 3031(2001년 1월)입니다. 같은 해 12월에는 LSP 터널을 위한 RSVP-TE가 RFC 3209로, 2006년 2월에는 BGP/MPLS IP VPN이 RFC 4364로 나왔다고 정리되어 있습니다. MPLS가 OSI 2계층과 3계층 사이에서 동작한다고 해서 "2.5계층 프로토콜"이라 부르기도 합니다.

32비트 레이블 항목의 구조

RFC 3032가 정의한 레이블 스택 항목은 4옥텟(32비트)이며, 아래처럼 나뉩니다. 세 번째 필드의 3비트는 원래 실험용(Exp)으로 이름 붙었으나, 서비스 등급 표시에 널리 쓰이게 되자 RFC 5462가 이름을 트래픽 클래스(TC) 필드로 바꾸었습니다.

필드크기역할
레이블20비트레이블 값(220 = 1,048,576가지 표현 가능, 일부 값은 특수 용도)
TC (구 Exp)3비트트래픽 클래스(서비스 등급 구분에 쓰임)
S1비트스택 맨 아래 표시, 마지막 항목만 1
TTL8비트패킷이 무한히 돌지 않도록 하는 생존 시간 값
합계32비트20 + 3 + 1 + 8 = 32 (4바이트)

레이블 스택은 데이터링크 헤더 뒤, 네트워크 계층(IP) 헤더 앞에 놓이며, 스택의 맨 위 항목이 패킷에서 가장 앞에 나타납니다. S 비트가 1인 항목 바로 뒤에 원래의 네트워크 계층 패킷이 이어집니다. 합계와 필드 크기는 node로 다시 계산해 일치함을 확인했습니다. 특수 값으로는 위키백과 기준 0과 2(명시적 널), 3(암시적 널)이 언급됩니다.

가상 예시. 항목 하나를 비트로 풀어 보기

가상 예시입니다. 레이블 1000, TC 5, S 1, TTL 64인 항목 하나를 만들면 32비트 값은 16진수로 0x003E8B40이고 2진수로는 00000000001111101000 101 1 01000000(공백은 필드 경계)입니다. 이 값을 다시 쪼개면 레이블 1000, TC 5, S 1, TTL 64가 그대로 복원됩니다(node 검산 완료). 실제 장비에서는 레이블 값을 신호 프로토콜이 할당하므로 임의 숫자를 쓰지는 않습니다.

🪧

MPLS(다중프로토콜 레이블 스위칭)란

패킷마다 짧은 "레이블"을 붙여 매번 IP 주소를 분석하지 않고도 정해진 경로로 빠르게 전달하는 통신사·기업망의 핵심 기술입니다.

MPLS(Multiprotocol Label Switching)는 패킷이 네트워크에 처음 들어올 때 짧은 숫자 레이블을 붙이고, 이후 구간에서는 이 레이블만 보고 다음 목적지를 정해 전달하는 방식입니다. 매 홉마다 목적지 IP 주소로 라우팅 테이블을 조회하는 일반 IP 포워딩과 달리 짧은 레이블 값으로 다음 전달 동작을 찾는 방식입니다(초기 개발 동기 중 하나가 처리 속도였지만, 지금은 VPN·트래픽 엔지니어링 같은 서비스 기능이 더 큰 쓰임새입니다). IP 외에 다양한 프로토콜(다중프로토콜)에도 적용할 수 있어 이런 이름이 붙었습니다.

🔢

레이블 스위칭의 기본 원리

IP 헤더와 데이터링크 헤더 사이에 레이블을 끼워 넣고, 네트워크 내부에서는 이 레이블 값만으로 전달 경로를 결정합니다.

패킷이 MPLS 네트워크에 들어오면 짧은 레이블이 헤더에 추가되고, 네트워크 내부의 장비들은 목적지 IP 주소 전체를 다시 분석하는 대신 레이블 값을 참고해 미리 정해둔 다음 구간으로 패킷을 그대로 넘깁니다. 목적지에 가까워지면 레이블이 제거되고 일반 IP 패킷 형태로 되돌아갑니다.

🚦

LER과 LSR의 역할 차이

네트워크 가장자리에서 레이블을 붙이고 떼는 LER(레이블 엣지 라우터)과, 내부에서 레이블만 보고 전달하는 LSR(레이블 스위치 라우터)로 역할이 나뉩니다.

LER(Label Edge Router)은 현장에서 널리 쓰는 용어로(RFC 3031 본문은 ingress/egress 노드라는 표현을 씁니다), MPLS 네트워크의 입구와 출구에 위치해 일반 IP 패킷에 레이블을 붙이거나(입구) 떼어내는(출구) 역할을 하고, LSR(Label Switch Router)은 네트워크 내부에서 레이블 값만 보고 다음 장비로 패킷을 전달하는 역할을 합니다. 내부 구간은 IP 주소를 다시 들여다볼 필요가 없어 처리 부담이 줄어듭니다.

📦

FEC(전달 동등 클래스) 개념

목적지나 서비스 품질 요구가 같은 패킷들을 하나의 그룹으로 묶어 같은 레이블과 경로를 적용하는 분류 기준입니다.

FEC(Forwarding Equivalence Class)는 "같은 방식으로 처리해도 되는 패킷들의 묶음"을 뜻합니다. 예를 들어 같은 목적지 대역으로 가는 패킷이나, 같은 수준의 서비스 품질(QoS)이 필요한 트래픽을 하나의 FEC로 묶어 동일한 레이블을 부여하면, 이후 경로 결정을 패킷 단위가 아니라 그룹 단위로 간단하게 처리할 수 있습니다.

🗂️

MPLS VPN과 레이블 스택

레이블을 여러 겹으로 쌓는 레이블 스택 구조 덕분에 하나의 물리망 위에서 여러 고객사의 트래픽을 안전하게 분리할 수 있습니다.

MPLS는 레이블을 한 개가 아니라 여러 개 겹쳐 쌓을 수 있는 레이블 스택 구조를 지원합니다. 이를 활용한 MPLS VPN은 통신사가 하나의 물리적인 백본망 위에서 여러 기업 고객의 트래픽을 레이블로 구분해 서로 섞이지 않도록 분리해주는 서비스로, 기업 지사 간 사설망을 저렴하게 구축하는 데 널리 쓰입니다.

🛣️

MPLS 트래픽 엔지니어링(MPLS-TE)

최단 경로가 아니더라도 혼잡을 피해 특정 경로로 트래픽을 강제로 유도해 대역폭을 효율적으로 활용할 수 있습니다.

일반 IP 라우팅은 보통 최단 경로 하나로만 트래픽이 몰리기 쉽지만, MPLS 트래픽 엔지니어링(TE)을 이용하면 관리자가 특정 트래픽을 의도적으로 여유 있는 다른 경로로 분산시킬 수 있습니다. 덕분에 통신사 백본망처럼 여러 경로가 존재하는 대규모 네트워크에서 회선 대역폭을 더 고르게 활용할 수 있습니다.

🔀

일반 IP 라우팅·SD-WAN과의 관계

일반 IP 라우팅보다 예측 가능한 경로와 품질 보장이 강점이지만, 회선 비용이 비싸 최근에는 SD-WAN으로 대체되거나 함께 쓰이는 추세입니다.

MPLS는 경로가 안정적이고 품질(QoS)을 보장하기 좋아 오랫동안 기업 전용회선의 표준으로 쓰여 왔지만, 통신사 회선 기반이라 구축·확장 비용이 비싸다는 단점이 있습니다. 이 때문에 최근에는 일반 인터넷 회선 위에서 소프트웨어로 여러 경로를 지능적으로 조합하는 SD-WAN을 MPLS와 함께 쓰거나, 일부 구간을 SD-WAN으로 대체하는 하이브리드 구성이 늘어나고 있습니다.

패킷이 지나가는 길: push, swap, pop

RFC 3031에 따르면 레이블 붙은 패킷을 전달할 때 LSR은 레이블 스택의 맨 위 레이블을 조회 키로 쓰고, 다음 홉은 항상 NHLFE(다음 홉 전달 항목)에서 가져옵니다. 그래서 장비가 하는 동작은 보통 세 가지로 요약됩니다. 입구 노드가 레이블을 새로 붙이는 push, 중간 장비가 레이블을 다른 값으로 바꾸는 swap, 출구 쪽에서 레이블을 떼는 pop입니다. 마지막 구간에서는 출구 바로 앞 장비(penultimate LSR)가 레이블을 미리 떼는 방식(penultimate hop popping)도 정의되어 있어, 출구 장비의 조회 부담을 줄입니다. 레이블이 구간 단위 로컬 값이라는 점이 swap이 필요한 이유입니다. 같은 값이 다른 구간에서 다른 의미로 쓰일 수 있습니다.

참고로 RFC 3031 본문은 "LER"이라는 용어 대신 LSP ingress/egress, MPLS 에지 노드라는 표현을 씁니다. LER은 현장과 교재에서 널리 쓰는 약칭입니다.

비교: 일반 IP 포워딩, MPLS, SD-WAN

구분전달 기준주로 보이는 곳
일반 IP 포워딩패킷마다 목적지 IP 주소 조회인터넷 전반
MPLS레이블 값으로 조회, 구간마다 swap통신사 백본, 기업 전용회선 서비스
SD-WAN소프트웨어 정책으로 여러 회선 중 경로 선택기업 지사 연결(일반 인터넷 회선과 병행)

위키백과는 MPLS가 많은 용도에서 SD-WAN과 기업용 VPN 솔루션으로 대체되었다고 서술하지만 두 기술을 세부 비교하지는 않습니다. 비용과 품질 보장 정도는 서비스 상품과 시기에 따라 다르므로 일반화하기 어렵습니다.

실제 문서로 보는 사례 두 가지 (표준화 사례)

사례 1. 여러 업체의 제안이 하나의 표준으로 모인 과정

1990년대 중반에 업체마다 독자 방식을 내놓았습니다(위키백과 기준). Ipsilon의 IP 스위칭은 ATM에서만 동작했고 시장을 장악하지 못했습니다. 시스코의 태그 스위칭은 ATM에 한정되지 않았고 레이블 스위칭이라는 이름으로 IETF에 넘어갔습니다. 1997년 작업 그룹이 여러 제안을 합쳐 2001년 RFC 3031이 나왔습니다. 배울 점은 MPLS가 한 기업의 제품 이름이 아니라 공개 표준이라는 것, 그리고 ATM에 묶이지 않도록 설계되어 "다중프로토콜"이라는 이름이 붙었다는 점입니다.

사례 2. RFC 4364: 통신사가 고객마다 VPN을 제공하는 방식

RFC 4364(2006년 2월)는 서비스 제공자가 IP 백본으로 고객에게 IP VPN을 제공하는 방법을 기술합니다. 고객 에지 라우터가 경로를 제공자 에지 라우터에 보내고, 패킷은 백본을 터널로 건너가므로 코어 라우터는 VPN 경로를 알 필요가 없습니다. 제공자 에지 라우터에는 VPN별로 분리된 VRF(VPN Routing and Forwarding) 테이블이 있고, 서로 다른 VPN의 같은 주소 대역이 겹치지 않도록 BGP에서 8바이트 라우트 디스팅귀셔(route distinguisher)를 주소 앞에 붙입니다. 배울 점은 기업이 자기 사설 주소를 그대로 쓰면서도 통신사 망을 공유할 수 있게 하는 핵심이 레이블 스택과 VRF라는 점입니다.

알아두면 좋은 점

흔한 오해와 정정

한계와 더 알아볼 점

이 글은 개념 입문용 요약이며 장비 설정 절차나 프로토콜 세부(LDP, RSVP-TE 동작 등)는 다루지 않습니다. 레이블 필드 중 TC의 쓰임은 RFC 3270, RFC 5462 등 관련 문서에서 이어집니다. MPLS와 SD-WAN의 비용·성능 비교는 상품과 구성에 따라 달라 일률적인 결론을 낼 수 없으며, 도입을 검토한다면 통신사와 제조사의 최신 자료를 확인해야 합니다.

자주 묻는 질문

MPLS는 집에서 쓰는 인터넷과 관련이 있나요?

일반 가정용 인터넷 회선과는 직접적인 관련이 적습니다. MPLS는 주로 통신사의 백본망 내부나, 기업이 여러 지사를 연결하는 전용회선 서비스에서 활용되는 기술입니다.

레이블은 IP 주소와 어떻게 다른가요?

IP 주소는 전 세계 어디서나 유일하게 목적지를 식별하는 주소인 반면, MPLS 레이블은 특정 구간(로컬 링크)에서만 의미를 갖는 짧은 값입니다. 같은 레이블 값이라도 구간이 바뀌면 다른 의미로 재사용될 수 있습니다.

레이블 필드가 20비트면 레이블은 몇 개까지 표현할 수 있나요?

2의 20제곱으로 1,048,576가지 값을 나타낼 수 있습니다. 다만 그중 일부 값은 암시적 널 같은 특수 용도로 예약되어 있어 일반 레이블로 모두 쓸 수는 없습니다.

S 비트는 왜 필요한가요?

레이블이 여러 겹 쌓일 수 있으므로, 어디까지가 레이블이고 어디부터 원래 패킷인지 알려 줘야 합니다. 스택의 마지막 항목만 S가 1이고 그 뒤에 네트워크 계층 패킷이 이어집니다(RFC 3032).

TC 필드는 예전에 Exp라고 불렀다는데 같은 필드인가요?

같은 3비트 필드입니다. 처음엔 실험용이라는 뜻으로 Exp라 불렀으나 서비스 등급 표시에 쓰이면서 RFC 5462가 이름을 TC로 바꾸었습니다.

관련 가이드