[MPLS] MPLS 개요

Multiprotocol Label Switching

IPv4/IPv6 패킷이나 L2 프레임에 라벨을 첨부하는 기술을 말한다.
각 LSR들이 MPLS 패킷을 수신하면 라벨을 참고하여 해당 패킷을 스위칭하는 것이다.

*LSR ; Lasbel Switch Router – MPLS가 동작하는 라우터/스위치

  1. 사용 이유
  2. 헤더
  3. FEC
  4. 라벨 바인딩
  5. MPLS 동작모드
  6. MPLS 패킷 전송과정

1. 사용 이유

(1) MPLS VPN 구성
대규모 VPN을 쉽게 구성할 수 있어서 통신 사업자가 선호한다.
(자세한 내용은 다음 게시글에서 다루도록 한다.)


(2) 트래픽 엔지니어링; Traffic Engineering
특정 트래픽에 대해 대역폭을 보장(즉, QoS 보장)하고, IGP가 사용하지 않는 링크까지 사용할 수 있으므로 네트워크 자원을 효율적으로 사용한다.
FRR(Fast Reroute) 기능을 통해 장애 발생 시 대체 경로로 우회시켜 패킷 손실을 최소화한다.

2. 헤더

Label: 라벨을 표시하는 값이다. 0~1,048,575 사이 값을 사용한다. 0~15는 특별 용도로 사용되고, 일반적으로 16~100,000 값을 실제 사용한다.
EXP(Experimental): QoS 값을 표시한다. 0~7 사이 값을 사용한다.
BoS: 값이 1인 경우 마지막 라벨, 0인 경우 현재 라벨 다음 또 다른 라벨이 있음을 의미한다. 여기서 ‘라벨’은 같은 라벨의 패킷이거나 다른 라벨값이거나 둘 중 하나이다.
TTL: 패킷 루프를 방지하기 위한 Time To Live 값이다.

* Label 범위에 따른 용도 – IANA 참고

3. FEC (Forwarding Equivalence Class)

동일한 MPLS 경로를 이용해 전송되는 패킷의 그룹.

누가 FEC를 지정할까?

패킷을 처음 수신한 Ingress LSR에서 해당 패킷의 소속 FEC를 지정.
동일 FEC에 속한 패킷은 라벨값도 동일.

어떤 기준으로 FEC를 지정할까?

– 목적지 네트워크가 동일한 패킷
– 동일 그룹에 속한 멀티캐스트 패킷
– BGP Next Hop 라우터가 동일한 패킷

4. 라벨 바인딩

FEC별로 라벨을 부여한다.
라벨값은 인접한 두 LSR 사이에서만 의미 있다. 예를 들어, R1 – R2 – R3 구성에서 R1-R2 간 사용하는 라벨값은 R3와 관련 없는 것이다.

라벨 바인딩 정보 전송 프로토콜

– Tag Distribution Protocol(TDP)
– Label Distribution Protocol(LDP)
– Resource Reservation Protocol(RSVP)
– BGP

(1) MPLS VPN에서 LDP/TDP가 router-id 별 라벨값 전송.
(2) 이 후 PE라우터 간 BGP를 이용해 목적지 네트워크 별 라벨값 교환.
(3) MPLS TE에선 RSVP를 이용해 라벨값 교환.

LIB / LFIB

Label Information Base / Label Forwarding Information Base

아래 2개의 바인딩을 LIB라고 한다.

로컬 바인딩: 라우팅 테이블에 있는 각 IGP 네트워크 별로 라벨 부여.
리모트 바인딩: 인접 LSR에게 광고 받은 라벨.

특정 FEC에 대해 유일한 라벨값을 부여하거나 인터페이스 별로 유일한 라벨값을 부여한다.
여러 인접 LSR이 있다면, 하나의 목적지 네트워크에 대해 여러 리모트 바인딩을 갖게 된다. 하지만 라우팅 테이블에 의해 하나만 선정되어 사용한다. 그렇게 해서 결정된 로컬 바인딩과 리모트 바인딩에 사용되는 라벨을 LFIB에 저장한다.

5. MPLS 동작모드

라벨 바인딩 분배 방식

Downstream-On-Demand(DoD) 방식
각 LSR이 넥스트 홉 라우터(DoD라우터)에게 특정 FEC에 대한 바인딩을 요청한 뒤 오직 하나의 바인딩을 부여 받는다.
Unsolicited Downstream(UD) 방식
각 LSR이 독자적으로 FEC를 부여하고, 이를 인접 LSR에게 광고한다.

라벨 저장 모드

Liberal Label Retention(LLR) 모드
모든 네이버로부터 수신한 바인딩 정보를 모두 LIB에 저장한다.
Conservative Label Retention(CLR) 모드
최적 경로 상의 넥스트 홉 LSR로부터 수신한 바인딩 정보만 LIB에 저장한다.

로컬 바인딩 생성 방식

독립적 LSP 제어 모드
각 LSR이 FEC를 인식할 때 (라우팅 테이블에 특정 네트워크가 올라올 때), 로컬 바인딩을 생성한다.
순차적 LSP 제어 모드
넥스트 홉 LSR로부터 라벨 정보를 수신하거나 특정 LSR이 특정 FEC에 대한 출력(Egrees) LSR일 때, 로컬 바인딩을 생성한다.

6. MPLS 패킷 전송과정

MPLS 동작 시 각 LSR들은 자신의 라우팅 테이블에 있는 네트워크에 대해 라벨을 부여한다. 그리고 이 라벨들을 인접 LSR로 전송한다.
단, 최종 목적지가 자신인 네트워크는 라벨을 부여하지 않는다.

(1) MPLS 라벨 할당 과정

#1

#1. R4 입장에서 IP가 ‘5.1.3.1’인 패킷의 최종 목적지는 자신이므로 라벨을 부여 하지 않은 채 R3로 바인딩 정보를 전송한다.

#2

#2. R3는 목적지 ‘5.1.3.1’인 패킷에 라벨값 30을 부여하고, 자신에게 전송하라는 바인딩 정보를 R2에게 전송한다.
이 때, R3 입장에서 라벨값 30은 로컬 바인딩 정보이다.

#3

#3. R2는 목적지 ‘5.1.3.1’인 패킷에 라벨값 20을 부여하고, 자신에게 전송하는 바인딩 정보를 R1에게 전송한다.
이 때, R2 입장에서 라벨값 20은 로컬 바인딩, 라벨값 30은 리모트 바인딩 정보이다.

위와 같은 과정을 거치면서 각 LSR은 특정 네트워크에 대한 LIB 및 LFIB를 만들고, MPLS 패킷 전송을 위한 준비를 한다.

* 라벨 바인딩 분배 방식: UD 라벨 분배 방식
* 로컬 바인딩 생성 모드: 순차적 LSP 제어 모드

(2) MPLS 패킷 전송과정

#1

#1. R1은 5.1.3.1로 패킷을 보내기 위해 라벨값 20을 부여한 뒤 R2에게 전송한다.
처음 라벨을 부여하는 동작을 PUSH 또는 IMPOSITION 이라고 한다.

#2

#2. R2는 라벨 20을 확인하고 인접 LSR(R3)가 요청한 리모트 라벨값 30으로 변경한 뒤 R3로 전송한다.
이 때, 라벨값을 변경하는 동작을 SWAP 이라고 한다.

#3

#3. R3는 라벨 30을 확인하고 인접 LSR(R4)가 요청한 대로 라벨을 제거한 뒤 R4로 전송한다.
이 때, 라벨값을 제거하는 동작을 POP 이라고 한다.

* Penultimate Hop Popping (PHP)
MPLS 라벨이 최종 LSR 직전 라우터에서 제거되는 것을 일컫는다.
최종 LSR이 MPLS 라벨과 라우팅 테이블을 참조하는 이중 동작을 방지하기 위해 PHP를 동작시킨다. 이렇게 하게 되면 최종 LSR은 라벨 참조 필요 없이 라우팅 테이블만 참조한다.

답글 남기기

이메일 주소는 공개되지 않습니다.